[rhq] 31 commits - modules/core modules/enterprise modules/plugins
by Jay Shaughnessy
modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/CustomAlertSenderUpgradeTask.java | 133 ++++
modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml | 34 -
modules/core/domain/src/main/java/org/rhq/core/domain/alert/Alert.java | 15
modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java | 17
modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java | 3
modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java | 7
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java | 13
modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java | 58 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/DownloadsUIBean.java | 54 +
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/GroupDefinitionUIBean.java | 26
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java | 10
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionAction.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionFormPrepareAction.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/ViewDefinitionAction.java | 4
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java | 10
modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads.xhtml | 21
modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/view.xhtml | 8
modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml | 53 -
modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml | 8
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java | 18
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java | 303 ++++++++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java | 11
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java | 14
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java | 102 +--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java | 181 -----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java | 12
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/execution/SearchAssistManager.java | 8
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/GroupSearchTranslator.java | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/ResourceSearchTranslator.java | 3
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java | 97 +++
modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java | 4
modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java | 3
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java | 2
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java | 2
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java | 29
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java | 34 +
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java | 281 +++++----
modules/plugins/augeas/pom.xml | 17
modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java | 2
42 files changed, 998 insertions(+), 612 deletions(-)
New commits:
commit 6c1b4651fdedbfb0900f2440c17e0887f0d6ba61
Merge: dcf8ac0... 6f4eb03...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jun 25 16:28:53 2010 -0400
Merge branch 'release-3.0.0' into master-jay
commit 6f4eb034b12085258f98c92713af8a499ea78261
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Jun 25 15:53:16 2010 -0400
unit test fix for blob.
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
index 7fae6e0..5f73b89 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
@@ -284,7 +284,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
}
FileInputStream fos = new FileInputStream(originalBinary);
- contentManager.updateBlobStream(fos, packageBits);
+ contentManager.updateBlobStream(fos, packageBits, null);
packageBits = em.find(PackageBits.class, packageBits.getId());
// test that the bits are available and stored in the DB: Reading the Blob
commit 17b0f8bb1a60583a0d1ea24bd894cc9a3dbd5c42
Merge: 863201f... bfd6f7d...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Jun 25 15:50:49 2010 -0400
Merge branch 'release-3.0.0' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit bfd6f7dbff8de49c9ad47712499f106945002127
Merge: 14cad58... eb5d619...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jun 25 15:47:19 2010 -0400
Merge branch 'release-3.0.0' into release-3.0.0-jay
commit 14cad58515eb7b4787e607df428d01702f31468c
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jun 25 15:46:21 2010 -0400
[BZ 600543] An interim solution that hopefully will bridge the gap until we
impl BZ 608135. Try to ensure that all plugin config updates in a group
update get a chance to complete (barring a server loss).
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java
index 2efe429..7b92b40 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java
@@ -82,7 +82,15 @@ public abstract class AbstractGroupConfigurationUpdateJob implements Job {
}
for (Integer childUpdateId : pagedChildUpdateIds) {
- executeConfigurationUpdate(configurationManager, childUpdateId, subject);
+ // failing one update request is not reason to fail all of the remaining updates
+ // so, wrap in a try catch and gather up the errors to subsequently fail the group update. This
+ // will especially benefit group plugin config, which currently executes synchronously.
+ try {
+ executeConfigurationUpdate(configurationManager, childUpdateId, subject);
+ } catch (Exception e) {
+ errorMessages = appendErrorMessages(errorMessages, "Failed Member Update Id=" + childUpdateId,
+ e.toString());
+ }
}
rowsProcessed += pagedChildUpdateIds.size();
@@ -93,12 +101,18 @@ public abstract class AbstractGroupConfigurationUpdateJob implements Job {
pc.setPageNumber(pc.getPageNumber() + 1);
}
} catch (Exception e) {
- errorMessages = ThrowableUtil.getAllMessages(e);
+ errorMessages = appendErrorMessages(errorMessages, "Failed Group Update Id=" + groupConfigurationUpdateId,
+ ThrowableUtil.getAllMessages(e));
} finally {
completeGroupConfigurationUpdate(configurationManager, groupConfigurationUpdateId, errorMessages);
}
}
+ private String appendErrorMessages(String currentMessages, String header, String newMessages) {
+ currentMessages = (null == currentMessages) ? "" : currentMessages + "\n";
+ return currentMessages.concat(" [" + header + ": " + newMessages);
+ }
+
private static String createUniqueJobName(ResourceGroup group, Subject subject, String jobNamePrefix) {
return createJobGroupName(group, jobNamePrefix) + "-" + subject.getName().hashCode() + "-"
+ System.currentTimeMillis();
commit eb5d619298ef5aa1d38c10cf308cca8e119403d3
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 25 15:07:25 2010 -0400
BZ-535671: remove compatible group constructs if dynagroup recalculation converts compat->mixed
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index b944b6e..5e7707d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -91,7 +91,6 @@ import org.rhq.enterprise.server.operation.GroupOperationSchedule;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
-import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
import org.rhq.enterprise.server.util.QueryUtility;
@@ -252,35 +251,6 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
ResourceGroupDeleteException {
ResourceGroup group = getResourceGroupById(subject, groupId, null);
- // for compatible groups, first recursively remove any referring backing groups for auto-clusters
- if (group.getGroupCategory() == GroupCategory.COMPATIBLE) {
- for (ResourceGroup referringGroup : group.getClusterBackingGroups()) {
- deleteResourceGroup(subject, referringGroup.getId());
- }
- }
-
- // unschedule all jobs for this group (only compatible groups have operations, mixed do not)
- if (group.getGroupCategory() == GroupCategory.COMPATIBLE) {
- Subject overlord = subjectManager.getOverlord();
- try {
- List<GroupOperationSchedule> ops = operationManager.findScheduledGroupOperations(overlord, groupId);
-
- for (GroupOperationSchedule schedule : ops) {
- try {
- operationManager.unscheduleGroupOperation(overlord, schedule.getJobId().toString(), groupId);
- } catch (UnscheduleException e) {
- log.warn("Failed to unschedule job [" + schedule + "] for a group being deleted [" + group
- + "]", e);
- }
- }
- } catch (Exception e) {
- log.warn("Failed to get jobs for a group being deleted [" + group
- + "]; will not attempt to unschedule anything", e);
- }
- }
-
- groupAlertDefinitionManager.purgeAllGroupAlertDefinitions(subject, groupId);
-
for (Role doomedRoleRelationship : group.getRoles()) {
group.removeRole(doomedRoleRelationship);
entityManager.merge(doomedRoleRelationship);
@@ -289,20 +259,64 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
// remove all resources in the group
resourceGroupManager.removeAllResourcesFromGroup(subject, groupId);
+ if (group.getGroupCategory() == GroupCategory.COMPATIBLE) {
+ removeCompatibleGroupConstructs(subject, group);
+ }
+
// break resource and plugin configuration update links in order to preserve individual change history
Query q = null;
q = entityManager.createNamedQuery(ResourceConfigurationUpdate.QUERY_DELETE_GROUP_UPDATES_FOR_GROUP);
- q.setParameter("groupId", groupId);
+ q.setParameter("groupId", group.getId());
q.executeUpdate();
q = entityManager.createNamedQuery(PluginConfigurationUpdate.QUERY_DELETE_GROUP_UPDATES_FOR_GROUP);
- q.setParameter("groupId", groupId);
+ q.setParameter("groupId", group.getId());
q.executeUpdate();
entityManager.remove(group);
}
+ /*
+ * TODO: Deletion of all associated group data (except implicit/explicit resource members) should be moved here.
+ * in other words, we don't want Hibernate cascade annotations to remove that history upon deletion of an
+ * entity anymore because there are now two cases where group constructs need to be destroyed:
+ *
+ * 1) compatible group deletion - a group is deleted, all history removed, entity is gone from the system
+ * 2) dynagroup recomputation - a group definition is recalculation, a compatible group turns into a mixed
+ * group, compatible constructs need to be removed, but the entity survives
+ *
+ * For now, this implementation should suffice for -- https://bugzilla.redhat.com/show_bug.cgi?id=535671
+ */
+ private void removeCompatibleGroupConstructs(Subject subject, ResourceGroup group)
+ throws ResourceGroupDeleteException {
+
+ // for compatible groups, first recursively remove any referring backing groups for auto-clusters
+ for (ResourceGroup referringGroup : group.getClusterBackingGroups()) {
+ deleteResourceGroup(subject, referringGroup.getId());
+ }
+
+ Subject overlord = subjectManager.getOverlord();
+ try {
+ List<GroupOperationSchedule> ops = operationManager.findScheduledGroupOperations(overlord, group.getId());
+
+ for (GroupOperationSchedule schedule : ops) {
+ try {
+ operationManager.unscheduleGroupOperation(overlord, schedule.getJobId().toString(), group.getId());
+ } catch (UnscheduleException e) {
+ log
+ .warn("Failed to unschedule job [" + schedule + "] for a group being deleted [" + group + "]",
+ e);
+ }
+ }
+ } catch (Exception e) {
+ log.warn("Failed to get jobs for a group being deleted [" + group
+ + "]; will not attempt to unschedule anything", e);
+ }
+
+ groupAlertDefinitionManager.purgeAllGroupAlertDefinitions(subject, group.getId());
+ }
+
public ResourceGroup getResourceGroupById(Subject user, int id, GroupCategory category)
throws ResourceGroupNotFoundException {
ResourceGroup group = entityManager.find(ResourceGroup.class, id);
@@ -909,7 +923,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
}
@SuppressWarnings("unchecked")
- public void setResourceType(int resourceGroupId) {
+ public void setResourceType(int resourceGroupId) throws ResourceGroupDeleteException {
Query query = entityManager.createNamedQuery(ResourceType.QUERY_GET_EXPLICIT_RESOURCE_TYPE_COUNTS_BY_GROUP);
query.setParameter("groupId", resourceGroupId);
@@ -921,16 +935,14 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
Object[] info = (Object[]) results.get(0);
int resourceTypeId = (Integer) info[0];
- try {
- ResourceType type = resourceTypeManager.getResourceTypeById(overlord, resourceTypeId);
-
- resourceGroup.setResourceType(type);
- } catch (ResourceTypeNotFoundException rtnfe) {
- // we just got the resourceTypeId from the database, so it will exist
- // but let's set some reasonable implementation anyway
- resourceGroup.setResourceType(null);
- }
+ ResourceType flyWeightType = new ResourceType();
+ flyWeightType.setId(resourceTypeId);
+ resourceGroup.setResourceType(flyWeightType);
} else {
+ if (resourceGroup.getResourceType() != null) {
+ // converting compatible group to mixed group, remove all corresponding compatible constructs
+ removeCompatibleGroupConstructs(overlord, resourceGroup);
+ }
resourceGroup.setResourceType(null);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
index afac418..5975099 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
@@ -93,7 +93,7 @@ public interface ResourceGroupManagerLocal {
ResourceGroup getByGroupDefinitionAndGroupByClause(int groupDefinitionId, String groupByClause);
- void setResourceType(int resourceGroupId);
+ void setResourceType(int resourceGroupId) throws ResourceGroupDeleteException;
int getExplicitGroupMemberCount(int resourceGroupId);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
index ee0dae9..9a11216 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
@@ -52,6 +52,7 @@ import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.group.RecursivityChangeType;
+import org.rhq.enterprise.server.resource.group.ResourceGroupDeleteException;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionAlreadyExistsException;
@@ -254,8 +255,9 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
@RequiredPermission(Permission.MANAGE_INVENTORY)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
// required for the recalculation thread
- public void calculateGroupMembership(Subject subject, int groupDefinitionId) throws GroupDefinitionDeleteException,
- GroupDefinitionNotFoundException, InvalidExpressionException, ResourceGroupUpdateException {
+ public void calculateGroupMembership(Subject subject, int groupDefinitionId) throws ResourceGroupDeleteException,
+ GroupDefinitionDeleteException, GroupDefinitionNotFoundException, InvalidExpressionException,
+ ResourceGroupUpdateException {
/*
* even though this method declares to throw it, it should never generate an InvalidExpressionException because
* the definition's expression set was validated before it was persisted. conceivably, if the group definition
@@ -329,7 +331,8 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
@RequiredPermission(Permission.MANAGE_INVENTORY)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public Integer calculateGroupMembership_helper(Subject overlord, int groupDefinitionId,
- ExpressionEvaluator.Result result) throws GroupDefinitionNotFoundException, GroupDefinitionNotFoundException {
+ ExpressionEvaluator.Result result) throws ResourceGroupDeleteException, GroupDefinitionNotFoundException,
+ GroupDefinitionNotFoundException {
long startTime = System.currentTimeMillis();
GroupDefinition groupDefinition = getById(groupDefinitionId);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
index b57a35e..d83c77c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
@@ -25,6 +25,7 @@ import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
import org.rhq.core.domain.resource.group.GroupDefinition;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.resource.group.ResourceGroupDeleteException;
import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionAlreadyExistsException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionCreateException;
@@ -48,11 +49,11 @@ public interface GroupDefinitionManagerLocal {
throws GroupDefinitionAlreadyExistsException, GroupDefinitionUpdateException, InvalidExpressionException,
ResourceGroupUpdateException;
- void calculateGroupMembership(Subject subject, int groupDefinitionId) throws GroupDefinitionDeleteException,
- GroupDefinitionNotFoundException, InvalidExpressionException;
+ void calculateGroupMembership(Subject subject, int groupDefinitionId) throws ResourceGroupDeleteException,
+ GroupDefinitionDeleteException, GroupDefinitionNotFoundException, InvalidExpressionException;
Integer calculateGroupMembership_helper(Subject subject, int groupDefinitionId, ExpressionEvaluator.Result result)
- throws GroupDefinitionNotFoundException, GroupDefinitionNotFoundException;
+ throws ResourceGroupDeleteException, GroupDefinitionNotFoundException, GroupDefinitionNotFoundException;
PageList<GroupDefinition> getGroupDefinitions(Subject subject, PageControl pc);
commit 749156f88d2e834ab5ec835eec4eb4ce3d68aedb
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jun 25 13:27:50 2010 -0400
make sure augeas 0.0.2 jar, not 0.0.1 jar, is copied into plugin jar's lib dir
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 531df2c..915106a 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -17,6 +17,10 @@
<name>RHQ Augeas Plugin</name>
<description>An abstract plugin for configuring resources via Augeas</description>
+ <properties>
+ <augeas.version>0.0.2</augeas.version>
+ </properties>
+
<dependencies>
<dependency>
@@ -30,11 +34,13 @@
<artifactId>rhq-platform-plugin</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
+
+ <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
+
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
@@ -45,7 +51,7 @@
<dependency>
<groupId>net.augeas</groupId>
<artifactId>augeas</artifactId>
- <version>0.0.2</version>
+ <version>${augeas.version}</version>
</dependency>
<dependency>
@@ -79,7 +85,7 @@
<artifactItem>
<groupId>net.augeas</groupId>
<artifactId>augeas</artifactId>
- <version>0.0.1</version>
+ <version>${augeas.version}</version>
</artifactItem>
</artifactItems>
@@ -122,7 +128,6 @@
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.1</version>
<executions>
<execution>
commit 7d42b8feaa0bd3071cf36cf79ea58b07bf7673c9
Merge: ed7b01a... d79a2a8...
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jun 25 13:25:49 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit d79a2a881d4a5c7356ce1cef41845c0612cfab4b
Merge: e0efd15... 3617607...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jun 25 18:13:35 2010 +0200
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit e0efd154e0eac23bb2299b6d0f2241a84fe79522
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jun 25 18:12:10 2010 +0200
BZ 583833 - re-show the Events icon in the MICA section.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
index d492ad6..ea8017a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
@@ -27,7 +27,7 @@
<ui:param name="pageTitle" value="Browse Resources"/>
<ui:param name="selectedTabName" value="Resources.#{param.subtab}" />
<ui:define name="content">
-
+
<a4j:keepAlive beanName="BrowseResourcesUIBean"/>
<a4j:form>
@@ -37,7 +37,7 @@
</a4j:form>
<h:form id="browseResourcesForm">
<input type="hidden" name="subtab" value="${param.subtab}" />
-
+
<p/>
<h:panelGrid columns="3">
<h:outputText value="Search: " />
@@ -48,7 +48,7 @@
<ui:param name="defaultSavedSearchPattern" value="#{param.searchId}" />
</ui:include>
- <a4j:commandButton id="searchButtonJSF" value="GO"
+ <a4j:commandButton id="searchButtonJSF" value="GO"
reRender="browseResourcesDataTable, browseResourcesDataTableScroller"
status="commonStatus"
actionListener="#{BrowseResourcesUIBean.clearDataModel}"
@@ -85,42 +85,47 @@
<onc:select name="selectedItems"
value="#{item.original.resource.id}" />
</rich:column>
-
+
<rich:column>
<onc:quickNav>
<f:param name="id" value="#{item.original.resource.id}"/>
-
+
<onc:icon name="Monitor"
- url="/rhq/resource/monitor/graphs.xhtml"
+ url="/rhq/resource/monitor/graphs.xhtml"
alt="Monitor"
visible="#{monitorEnabled}">
</onc:icon>
-
+
<onc:icon name="Inventory"
- url="/rhq/resource/inventory/view.xhtml"
+ url="/rhq/resource/inventory/view.xhtml"
alt="Inventory"/>
-
+
<onc:icon name="Alert"
- url="/rhq/resource/alert/listAlertDefinitions.xhtml"
- alt="Alerts"
+ url="/rhq/resource/alert/listAlertDefinitions.xhtml"
+ alt="Alerts"
visible="#{monitorEnabled}"/>
-
+
<onc:icon name="Configure"
- url="/rhq/resource/configuration/view.xhtml"
- alt="Configure"
+ url="/rhq/resource/configuration/view.xhtml"
+ alt="Configure"
visible="#{item.original.resourceFacets.configuration}"/>
-
+
<onc:icon name="Operation"
- url="/rhq/resource/operation/resourceOperationScheduleNew.xhtml"
- alt="Operations"
+ url="/rhq/resource/operation/resourceOperationScheduleNew.xhtml"
+ alt="Operations"
visible="#{item.original.resourceFacets.operation}"/>
-
- <onc:icon name="Content"
- url="/rhq/resource/content/view.xhtml"
+
+ <onc:icon name="Events"
+ url="/rhq/resource/events/history.xhtml"
+ alt="Events"
+ visible="#{item.original.resourceFacets.event}"/>
+
+ <onc:icon name="Content"
+ url="/rhq/resource/content/view.xhtml"
alt="Content"
visible="#{item.original.resourceFacets.content}"/>
-
- <!-- Is this necessary? It's being passed for all quick nav urls. -->
+
+ <!-- Is this necessary? It's being passed for all quick nav urls. -->
<f:param name="mode" value="list"/>
</onc:quickNav>
</rich:column>
@@ -132,10 +137,10 @@
</onc:sortableColumnHeader>
</f:facet>
- <onc:disambiguatedResourceName resourceName="#{item.original.resource.name}"
+ <onc:disambiguatedResourceName resourceName="#{item.original.resource.name}"
resourceId="#{item.original.resource.id}" disambiguationReport="#{item}"/>
</rich:column>
-<!--
+<!--
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="r.resourceType.name">
commit ed7b01ad0a995bd10219031bc19be268109d1610
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jun 25 11:25:46 2010 -0400
use augeas.version prop rather than hard-coding Augeas version
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..531df2c 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -60,7 +60,6 @@
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.0</version>
<executions>
<execution>
<id>copy-plugin-libs</id>
@@ -74,7 +73,7 @@
<artifactItem>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
- <version>3.2.2</version>
+ <version>${jna.version}</version>
</artifactItem>
<artifactItem>
@@ -180,7 +179,6 @@
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.0</version>
<executions>
<execution>
<id>copy-commons-io-jar</id>
commit 863201f8b91e01632ec7453940f4b08fd3d0dda7
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Jun 25 09:53:02 2010 -0400
BZ-597246: fixing errors, modified loadPackageBits to calculate digest and file length as well.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index b2cac05..6ee805e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -18,6 +18,7 @@
*/
package org.rhq.enterprise.server.content;
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -945,7 +946,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
pkgName = packageVersion.getGeneralPackage().getName();
}
bits = loadPackageBits(bitStream, packageVersion.getId(), pkgName, packageVersion.getVersion(),
- bits);
+ bits, null);
entityManager.merge(bits);
} finally {
@@ -1235,17 +1236,13 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
PackageVersion newPackageVersion = new PackageVersion(existingPackage, version, architecture);
newPackageVersion.setDisplayName(existingPackage.getName());
- PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null);
+ Map<String, String> contentDetails = new HashMap<String, String>();
+ PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null,
+ contentDetails);
newPackageVersion.setPackageBits(bits);
- //TODO: write down to file system to calculate length and calculate hash.
- newPackageVersion.setFileSize((long) bits.getBits().length);
- try {
- newPackageVersion.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
- .calcDigestString(bits.getBits()));
- } catch (IOException e) {
- newPackageVersion.setSHA256(null);
- }
+ newPackageVersion.setFileSize(Long.valueOf(contentDetails.get(UPLOAD_FILE_SIZE)).longValue());
+ newPackageVersion.setSHA256(contentDetails.get(UPLOAD_SHA256));
newPackageVersion = persistOrMergePackageVersionSafely(newPackageVersion);
existingPackage.addVersion(newPackageVersion);
@@ -1559,7 +1556,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
//get the data
- PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null);
+ PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null, null);
packageVersion.setPackageBits(bits);
@@ -1583,11 +1580,12 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
*
* @param packageBitStream
* @param packageVersionId
+ * @param contentDetails
* @return PackageBits ref populated.
*/
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private PackageBits loadPackageBits(InputStream packageBitStream, int packageVersionId, String packageName,
- String packageVersion, PackageBits existingPkgBits) {
+ String packageVersion, PackageBits existingPkgBits, Map<String, String> contentDetails) {
PackageBits bits = null;
//use or instantiate PackageBits instance.
@@ -1608,7 +1606,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
bits = entityManager.find(PackageBits.class, bits.getId());
//write data from stream into db using Hibernate Blob mechanism
- updateBlobStream(packageBitStream, bits);
+ updateBlobStream(packageBitStream, bits, contentDetails);
return bits;
}
@@ -1617,8 +1615,9 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
* Blob mechanism with PreparedStatements. As all content into Bits are not stored as type OID, t
*
* @param stream
+ * @param contentDetails Map to store content details in used in PackageVersioning
*/
- public void updateBlobStream(InputStream stream, PackageBits bits) {
+ public void updateBlobStream(InputStream stream, PackageBits bits, Map<String, String> contentDetails) {
//TODO: are there any db specific limits that we should check/verify here before stuffing
// the contents of a stream into the db? Should we just let the db complain and take care of
@@ -1632,7 +1631,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
//persist to db if not already
if (bits.getId() <= 0) {
- entityManager.persist(this);
+ entityManager.persist(bits);
}
//locate the existing PackageBits instance
@@ -1647,7 +1646,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
Connection conn = null;
PreparedStatement ps = null;
PreparedStatement ps2 = null;
- DataSource ds = null;
try {
conn = dataSource.getConnection();
@@ -1666,7 +1664,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
Blob blb = rs.getBlob(1);
//copy the stream to the Blob
- long transferred = StreamUtil.copy(stream, blb.setBinaryStream(1), false);
+ long transferred = copyAndDigest(stream, blb.setBinaryStream(1), false, contentDetails);
stream.close();
//populate the prepared statement for update
@@ -1687,6 +1685,37 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
log.error("An error occurred while updating Blob with stream for PackageBits[" + bits.getId() + "], "
+ e.getMessage());
e.printStackTrace();
+ } finally {
+ if (ps != null) {
+ try {
+ ps.close();
+ } catch (Exception e) {
+ log.warn("Failed to close prepared statement for package bits [" + bits.getId() + "]");
+ }
+ }
+
+ if (ps2 != null) {
+ try {
+ ps2.close();
+ } catch (Exception e) {
+ log.warn("Failed to close prepared statement for package bits [" + bits.getId() + "]");
+ }
+ }
+
+ if (conn != null) {
+ try {
+ conn.close();
+ } catch (Exception e) {
+ log.warn("Failed to close connection for package bits [" + bits.getId() + "]");
+ }
+ }
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (Exception e) {
+ log.warn("Failed to close stream to package bits located at [" + +bits.getId() + "]");
+ }
+ }
}
entityManager.merge(bits);
@@ -1717,7 +1746,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
ps.setInt(1, bits.getId());
ResultSet results = ps.executeQuery();
if (results.next()) {
- // results.next();
//retrieve the Blob
Blob blob = results.getBlob(1);
//now copy the contents to the stream passed in
@@ -1728,4 +1756,63 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
ex.printStackTrace();
}
}
+
+ /** Functions same as StreamUtil.copy(), but calculates SHA hash and file size and write it to
+ * the Map<String,String> passed in.
+ *
+ * @param input
+ * @param output
+ * @param closeStreams
+ * @param contentDetails
+ * @return
+ * @throws RuntimeException
+ */
+ private long copyAndDigest(InputStream input, OutputStream output, boolean closeStreams,
+ Map<String, String> contentDetails) throws RuntimeException {
+ long numBytesCopied = 0;
+ int bufferSize = 32768;
+ MessageDigestGenerator digestGenerator = null;
+ if (contentDetails != null) {
+ digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ }
+ try {
+ // make sure we buffer the input
+ input = new BufferedInputStream(input, bufferSize);
+
+ byte[] buffer = new byte[bufferSize];
+
+ for (int bytesRead = input.read(buffer); bytesRead != -1; bytesRead = input.read(buffer)) {
+ output.write(buffer, 0, bytesRead);
+ numBytesCopied += bytesRead;
+ if (digestGenerator != null) {
+ digestGenerator.add(buffer, 0, bytesRead);
+ }
+ }
+
+ if (contentDetails != null) {//if we're calculating a digest as well
+ contentDetails.put(UPLOAD_FILE_SIZE, String.valueOf(numBytesCopied));
+ contentDetails.put(UPLOAD_SHA256, digestGenerator.getDigestString());
+ }
+ output.flush();
+ } catch (IOException ioe) {
+ throw new RuntimeException("Stream data cannot be copied", ioe);
+ } finally {
+ if (closeStreams) {
+ try {
+ output.close();
+ } catch (IOException ioe2) {
+ log.warn("Streams could not be closed", ioe2);
+ }
+
+ try {
+ input.close();
+ } catch (IOException ioe2) {
+ log.warn("Streams could not be closed", ioe2);
+ }
+ }
+ }
+
+ return numBytesCopied;
+ }
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 65b0365..0b0e5a5 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -349,6 +349,6 @@ public interface ContentManagerLocal {
void writeBlobOutToStream(OutputStream stream, PackageBits bits, boolean closeStreams);
- void updateBlobStream(InputStream stream, PackageBits bits);
+ void updateBlobStream(InputStream stream, PackageBits bits, Map<String, String> contentDetails);
}
\ No newline at end of file
commit 3617607ac9b93a68a790a8c465679cb74f9f11f1
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Jun 25 13:56:43 2010 +0200
BZ 601176 - Adding support for '*' as both host and port spec in Listen, and VirtualHost directives.
Enhanced the detection of the address a server or vhost is reachable on, thus improving the out-of-the-box availability detection.
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java
index 38ce9dc..0e98116 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java
@@ -390,7 +390,7 @@ public class ApacheServerComponent implements AugeasRHQComponent<PlatformCompone
ApacheParser parser = new ApacheParserImpl(parserTree,getServerRoot().getAbsolutePath());
ApacheConfigReader.buildTree(getHttpdConfFile().getAbsolutePath(), parser);
- addr = getAddressUtility().getVirtualHostSampleAddress(parserTree, vhostDefs[0], serverName);
+ addr = getAddressUtility().getVirtualHostSampleAddress(parserTree, vhostDefs[0], serverName, false);
} catch (Exception e) {
report.setStatus(CreateResourceStatus.FAILURE);
report.setErrorMessage("Wrong format of virtual host resource name.");
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java
index 8f6deb7..edffb23 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java
@@ -235,7 +235,7 @@ public class ApacheServerDiscoveryComponent implements ResourceDiscoveryComponen
* @throws Exception
*/
private static String getUrl(ApacheDirectiveTree serverConfig, String version) throws Exception {
- Address addr = HttpdAddressUtility.get(version).getMainServerSampleAddress(serverConfig);
+ Address addr = HttpdAddressUtility.get(version).getMainServerSampleAddress(serverConfig, null, 0);
return addr == null ? null : "http://" + addr.host + ":" + addr.port + "/";
}
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
index 533ebd4..e44fef5 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
@@ -516,11 +516,17 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
ApacheServerComponent parent = resourceContext.getParentResourceComponent();
if (vhostAddressStrings.length == 1 && MAIN_SERVER_RESOURCE_KEY.equals(vhostAddressStrings[0])) {
- vhostAddresses.add(parent.getAddressUtility().getMainServerSampleAddress(tree));
+ HttpdAddressUtility.Address serverAddr = parent.getAddressUtility().getMainServerSampleAddress(tree, null, 0);
+ if (serverAddr != null) {
+ vhostAddresses.add(serverAddr);
+ }
} else {
for (int i = 0; i < vhostAddressStrings.length; ++i) {
- vhostAddresses.add(parent.getAddressUtility().getVirtualHostSampleAddress(tree, vhostAddressStrings[i],
- vhostServerName));
+ HttpdAddressUtility.Address vhostAddr = parent.getAddressUtility().getVirtualHostSampleAddress(tree, vhostAddressStrings[i],
+ vhostServerName, true);
+ if (vhostAddr != null) {
+ vhostAddresses.add(vhostAddr);
+ }
}
}
@@ -540,7 +546,10 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
String fullPort = portValue.toString();
int snmpPort = Integer.parseInt(fullPort.substring(fullPort.lastIndexOf(".") + 1));
- if (snmpPort == 0) snmpPort = 80;
+
+ //the snmp represent wildcard ports as 0 and so does HttpdAddressUtility.Address class
+ //we can therefore match the Address generated from the snmp values and the Addresses
+ //stored for this vhost directly.
HttpdAddressUtility.Address snmpAddress = new HttpdAddressUtility.Address(snmpHost, snmpPort);
@@ -562,8 +571,10 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
}
private int matchRate(List<HttpdAddressUtility.Address> addresses, HttpdAddressUtility.Address addressToCheck) throws UnknownHostException {
- if (addresses.contains(addressToCheck)) {
- return 3;
+ for(HttpdAddressUtility.Address a : addresses) {
+ if (HttpdAddressUtility.isAddressConforming(addressToCheck, a.host, a.port)) {
+ return 3;
+ }
}
//try to get the IP of the address to check
@@ -572,8 +583,10 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
for(InetAddress ip : ipAddresses) {
HttpdAddressUtility.Address newCheck = new HttpdAddressUtility.Address(ip.getHostAddress(), addressToCheck.port);
- if (addresses.contains(newCheck)) {
- return 2;
+ for(HttpdAddressUtility.Address a : addresses) {
+ if (HttpdAddressUtility.isAddressConforming(newCheck, a.host, a.port)) {
+ return 2;
+ }
}
}
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java
index 75e9f35..b308dd4 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java
@@ -49,6 +49,8 @@ import org.rhq.plugins.apache.util.HttpdAddressUtility.Address;
*/
public class ApacheVirtualHostServiceDiscoveryComponent implements ResourceDiscoveryComponent<ApacheServerComponent> {
+ private static final String COULD_NOT_DETERMINE_THE_VIRTUAL_HOST_ADDRESS = "*** Could not determine the virtual host address ***";
+
public static final String LOGS_DIRECTORY_NAME = "logs";
private static final String RT_LOG_FILE_NAME_SUFFIX = "_rt.log";
@@ -97,12 +99,38 @@ public class ApacheVirtualHostServiceDiscoveryComponent implements ResourceDisco
Configuration pluginConfiguration = context.getDefaultPluginConfiguration();
- Address address = serverComponent.getAddressUtility().getVirtualHostSampleAddress(tree, firstAddress, serverName);
+ Address address = serverComponent.getAddressUtility().getVirtualHostSampleAddress(tree, firstAddress, serverName, false);
if (address != null) {
- String url = "http://" + address.host + ":" + address.port + "/";
+ String hostToPing = address.host;
+ int portToPing = address.port;
+ if (address.isPortWildcard()) {
+ Address serverAddress = serverComponent.getAddressUtility().getMainServerSampleAddress(tree, hostToPing, 0);
+ if (serverAddress != null) {
+ portToPing = serverAddress.port;
+ } else {
+ portToPing = Address.PORT_WILDCARD_VALUE;
+ }
+ }
+ if (address.isHostDefault() || address.isHostWildcard()) {
+ Address serverAddress = serverComponent.getAddressUtility().getMainServerSampleAddress(tree, null, portToPing);
+
+ if (serverAddress != null) {
+ hostToPing = serverAddress.host;
+ } else {
+ hostToPing = null;
+ }
+ }
+
+ String url;
+ if (hostToPing != null && portToPing != Address.PORT_WILDCARD_VALUE && portToPing != Address.NO_PORT_SPECIFIED_VALUE) {
+ url = "http://" + hostToPing + ":" + portToPing + "/";
+ } else {
+ url = COULD_NOT_DETERMINE_THE_VIRTUAL_HOST_ADDRESS;
+ }
PropertySimple urlProp = new PropertySimple(ApacheVirtualHostServiceComponent.URL_CONFIG_PROP, url);
pluginConfiguration.put(urlProp);
+
}
File rtLogFile = new File(logsDir, address.host + address.port + RT_LOG_FILE_NAME_SUFFIX);
@@ -113,7 +141,7 @@ public class ApacheVirtualHostServiceDiscoveryComponent implements ResourceDisco
String resourceName;
if (serverName != null) {
- resourceName = address.host + ":" + address.port;
+ resourceName = address.toString();
} else {
resourceName = resourceKey;
}
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java
index 1aea3b2..261c446 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java
@@ -25,11 +25,11 @@ package org.rhq.plugins.apache.util;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.rhq.augeas.node.AugeasNode;
import org.rhq.plugins.apache.parser.ApacheDirective;
import org.rhq.plugins.apache.parser.ApacheDirectiveTree;
@@ -41,71 +41,54 @@ import org.rhq.plugins.apache.parser.ApacheDirectiveTree;
public enum HttpdAddressUtility {
APACHE_1_3 {
- public Address getMainServerSampleAddress(ApacheDirectiveTree ag) {
+ public Address getMainServerSampleAddress(ApacheDirectiveTree ag, String limitToHost, int limitToPort) {
try {
- Address addr = null;
+ List<ApacheDirective> ports = ag.search("/Port");
+ List<ApacheDirective> bindAddresses = ag.search("/BindAddress");
+ List<ApacheDirective> listens = ag.search("/Listen");
- //check if there is a ServerName directive
- List<ApacheDirective> serverNameNodes = ag.search("/ServerName");
-
- if (serverNameNodes.size() > 0) {
- String serverName = serverNameNodes.get(0).getValuesAsString();
- addr = Address.parse(serverName);
- } else {
- List<ApacheDirective> ports = ag.search("/Port");
- List<ApacheDirective> bindAddresses = ag.search("/BindAddress");
- List<ApacheDirective> listens = ag.search("/Listen");
-
- String port = null;
- String bindAddress = null;
- String listen = null;
-
- if (ports.size() > 0) {
- List<String>values = ports.get(0).getValues();
- if (values.size()>0)
- port = values.get(0);
- }
-
- if (bindAddresses.size() > 0) {
- List<String>values = bindAddresses.get(0).getValues();
- if (values.size()>0)
- bindAddress = values.get(0);
- }
-
- if (listens.size() > 0) {
- List<String>values = listens.get(0).getValues();
- if (values.size()>0)
- listen = values.get(0);
- }
-
- String host = null;
- int portToUse = -1;
-
- if (bindAddress != null && !"*".equals(bindAddress)) {
- host = bindAddress;
- }
-
- if (port != null) {
- portToUse = Integer.parseInt(port);
+ String port = "80"; //this is the default in apache 1.3
+ String bindAddress = null;
+
+ List<Address> addressesToMatch = new ArrayList<Address>();
+
+ if (ports.size() > 0) {
+ List<String>values = ports.get(0).getValues();
+ if (values.size()>0)
+ port = values.get(0);
+ }
+
+ if (bindAddresses.size() > 0) {
+ List<String>values = bindAddresses.get(0).getValues();
+ if (values.size()>0)
+ bindAddress = values.get(0);
+ }
+
+ //listen directives take precedence over port/bindaddress combo
+ if (listens.size() > 0) {
+ for(ApacheDirective l : listens) {
+ addressesToMatch.add(parseListen(l.getValues().get(0)));
}
-
- if (listen != null) {
- Address tmp = Address.parse(listen);
- host = tmp.host;
- portToUse = tmp.port;
- if (portToUse == -1) {
- host = null;
- portToUse = Integer.parseInt(tmp.host);
+ } else {
+ addressesToMatch.add(new Address(bindAddress, Integer.parseInt(port)));
+ }
+
+ for (Address address : addressesToMatch) {
+ if (isAddressConforming(address, limitToHost, limitToPort)) {
+ if (!address.isPortDefined() || address.isPortWildcard()) {
+ address.port = 80;
}
+ if (address.host == null || address.isHostDefault() || address.isHostWildcard()) {
+ address = getLocalhost(address.port);
+ }
+
+ updateWithServerName(address, ag);
+
+ return address;
}
-
- if (host == null) {
- host = InetAddress.getLocalHost().getHostName();
- }
-
- addr = new Address(host, portToUse);
}
- return addr;
+
+ return null;
} catch (Exception e) {
log.info("Failed to obtain main server address. Is augeas installed and correct lens in use?");
@@ -114,34 +97,23 @@ public enum HttpdAddressUtility {
}
},
APACHE_2_x {
- public Address getMainServerSampleAddress(ApacheDirectiveTree ag) {
+ public Address getMainServerSampleAddress(ApacheDirectiveTree ag, String limitToHost, int limitToPort) {
try {
- Address addr = null;
-
- //check if there is a ServerName directive
- List<ApacheDirective> serverNameNodes = ag.search("/ServerName");
-
- if (serverNameNodes.size() > 0) {
- String serverName = serverNameNodes.get(0).getValuesAsString();
- addr = Address.parse(serverName);
- } else {
- //there has to be at least one Listen directive
- ApacheDirective listen = ag.search("/Listen").get(0);
-
- String address = listen.getValues().get(0);
-
- addr = Address.parse(address);
-
- if (addr.port == -1) {
- addr.port = Integer.parseInt(addr.host);
- try {
- addr.host = InetAddress.getLocalHost().getHostName();
- } catch (UnknownHostException e) {
- throw new IllegalStateException("Unable to get the localhost address.", e);
+ for(ApacheDirective n : ag.search("/Listen")) {
+ Address addr = parseListen(n.getValues().get(0));
+ if (isAddressConforming(addr, limitToHost, limitToPort)) {
+ if (addr.host == null || addr.isHostDefault() || addr.isHostWildcard()) {
+ addr = getLocalhost(addr.port);
}
+
+ updateWithServerName(addr, ag);
+
+ return addr;
}
}
- return addr;
+
+ //there has to be at least one Listen directive
+ throw new IllegalStateException("Could find a listen address on port " + limitToPort);
} catch (Exception e) {
log.info("Failed to obtain main server address. Is augeas installed and correct lens in use?");
@@ -159,7 +131,12 @@ public enum HttpdAddressUtility {
public static class Address {
public String host;
public int port = -1;
-
+
+ public static final String WILDCARD = "*";
+ public static final String DEFAULT_HOST = "_default_";
+ public static final int PORT_WILDCARD_VALUE = 0;
+ public static final int NO_PORT_SPECIFIED_VALUE = -1;
+
public Address(String host, int port) {
this.host = host;
this.port = port;
@@ -174,21 +151,45 @@ public enum HttpdAddressUtility {
*/
public static Address parse(String address) {
int lastColonIdx = address.lastIndexOf(':');
- if (lastColonIdx == -1) {
+ if (lastColonIdx == NO_PORT_SPECIFIED_VALUE) {
return new Address(address, -1);
} else {
int lastRightBracketPos = address.lastIndexOf(']');
if (lastColonIdx > lastRightBracketPos) {
String host = address.substring(0, lastColonIdx);
- int port = Integer.parseInt(address.substring(lastColonIdx + 1));
+ String portSpec = address.substring(lastColonIdx + 1);
+
+ int port = NO_PORT_SPECIFIED_VALUE;
+ if (WILDCARD.equals(portSpec)) {
+ port = PORT_WILDCARD_VALUE;
+ } else {
+ port = Integer.parseInt(portSpec);
+ }
+
return new Address(host, port);
} else {
//this is an IP6 address without a port spec
- return new Address(address, -1);
+ return new Address(address, NO_PORT_SPECIFIED_VALUE);
}
}
}
+ public boolean isPortWildcard() {
+ return port == PORT_WILDCARD_VALUE;
+ }
+
+ public boolean isPortDefined() {
+ return port != NO_PORT_SPECIFIED_VALUE;
+ }
+
+ public boolean isHostWildcard() {
+ return WILDCARD.equals(host);
+ }
+
+ public boolean isHostDefault() {
+ return DEFAULT_HOST.equals(host);
+ }
+
@Override
public int hashCode() {
int hash = port;
@@ -210,15 +211,28 @@ public enum HttpdAddressUtility {
return this.host.equals(o.host) && this.port == o.port;
}
}
+
+ @Override
+ public String toString() {
+ if (port == NO_PORT_SPECIFIED_VALUE) return host;
+ else {
+ String portSpec = port == PORT_WILDCARD_VALUE ? WILDCARD : String.valueOf(port);
+
+ return host + ":" + portSpec;
+ }
+ }
}
/**
* This just constructs a first available address under which the server or one of its virtual hosts can be reached.
*
* @param ag the tree of the httpd configuration
+ * @param limitToHost if non-null and different from {@link Address#DEFAULT_HOST} and {@link Address#WILDCARD},
+ * the sample address is looked for only for the given host
+ * @param limitToPort if > 0, the sample address is looked for only for the given port
* @return the address or null on failure
*/
- public abstract Address getMainServerSampleAddress(ApacheDirectiveTree ag);
+ public abstract Address getMainServerSampleAddress(ApacheDirectiveTree ag, String limitToHost, int limitToPort);
/**
* This constructs an address on which given virtual host can be accessed.
@@ -226,29 +240,22 @@ public enum HttpdAddressUtility {
* @param ag the augeas tree of the httpd configuration
* @param virtualHost the port or address:port of the virtual host
* @param serverName the server name for the namebased virtual hosts (or null if the virtual host is ip based)
- *
+ * @param snmpModuleCompatibleMode if true, generates a sample address in the same way as snmp module. Namely
+ * deals with the host name wildcard the same way as snmp module (i.e. by assuming it means "localhost", even though it doesn't have to).
* @return the address on which the virtual host can be accessed or null on error
*/
- public Address getVirtualHostSampleAddress(ApacheDirectiveTree ag, String virtualHost, String serverName) {
+ public Address getVirtualHostSampleAddress(ApacheDirectiveTree ag, String virtualHost, String serverName, boolean snmpModuleCompatibleMode) {
Address addr = Address.parse(virtualHost);
- if (addr.port == -1) {
- //just port specified
- Address serverAddr = getMainServerSampleAddress(ag);
-
+ if (addr.isHostDefault() || addr.isHostWildcard()) {
+ Address serverAddr = null;
+ if (snmpModuleCompatibleMode) {
+ serverAddr = getLocalhost(addr.port);
+ } else {
+ serverAddr = getMainServerSampleAddress(ag, null, addr.port);
+ }
if (serverAddr == null)
return null;
-
- addr.port = Integer.parseInt(addr.host);
addr.host = serverAddr.host;
- } else {
- String host = addr.host;
- if ("*".equals(host) || "_default_".equals(host)) {
- Address serverAddr = getMainServerSampleAddress(ag);
- if (serverAddr == null)
- return null;
- host = serverAddr.host;
- }
- addr.host = host;
}
if (serverName != null) {
@@ -259,9 +266,69 @@ public enum HttpdAddressUtility {
} else {
addr.host = serverName;
}
- addr.host = addr.host.replaceAll("\\*", "replaced-wildcard");
}
return addr;
}
+
+ private static Address parseListen(String listenValue) {
+ Address ret = Address.parse(listenValue);
+ if (!ret.isPortDefined()) {
+ try {
+ ret.port = Integer.parseInt(ret.host);
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ ret.host = null;
+ }
+
+ return ret;
+ }
+
+ public static boolean isAddressConforming(Address listen, String limitingHost, int limitingPort) {
+ if (Address.DEFAULT_HOST.equals(limitingHost) || Address.WILDCARD.equals(limitingHost)) {
+ limitingHost = null;
+ }
+
+ boolean hostOk = limitingHost == null;
+ boolean portOk = limitingPort <= 0;
+
+ //listen.host == null means that server listens on all addresses
+ if (!hostOk && (listen.host == null || limitingHost.equals(listen.host))) {
+ hostOk = true;
+ }
+
+ if (!portOk && limitingPort == listen.port) {
+ portOk = true;
+ }
+
+ return hostOk && portOk;
+ }
+
+ private static Address getLocalhost(int port) {
+ try {
+ return new Address(InetAddress.getLocalHost().getHostAddress(), port);
+ } catch (UnknownHostException e) {
+ //well, this is bad, we can get address of the localhost. let's use the force...
+ return new Address("127.0.0.1", port);
+ }
+ }
+
+ private static void updateWithServerName(Address address, ApacheDirectiveTree config) throws UnknownHostException {
+ //check if there is a ServerName directive
+ List<ApacheDirective> serverNameNodes = config.search("/ServerName");
+
+ //if there is a ServerName directive, check that the address
+ //we're returning indeed corresponds to it. This might not
+ //be the case if the server listens on more than one interfaces.
+ if (serverNameNodes.size() > 0) {
+ String serverName = serverNameNodes.get(0).getValuesAsString();
+ InetAddress addrFromServerName = InetAddress.getByName(serverName);
+ InetAddress addrFromAddress = InetAddress.getByName(address.host);
+
+ if (addrFromAddress.equals(addrFromServerName)) {
+ address.host = serverName;
+ }
+ }
+ }
}
diff --git a/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java b/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java
index 8f3e470..cd15ef2 100644
--- a/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java
+++ b/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java
@@ -129,7 +129,7 @@ public class PluginDescriptorBasedAugeasConfiguration implements AugeasConfigura
}
public static List<String> getGlobList(PropertySimple list) {
- if (list != null) {
+ if (list != null && list.getStringValue() != null) {
return Arrays.asList(list.getStringValue().split("\\s*\\|\\s*"));
} else {
return Collections.emptyList();
commit 4876619ad4df851263624fcf54687c23559b8eaf
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 25 00:43:57 2010 -0400
BZ-597174: make category filter more lenient for group-based searching
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/GroupSearchTranslator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/GroupSearchTranslator.java
index a754f43..5a603ed 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/GroupSearchTranslator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/GroupSearchTranslator.java
@@ -1,5 +1,6 @@
package org.rhq.enterprise.server.search.translation;
+import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.enterprise.server.search.translation.antlr.RHQLAdvancedTerm;
import org.rhq.enterprise.server.search.translation.antlr.RHQLComparisonOperator;
import org.rhq.enterprise.server.search.translation.jpql.SearchFragment;
@@ -41,7 +42,7 @@ public class GroupSearchTranslator extends AbstractSearchTranslator {
} else if (path.equals("category")) {
return new SearchFragment(SearchFragmentType.WHERE_CLAUSE, //
- getJPQLForString(alias + ".resourceType.category", op, filter));
+ getJPQLForEnum(alias + ".resourceType.category", op, filter, ResourceCategory.class, false));
} else if (path.equals("type")) {
return new SearchFragment(SearchFragmentType.WHERE_CLAUSE, //
commit cba42b61bc8ba3b9b2aaf1afe76754f0f398d850
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 25 00:38:22 2010 -0400
BZ-597174: make category filter more lenient for resource-based searching
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/ResourceSearchTranslator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/ResourceSearchTranslator.java
index 4ed1607..579184b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/ResourceSearchTranslator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/translation/ResourceSearchTranslator.java
@@ -2,6 +2,7 @@ package org.rhq.enterprise.server.search.translation;
import org.rhq.core.domain.alert.AlertPriority;
import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.search.assist.AlertSearchAssistParam;
import org.rhq.enterprise.server.search.translation.antlr.RHQLAdvancedTerm;
import org.rhq.enterprise.server.search.translation.antlr.RHQLComparisonOperator;
@@ -24,7 +25,7 @@ public class ResourceSearchTranslator extends AbstractSearchTranslator {
} else if (path.equals("category")) {
return new SearchFragment(SearchFragmentType.WHERE_CLAUSE, //
- getJPQLForString(alias + ".resourceType.category", op, filter));
+ getJPQLForEnum(alias + ".resourceType.category", op, filter, ResourceCategory.class, false));
} else if (path.equals("type")) {
return new SearchFragment(SearchFragmentType.WHERE_CLAUSE, //
commit 9da7f8614a2aceceba960fee8a876e4b0b98df3a
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jun 25 00:26:37 2010 -0400
include command-line Ant bundle deployer zipfile in rhq-downloads dir and add download link on downloads.xhtml page
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/DownloadsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/DownloadsUIBean.java
index 56e38db..bad2170 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/DownloadsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/DownloadsUIBean.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -29,8 +29,8 @@ import java.util.Properties;
import org.rhq.enterprise.server.util.LookupUtil;
/**
- * Provides data to the page that allows a user to download the agent update binary, client distribution
- * or connector binaries.
+ * Provides data to the page that allows a user to download the agent update binary, client distribution,
+ * connector binaries, or command-line bundle deployer.
*
* @author Greg Hinkle
*/
@@ -38,32 +38,22 @@ public class DownloadsUIBean implements Serializable {
private static final long serialVersionUID = 1L;
public Properties getAgentVersionProperties() {
-
try {
File file = LookupUtil.getAgentManager().getAgentUpdateVersionFile();
- Properties p = new Properties();
- p.load(new FileInputStream(file));
+ Properties props = new Properties();
+ props.load(new FileInputStream(file));
- return p;
+ return props;
} catch (Exception e) {
throw new RuntimeException("Agent download information not available", e);
}
-
}
public List<File> getConnectorDownloadFiles() throws Exception {
File downloadDir = getConnectorDownloadsDir();
- File[] filesArray = downloadDir.listFiles();
- List<File> files = new ArrayList<File>();
- if (filesArray != null) {
- for (File file : filesArray) {
- if (file.isFile()) {
- files.add(file);
- }
- }
- }
+ List<File> files = getFiles(downloadDir);
return files;
}
@@ -71,7 +61,7 @@ public class DownloadsUIBean implements Serializable {
File serverHomeDir = LookupUtil.getCoreServer().getJBossServerHomeDir();
File downloadDir = new File(serverHomeDir, "deploy/rhq.ear/rhq-downloads/connectors");
if (!downloadDir.exists()) {
- throw new FileNotFoundException("Missing connectors downloads directory at [" + downloadDir + "]");
+ throw new FileNotFoundException("Missing connectors download directory at [" + downloadDir + "]");
}
return downloadDir;
}
@@ -96,4 +86,32 @@ public class DownloadsUIBean implements Serializable {
}
}
+ public String getBundleDeployerDownloadFileName() throws Exception {
+ File downloadDir = getBundleDeployerDownloadDir();
+ List<File> files = getFiles(downloadDir);
+ File file = files.get(0);
+ return file.getName();
+ }
+
+ private File getBundleDeployerDownloadDir() throws Exception {
+ File serverHomeDir = LookupUtil.getCoreServer().getJBossServerHomeDir();
+ File downloadDir = new File(serverHomeDir, "deploy/rhq.ear/rhq-downloads/bundle-deployer");
+ if (!downloadDir.exists()) {
+ throw new FileNotFoundException("Missing bundle deployer download directory at [" + downloadDir + "]");
+ }
+ return downloadDir;
+ }
+
+ private static List<File> getFiles(File downloadDir) {
+ File[] filesArray = downloadDir.listFiles();
+ List<File> files = new ArrayList<File>();
+ if (filesArray != null) {
+ for (File file : filesArray) {
+ if (file.isFile()) {
+ files.add(file);
+ }
+ }
+ }
+ return files;
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads.xhtml
index 9ad82f4..834158c 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads.xhtml
@@ -28,7 +28,6 @@
<ui:define name="body">
-
<rich:panel>
<f:facet name="header">
<h:outputText value="Agent Download"/>
@@ -51,8 +50,6 @@
</h:panelGroup>
-
-
<h3>Agent Install</h3>
<p>
@@ -75,7 +72,6 @@
where the existing agent is, the default is:
rhq-agent
This is mutually exclusive of --install
-
</p>
@@ -113,6 +109,21 @@
</rich:panel>
+ <rich:panel>
+ <f:facet name="header">
+ <h:outputText value="Bundle Deployer Download"/>
+ </f:facet>
+
+ <h:panelGrid columns="1" width="100%">
+
+ <h:outputLink value="/downloads/bundle-deployer/#{DownloadsUIBean.bundleDeployerDownloadFileName}">
+ <h:graphicImage value="/images/icons/Save_32.png"/>
+ <h:outputText value="Download Bundle Deployer"/>
+ </h:outputLink>
+
+ </h:panelGrid>
+ </rich:panel>
+
</ui:define>
</ui:composition>
-</html>
\ No newline at end of file
+</html>
diff --git a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
index 4e7a944..238f6d2 100644
--- a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
@@ -351,6 +351,7 @@
<mkdir dir="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/rhq-client" />
<mkdir dir="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/rhq-plugins" />
<mkdir dir="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/connectors" />
+ <mkdir dir="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/bundle-deployer" />
<!-- deploy the agent update binary to the downloads location -->
<echo>Deploying the latest agent update binary and renaming it rhq-enterprise-agent-${rhq.version}.jar</echo>
@@ -366,6 +367,13 @@
verbose="true"
failonerror="false"/>
+ <!-- deploy the command-line bundle deployer (Ant launcher) to the downloads location. -->
+ <echo>Deploying the latest command-line bundle deployer</echo>
+ <copy file="${settings.localRepository}/org/rhq/rhq-ant-bundle-common/${rhq.version}/rhq-ant-bundle-common-${rhq.version}.zip"
+ tofile="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/bundle-deployer/rhq-bundle-deployer-${rhq.version}.zip"
+ verbose="true"
+ failonerror="false"/>
+
<!-- optionally package the connectors -->
<antcall target="package-connectors" />
commit 31ae5bb82c7c47f807e6c9bb209dbe649d97ea3b
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 24 22:26:33 2010 -0400
remove unnecessary reloading of the group definition during updates
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
index ebfeccd..ee0dae9 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
@@ -269,6 +269,7 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
long startTime = System.currentTimeMillis();
GroupDefinition groupDefinition = getById(groupDefinitionId);
+ groupDefinition.setLastCalculationTime(System.currentTimeMillis()); // we're calculating now
ExpressionEvaluator evaluator = new ExpressionEvaluator();
for (String expression : groupDefinition.getExpressionAsList()) {
@@ -320,10 +321,6 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
groupDefinitionManager.removeManagedResource_helper(subject, groupDefinitionId, doomedGroupId);
}
- // re-attach the group, because it was cleared from the session during the callout to the helper
- groupDefinition = getById(groupDefinitionId);
- groupDefinition.setLastCalculationTime(System.currentTimeMillis());
-
long endTime = System.currentTimeMillis();
log.debug("calculateGroupMembership took " + (endTime - startTime) + " millis");
commit 5705abb4352b142bfe840c0dc55e6d02d82de761
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 24 18:22:40 2010 -0400
BZ-601240: more graceful handling of exceptional conditions when loading SearchSuggestions
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/execution/SearchAssistManager.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/execution/SearchAssistManager.java
index 435e073..34eed0e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/execution/SearchAssistManager.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/search/execution/SearchAssistManager.java
@@ -358,6 +358,14 @@ public class SearchAssistManager {
public List<SearchSuggestion> getSuggestions(String expression, int caretPos) {
List<SearchSuggestion> results = new ArrayList<SearchSuggestion>();
+ if (subject == null) {
+ // likely a client's misuse of the API, but gracefully return no saved searches if the user is not found
+ SearchSuggestion footerMessage = new SearchSuggestion(Kind.InstructionalTextComment,
+ "Error retrieving saved searches, please refresh page");
+ results.add(footerMessage);
+ return results;
+ }
+
try {
if (expression == null) {
expression = "";
commit e2d53dc7bc6b28181bf93392229a49b8df516f71
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 24 17:22:00 2010 -0400
get rid of massive (now obsolete) native SQL solution for retrieving ResourceGroupComposites for some GroupDefinition
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java
index d4c7ada..48e35cd 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/GroupDefinition.java
@@ -52,10 +52,6 @@ import org.rhq.core.domain.util.StringUtils;
+ "SELECT gd " //
+ " FROM GroupDefinition AS gd " //
+ " WHERE LOWER(gd.name) = LOWER(:name)"), //
- @NamedQuery(name = GroupDefinition.QUERY_FIND_MEMBERS_count, query = "" //
- + "SELECT COUNT(rg) " //
- + " FROM ResourceGroup rg " //
- + " WHERE rg.groupDefinition.id = :groupDefinitionId "), //
@NamedQuery(name = GroupDefinition.QUERY_FIND_ALL_MEMBERS, query = "" //
+ "SELECT rg " //
+ " FROM ResourceGroup rg " //
@@ -96,66 +92,12 @@ public class GroupDefinition implements Serializable {
public static final String QUERY_FIND_ALL = "GroupDefinition.findAll";
public static final String QUERY_FIND_BY_NAME = "GroupDefinition.findByName";
public static final String QUERY_FIND_MEMBERS = "GroupDefinition.findMembers";
- public static final String QUERY_FIND_MEMBERS_count = "GroupDefinition.findMembers_count";
public static final String QUERY_FIND_ALL_MEMBERS = "GroupDefinition.findAllMembers_admin";
public static final String QUERY_FIND_MANAGED_RESOURCE_GROUP_IDS_ADMIN = "GroupDefinition.findManagedResourceGroupIds_admin";
public static final String QUERY_FIND_MANAGED_RESOURCE_GROUP_SIZE_ADMIN = "GroupDefinition.findManagedResourceGroupSize_admin";
public static final String QUERY_FIND_IDS_FOR_RECALCULATION = "GroupDefinition.findIdsForRecalculation_admin";
public static final String QUERY_FIND_ALL_RECALCULATING = "GroupDefinition.findAllRecalculating_admin";
- public static final String QUERY_NATIVE_FIND_MEMBERS = "" //
- + " SELECT "
- + " ( SELECT COUNT(eresAvail.ID) "
- + " FROM rhq_resource_avail eresAvail "
- + " INNER JOIN rhq_resource eres "
- + " ON eresAvail.resource_id = eres.id "
- + " INNER JOIN rhq_resource_group_res_exp_map expMap "
- + " ON eres.id = expMap.resource_id "
- + " WHERE expMap.resource_group_id = rg.id "
- + " ) as explicitCount, "
- + "" //
- + " ( SELECT AVG(eresAvail.availability_type) "
- + " FROM rhq_resource_avail eresAvail "
- + " INNER JOIN rhq_resource eres "
- + " ON eresAvail.resource_id = eres.id "
- + " INNER JOIN rhq_resource_group_res_exp_map expMap "
- + " ON eres.id = expMap.resource_id "
- + " WHERE expMap.resource_group_id = rg.id "
- + " ) as explicitAvail, "
- + "" //
- + " ( SELECT COUNT(iresAvail.ID) "
- + " FROM rhq_resource_avail iresAvail "
- + " INNER JOIN rhq_resource ires "
- + " ON iresAvail.resource_id = ires.id "
- + " INNER JOIN rhq_resource_group_res_imp_map impMap "
- + " ON ires.id = impMap.resource_id "
- + " WHERE impMap.resource_group_id = rg.id "
- + " ) as implicitCount, "
- + "" //
- + " ( SELECT AVG(iresAvail.availability_type) "
- + " FROM rhq_resource_avail iresAvail "
- + " INNER JOIN rhq_resource ires "
- + " ON iresAvail.resource_id = ires.id "
- + " INNER JOIN rhq_resource_group_res_imp_map impMap "
- + " ON ires.id = impMap.resource_id "
- + " WHERE impMap.resource_group_id = rg.id "
- + " ) as implicitAvail, "
- + "" //
- + " rg.id as groupId, "
- + " rg.name as groupName, "
- + " rg.category as groupCategory, "
- + " rg.group_by as groupedBy "
- + "" //
- + " FROM rhq_resource_group rg "
- + "LEFT OUTER JOIN rhq_resource_group_res_imp_map memberMap "
- + " ON rg.id = memberMap.resource_group_id "
- + "LEFT OUTER JOIN rhq_resource res "
- + " ON memberMap.resource_id = res.id "
- + "LEFT OUTER JOIN rhq_resource_avail resAvail "
- + " ON res.id = resAvail.resource_id "
- + " WHERE rg.group_definition_id = ? "
- + " GROUP BY rg.id, rg.category, rg.name, rg.group_by ";
-
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "id")
@Id
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
index 9dc3430..ebfeccd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
@@ -18,18 +18,12 @@
*/
package org.rhq.enterprise.server.resource.group.definition;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
-import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
@@ -38,39 +32,25 @@ import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
-import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.rhq.core.db.DatabaseType;
-import org.rhq.core.db.DatabaseTypeFactory;
-import org.rhq.core.db.H2DatabaseType;
-import org.rhq.core.db.OracleDatabaseType;
-import org.rhq.core.db.PostgresqlDatabaseType;
-import org.rhq.core.db.SQLServerDatabaseType;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
-import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.composite.ResourceFacets;
import org.rhq.core.domain.resource.group.GroupDefinition;
import org.rhq.core.domain.resource.group.ResourceGroup;
-import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
-import org.rhq.core.domain.util.OrderingField;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.server.PersistenceUtility;
import org.rhq.core.util.collection.ArrayUtils;
-import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
-import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
import org.rhq.enterprise.server.resource.group.RecursivityChangeType;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
@@ -88,17 +68,12 @@ import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
@Stateless
-(a)javax.annotation.Resource(name = "RHQ_DS", mappedName = RHQConstants.DATASOURCE_JNDI_NAME)
public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
private final Log log = LogFactory.getLog(GroupDefinitionManagerBean.class);
@PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME)
private EntityManager entityManager;
- @javax.annotation.Resource(name = "RHQ_DS")
- private DataSource rhqDs;
- private DatabaseType dbType;
-
@EJB
private GroupDefinitionManagerLocal groupDefinitionManager; // self, for xactional purposes
@@ -106,9 +81,6 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
private ResourceGroupManagerLocal resourceGroupManager;
@EJB
- private ResourceTypeManagerLocal resourceTypeManager;
-
- @EJB
private ResourceManagerLocal resourceManager;
@EJB
@@ -117,19 +89,6 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
@EJB
private AuthorizationManagerLocal authorizationManager;
- @PostConstruct
- public void init() {
- Connection conn = null;
- try {
- conn = rhqDs.getConnection();
- dbType = DatabaseTypeFactory.getDatabaseType(conn);
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- JDBCUtil.safeClose(conn);
- }
- }
-
@SuppressWarnings("unchecked")
@RequiredPermission(Permission.MANAGE_INVENTORY)
public void recalculateDynaGroups(Subject subject) {
@@ -370,7 +329,6 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
log.debug("calculateGroupMembership took " + (endTime - startTime) + " millis");
}
- @SuppressWarnings("unchecked")
@RequiredPermission(Permission.MANAGE_INVENTORY)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public Integer calculateGroupMembership_helper(Subject overlord, int groupDefinitionId,
@@ -418,9 +376,6 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
resourceGroupManager.setResourceType(resourceGroupId);
- entityManager.flush();
- entityManager.clear();
-
long endTime = System.currentTimeMillis();
log.debug("calculateGroupMembership_helper took " + (endTime - startTime) + " millis");
@@ -428,122 +383,6 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
return resourceGroupId;
}
- @SuppressWarnings("unchecked")
- private Map<Integer, ResourceGroup> getIdGroupMap(List<Integer> groupIds) {
- if (groupIds == null || groupIds.size() == 0) {
- return new HashMap<Integer, ResourceGroup>();
- }
-
- Query query = entityManager.createNamedQuery(ResourceGroup.QUERY_FIND_BY_IDS_admin);
- query.setParameter("ids", groupIds);
- List<ResourceGroup> groups = query.getResultList();
-
- Map<Integer, ResourceGroup> results = new HashMap<Integer, ResourceGroup>();
- for (ResourceGroup group : groups) {
- results.put(group.getId(), group);
- }
- return results;
- }
-
- @RequiredPermission(Permission.MANAGE_INVENTORY)
- public PageList<ResourceGroupComposite> getManagedResourceGroups(Subject subject, int groupDefinitionId,
- PageControl pc) throws GroupDefinitionException {
-
- pc.initDefaultOrderingField("groupName");
- pc.truncateOrderingFields(1); // remove all but the primary sort
- OrderingField primary = pc.getOrderingFields().get(0);
- String field = primary.getField();
- if (field.endsWith("Avail")) {
- String prefix = field.substring(0, field.length() - 5);
- String secondaryField = prefix + "Count";
- pc.addDefaultOrderingField(secondaryField, primary.getOrdering());
- }
- if (field.equals("groupName") == false) {
- pc.addDefaultOrderingField("groupName");
- }
-
- Connection conn = null;
- PreparedStatement stmt = null;
- ResultSet rs = null;
-
- List<Object[]> rawResults = new ArrayList<Object[]>();
- try {
- conn = rhqDs.getConnection();
-
- String query = GroupDefinition.QUERY_NATIVE_FIND_MEMBERS;
-
- if (this.dbType instanceof PostgresqlDatabaseType) {
- query = PersistenceUtility.addPostgresNativePagingSortingToQuery(query, pc);
- } else if (this.dbType instanceof OracleDatabaseType) {
- query = PersistenceUtility.addOracleNativePagingSortingToQuery(query, pc);
- } else if (this.dbType instanceof H2DatabaseType) {
- query = PersistenceUtility.addH2NativePagingSortingToQuery(query, pc);
- } else if (this.dbType instanceof SQLServerDatabaseType) {
- query = PersistenceUtility.addSQLServerNativePagingSortingToQuery(query, pc);
- } else {
- throw new RuntimeException("Unknown database type: " + this.dbType);
- }
-
- stmt = conn.prepareStatement(query);
- stmt.setInt(1, groupDefinitionId);
-
- rs = stmt.executeQuery();
- while (rs.next()) {
- long explicitCount = rs.getLong(1);
- double explicitAvail = rs.getDouble(2);
- long implicitCount = rs.getLong(3);
- double implicitAvail = rs.getDouble(4);
- int groupId = rs.getInt(5);
- Object[] next = new Object[] { explicitCount, explicitAvail, implicitCount, implicitAvail, groupId };
- rawResults.add(next);
- }
- } catch (Throwable t) {
- throw new GroupDefinitionException(t);
- } finally {
- JDBCUtil.safeClose(conn, stmt, rs);
- }
-
- //Query query = PersistenceUtility.createQueryWithOrderBy(entityManager, GroupDefinition.QUERY_FIND_MEMBERS, pc);
- Query queryCount = entityManager.createNamedQuery(GroupDefinition.QUERY_FIND_MEMBERS_count);
-
- //query.setParameter("groupDefinitionId", groupDefinitionId);
- queryCount.setParameter("groupDefinitionId", groupDefinitionId);
-
- //List<Object[]> rawResults = (List<Object[]>) query.getResultList();
- long count = (Long) queryCount.getSingleResult();
-
- List<Integer> groupIds = new ArrayList<Integer>();
- for (Object[] row : rawResults) {
- groupIds.add(((Number) row[4]).intValue());
- }
- Map<Integer, ResourceGroup> groupMap = getIdGroupMap(groupIds);
-
- List<ResourceGroupComposite> results = new ArrayList<ResourceGroupComposite>(rawResults.size());
- int i = 0;
- for (Object[] row : rawResults) {
- long explicitCount = (Long) row[0];
- double explicitAvail = (Double) row[1];
- long implicitCount = (Long) row[2];
- double implicitAvail = (Double) row[3];
-
- ResourceGroup group = groupMap.get(groupIds.get(i++));
- ResourceType type = group.getResourceType();
- ResourceFacets facets;
- if (type == null) {
- // mixed group
- facets = ResourceFacets.NONE;
- } else {
- // compatible group
- facets = resourceTypeManager.getResourceFacets(group.getResourceType().getId());
- }
- ResourceGroupComposite composite = new ResourceGroupComposite(explicitCount, explicitAvail, implicitCount,
- implicitAvail, group, facets);
- results.add(composite);
- }
-
- return new PageList<ResourceGroupComposite>(results, (int) count, pc);
- }
-
@SuppressWarnings( { "unchecked" })
public PageList<GroupDefinition> getGroupDefinitions(Subject subject, PageControl pc) {
pc.initDefaultOrderingField("gd.name");
@@ -560,7 +399,8 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
}
}
- public PageList<GroupDefinition> findGroupDefinitionsByCriteria(Subject subject, ResourceGroupDefinitionCriteria criteria) {
+ public PageList<GroupDefinition> findGroupDefinitionsByCriteria(Subject subject,
+ ResourceGroupDefinitionCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
if (authorizationManager.isInventoryManager(subject) == false) {
if (criteria.isInventoryManagerRequired()) {
@@ -569,7 +409,8 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
}
}
- CriteriaQueryRunner<GroupDefinition> queryRunner = new CriteriaQueryRunner(criteria, generator, entityManager);
+ CriteriaQueryRunner<GroupDefinition> queryRunner = new CriteriaQueryRunner<GroupDefinition>(criteria,
+ generator, entityManager);
return queryRunner.execute();
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
index 4738625..b57a35e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
@@ -23,14 +23,12 @@ import javax.ejb.Local;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
import org.rhq.core.domain.resource.group.GroupDefinition;
-import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionAlreadyExistsException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionCreateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionDeleteException;
-import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionNotFoundException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionUpdateException;
import org.rhq.enterprise.server.resource.group.definition.framework.ExpressionEvaluator;
@@ -56,9 +54,6 @@ public interface GroupDefinitionManagerLocal {
Integer calculateGroupMembership_helper(Subject subject, int groupDefinitionId, ExpressionEvaluator.Result result)
throws GroupDefinitionNotFoundException, GroupDefinitionNotFoundException;
- PageList<ResourceGroupComposite> getManagedResourceGroups(Subject subject, int groupDefinitionId, PageControl pc)
- throws GroupDefinitionException;
-
PageList<GroupDefinition> getGroupDefinitions(Subject subject, PageControl pc);
PageList<GroupDefinition> findGroupDefinitionsByCriteria(Subject subject, ResourceGroupDefinitionCriteria criteria);
commit 47ea32f7c32a1c7d0fd89b04862e49ef9a69fb69
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 24 17:20:35 2010 -0400
re-implement group definition detailed view using ResourceGroupCriteria with groupDef filter
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/GroupDefinitionUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/GroupDefinitionUIBean.java
index add5a08..2a2aa52 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/GroupDefinitionUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/GroupDefinitionUIBean.java
@@ -18,14 +18,14 @@
*/
package org.rhq.enterprise.gui.definition.group;
-import javax.faces.model.DataModel;
import javax.faces.application.FacesMessage;
+import javax.faces.model.DataModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jetbrains.annotations.NotNull;
-import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.criteria.ResourceGroupCriteria;
import org.rhq.core.domain.resource.group.GroupDefinition;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.core.domain.util.PageControl;
@@ -35,7 +35,7 @@ import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
import org.rhq.enterprise.gui.common.paging.PagedListDataModel;
import org.rhq.enterprise.gui.legacy.ParamConstants;
-import org.rhq.enterprise.server.resource.group.definition.GroupDefinitionManagerLocal;
+import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionException;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -46,8 +46,7 @@ public class GroupDefinitionUIBean extends PagedDataTableUIBean {
private GroupDefinition groupDefinition;
- public GroupDefinitionUIBean() throws GroupDefinitionException
- {
+ public GroupDefinitionUIBean() throws GroupDefinitionException {
this.groupDefinition = lookupGroupDefinition();
}
@@ -110,6 +109,8 @@ public class GroupDefinitionUIBean extends PagedDataTableUIBean {
return dataModel;
}
+ private ResourceGroupManagerLocal resourceGroupManager = LookupUtil.getResourceGroupManager();
+
private class ListGroupDefinitionMembersDataModel extends PagedListDataModel<ResourceGroupComposite> {
public ListGroupDefinitionMembersDataModel(PageControlView view, String beanName) {
super(view, beanName);
@@ -117,17 +118,16 @@ public class GroupDefinitionUIBean extends PagedDataTableUIBean {
@Override
public PageList<ResourceGroupComposite> fetchPage(PageControl pc) {
- Subject user = getSubject();
- int groupDefinitionId = groupDefinition.getId();
-
- GroupDefinitionManagerLocal groupDefinitionManager = LookupUtil.getGroupDefinitionManager();
+ ResourceGroupCriteria criteria = new ResourceGroupCriteria();
+ criteria.addFilterGroupDefinitionId(groupDefinition.getId());
+ criteria.setPageControl(pc);
try {
- return groupDefinitionManager.getManagedResourceGroups(user, groupDefinitionId, pc);
- } catch (GroupDefinitionException gde) {
+ return resourceGroupManager.findResourceGroupCompositesByCriteria(getSubject(), criteria);
+ } catch (Throwable t) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to retrieve managed groups: "
- + gde.getMessage());
- log.error("Failed to retrieve managed groups", gde);
+ + t.getMessage());
+ log.error("Failed to retrieve managed groups", t);
return new PageList<ResourceGroupComposite>();
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/view.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/view.xhtml
index 512dc82..4ecffef 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/view.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/view.xhtml
@@ -151,7 +151,7 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="groupName">
+ <onc:sortableColumnHeader sort="name">
<h:outputText styleClass="headerText" value="Name" />
</onc:sortableColumnHeader>
</f:facet>
@@ -175,7 +175,7 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="groupedBy">
+ <onc:sortableColumnHeader sort="groupByClause">
<h:outputText styleClass="headerText" value="Grouped By" />
</onc:sortableColumnHeader>
</f:facet>
@@ -186,7 +186,7 @@
<rich:column styleClass="resource-availability-cell">
<f:facet name="header">
<h:panelGroup>
- <onc:sortableColumnHeader sort="explicitAvail">
+ <onc:sortableColumnHeader sort="1"><ui:remove>Use zero-based positional ordinal</ui:remove>
<h:outputText value="Children" />
</onc:sortableColumnHeader>
</h:panelGroup>
@@ -199,7 +199,7 @@
<rich:column styleClass="resource-availability-cell">
<f:facet name="header">
<h:panelGroup>
- <onc:sortableColumnHeader sort="implicitAvail">
+ <onc:sortableColumnHeader sort="3"><ui:remove>Use zero-based positional ordinal</ui:remove>
<h:outputText value="Descendents" />
</onc:sortableColumnHeader>
</h:panelGroup>
commit 50e8098383a1d0fe5f25e503584e20e3457e2dc7
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 24 17:19:41 2010 -0400
add the ability to filter ResourceGroupCriteria by its parent group definition
add additional authorization check in ResourceGroupManager.find...ByCriteria method
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
index bbefbb3..eee833e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceGroupCriteria.java
@@ -54,6 +54,7 @@ public class ResourceGroupCriteria extends TaggedCriteria {
private ResourceCategory filterExplicitResourceCategory; // requires overrides
private Integer filterExplicitResourceTypeId; // requires overrides
private String filterExplicitResourceTypeName; // requires overrides
+ private Integer filterGroupDefinitionId; // requires overrides
private boolean fetchExplicitResources;
private boolean fetchImplicitResources;
@@ -105,6 +106,7 @@ public class ResourceGroupCriteria extends TaggedCriteria {
+ " FROM Resource res " //
+ " JOIN res.explicitGroups explicitGroup " //
+ " WHERE resourcegroup.id = explicitGroup.id AND NOT res.resourceType.name = ? )");
+ filterOverrides.put("groupDefinitionId", "groupDefinition.id = ?");
sortOverrides.put("resourceTypeName", "resourceType.name");
}
@@ -184,6 +186,10 @@ public class ResourceGroupCriteria extends TaggedCriteria {
this.filterExplicitResourceTypeName = filterExplicitResourceTypeName;
}
+ public void addFilterGroupDefinitionId(Integer filterGroupDefinitionId) {
+ this.filterGroupDefinitionId = filterGroupDefinitionId;
+ }
+
public void fetchExplicitResources(boolean fetchExplicitResources) {
this.fetchExplicitResources = fetchExplicitResources;
}
@@ -227,8 +233,15 @@ public class ResourceGroupCriteria extends TaggedCriteria {
}
/** subclasses should override as necessary */
+ @Override
public boolean isSecurityManagerRequired() {
return this.fetchRoles;
}
+ @Override
+ public boolean isInventoryManagerRequired() {
+ // presently only inventory managers can view/manage group definitions
+ return this.filterGroupDefinitionId != null;
+ }
+
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index 16bfb39..b944b6e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -1388,6 +1388,12 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
+ "] requires SecurityManager permission for requested query criteria.");
}
+ if (criteria.isInventoryManagerRequired()
+ && !authorizationManager.hasGlobalPermission(subject, Permission.MANAGE_INVENTORY)) {
+ throw new PermissionException("Subject [" + subject.getName()
+ + "] requires InventoryManager permission for requested query criteria.");
+ }
+
if (authorizationManager.isInventoryManager(subject) == false) {
generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.GROUP, null,
subject.getId());
commit 50294ebe870e04f3673cf075dbf0420dcd083d62
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 24 16:16:49 2010 -0400
BZ-607548: prevent NPE when use operation-based alert notifications
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
index 4d5c1f0..27da614 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
@@ -225,6 +225,9 @@ public class AlertNotification implements Serializable {
}
public boolean equalsData(AlertNotification other) {
+ if (other == null) {
+ return false;
+ }
boolean results = compare(configuration, other.configuration);
if (results) {
results = compare(extraConfiguration, other.extraConfiguration);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java
index 82a1e50..dc65e73 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java
@@ -216,7 +216,7 @@ public class AlertNotificationsUIBean extends EnterpriseFacesContextUIBean {
*/
reloadAlertNotifications();
for (AlertNotification nextNotification : this.alertNotifications) {
- if (notificationWithLatestData.equalsData(nextNotification)) {
+ if (nextNotification.equalsData(notificationWithLatestData)) {
this.activeNotification = nextNotification;
this.selectedNotifications.clear();
this.selectedNotifications.add(this.activeNotification);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
index 324a3de..1d9da88 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
@@ -108,6 +108,8 @@ public class CustomContentUIBean extends EnterpriseFacesContextUIBean {
if (customBackingBean.getExtraParameters() != null) {
notification.setExtraConfiguration(customBackingBean.getExtraParameters());
+ } else {
+ notification.setExtraConfiguration(null);
}
int alertDefinitionId = Integer.parseInt(customBackingBean.getContextId());
alertNotificationManager.updateAlertNotification(getSubject(), alertDefinitionId, notification);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
index 612a5fa..0e4f47d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
@@ -18,9 +18,6 @@
*/
package org.rhq.enterprise.server.plugin.pc.alert;
-import java.util.Arrays;
-
-import org.rhq.core.domain.alert.notification.AlertNotification;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
@@ -164,15 +161,4 @@ public class CustomAlertSenderBackingBean {
return ret;
}
- final protected void deleteExtraParameters() {
- Subject overlord = LookupUtil.getSubjectManager().getOverlord();
- AlertNotification notification = LookupUtil.getAlertNotificationManager().getAlertNotification(overlord,
- alertNotificationId);
- Configuration extraParameters = notification.getExtraConfiguration();
- notification.setExtraConfiguration(null);
- LookupUtil.getAlertNotificationManager().updateAlertNotification(overlord,
- notification.getAlertDefinition().getId(), notification);
- LookupUtil.getConfigurationManager().deleteConfigurations(Arrays.asList(extraParameters.getId()));
- }
-
}
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
index 0241db5..5d81bd0 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
@@ -55,7 +55,9 @@ public class OperationInfo {
String descendantName, String operationId, Configuration arguments) {
ResourceSelectionMode selectionMode = null;
try {
- selectionMode = ResourceSelectionMode.valueOf(mode);
+ if (mode != null) {
+ selectionMode = ResourceSelectionMode.valueOf(mode);
+ }
} catch (Throwable t) {
}
this.mode = selectionMode;
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
index 0bf47fa..1552256 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
@@ -230,7 +230,8 @@ public class OperationsBackingBean extends CustomAlertSenderBackingBean {
if (operationDefinitionId != null && !operationDefinitionId.equals("none") && argumentsConfiguration != null) {
extraParameters = persistConfiguration(argumentsConfiguration);
} else {
- deleteExtraParameters();
+ extraParameters = null;
+ //deleteExtraParameters();
}
alertParameters = persistConfiguration(alertParameters);
commit e8e51188a5f48d8e722700a89e6335654d869c22
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 24 16:06:24 2010 -0400
provide a new "gc" agent prompt command that lets you examine the heap/non-heap stats and lets you free up some memory/invoke the garbage collector
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
index ce49fc4..b5d1223 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java
@@ -107,6 +107,7 @@ import org.rhq.enterprise.agent.promptcmd.DownloadPromptCommand;
import org.rhq.enterprise.agent.promptcmd.DumpSpoolPromptCommand;
import org.rhq.enterprise.agent.promptcmd.ExitPromptCommand;
import org.rhq.enterprise.agent.promptcmd.FailoverPromptCommand;
+import org.rhq.enterprise.agent.promptcmd.GCPromptCommand;
import org.rhq.enterprise.agent.promptcmd.GetConfigPromptCommand;
import org.rhq.enterprise.agent.promptcmd.HelpPromptCommand;
import org.rhq.enterprise.agent.promptcmd.IdentifyPromptCommand;
@@ -2958,7 +2959,7 @@ public class AgentMain {
new AvailabilityPromptCommand(), new PiqlPromptCommand(), new IdentifyPromptCommand(),
new LogPromptCommand(), new TimerPromptCommand(), new PingPromptCommand(), new DownloadPromptCommand(),
new DumpSpoolPromptCommand(), new SenderPromptCommand(), new FailoverPromptCommand(),
- new UpdatePromptCommand(), new DebugPromptCommand(), new SleepPromptCommand() };
+ new UpdatePromptCommand(), new DebugPromptCommand(), new SleepPromptCommand(), new GCPromptCommand() };
// hold the conflicts
StringBuilder conflicts = new StringBuilder();
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
index d520904..7967b47 100644
--- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/i18n/AgentI18NResourceKeys.java
@@ -1619,6 +1619,31 @@ public interface AgentI18NResourceKeys {
@I18NMessage("days")
String UNITS_DAYS = "units.days";
+ @I18NMessage("gc")
+ String GC = "PromptCommand.gc";
+
+ @I18NMessage("gc [--dump] [--free] [--verbose={true|false}]")
+ String GC_SYNTAX = "PromptCommand.gc.syntax";
+
+ @I18NMessage("Helps free up memory by invoking the garbage collector")
+ String GC_HELP = "PromptCommand.gc.help";
+
+ @I18NMessage("Provides an interface to the garbage collector and memory subsystem.\\n\\\n"
+ + "\\ -d, --dump : prints out information on current memory usage\\n\\\n"
+ + "\\ -f, --free : attempts to free up memory and invokes the garbage collector\\n\\\n"
+ + "\\ -v, --verbose={true|false} : enables/disables verbose gc messages")
+ String GC_DETAILED_HELP = "PromptCommand.gc.detailed-help";
+
+ @I18NMessage("Invoking the garbage collector")
+ String GC_INVOKE = "PromptCommand.gc.invoke";
+
+ @I18NMessage("{0} ({1}):\\n\\\n" //
+ + "\\ init={2}\\n\\\n" //
+ + "\\ max={3}\\n\\\n" //
+ + "\\ used={4} ({5,number,##}% of committed)\\n\\\n" //
+ + "\\ commit={6} ({7,number,##}% of max)")
+ String GC_MEM_USAGE = "PromptCommand.gc.mem-usage";
+
@I18NMessage("native")
String NATIVE = "PromptCommand.native";
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/promptcmd/GCPromptCommand.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/promptcmd/GCPromptCommand.java
new file mode 100644
index 0000000..1f2de30
--- /dev/null
+++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/promptcmd/GCPromptCommand.java
@@ -0,0 +1,213 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.agent.promptcmd;
+
+import gnu.getopt.Getopt;
+import gnu.getopt.LongOpt;
+
+import java.beans.Introspector;
+import java.io.PrintWriter;
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.MemoryPoolMXBean;
+import java.lang.management.MemoryType;
+import java.lang.management.MemoryUsage;
+import java.util.List;
+
+import mazz.i18n.Msg;
+
+import org.apache.commons.logging.LogFactory;
+
+import org.rhq.enterprise.agent.AgentMain;
+import org.rhq.enterprise.agent.i18n.AgentI18NFactory;
+import org.rhq.enterprise.agent.i18n.AgentI18NResourceKeys;
+
+/**
+ * Provides a way to help the agent clean up memory.
+ *
+ * @author John Mazzitelli
+ */
+public class GCPromptCommand implements AgentPromptCommand {
+ private static final Msg MSG = AgentI18NFactory.getMsg();
+
+ /**
+ * @see AgentPromptCommand#getPromptCommandString()
+ */
+ public String getPromptCommandString() {
+ return MSG.getMsg(AgentI18NResourceKeys.GC);
+ }
+
+ /**
+ * @see AgentPromptCommand#execute(AgentMain, String[])
+ */
+ public boolean execute(AgentMain agent, String[] args) {
+ processArguments(agent, args);
+ return true;
+ }
+
+ /**
+ * @see AgentPromptCommand#getSyntax()
+ */
+ public String getSyntax() {
+ return MSG.getMsg(AgentI18NResourceKeys.GC_SYNTAX);
+ }
+
+ /**
+ * @see AgentPromptCommand#getHelp()
+ */
+ public String getHelp() {
+ return MSG.getMsg(AgentI18NResourceKeys.GC_HELP);
+ }
+
+ /**
+ * @see AgentPromptCommand#getDetailedHelp()
+ */
+ public String getDetailedHelp() {
+ return MSG.getMsg(AgentI18NResourceKeys.GC_DETAILED_HELP);
+ }
+
+ private void processArguments(AgentMain agent, String[] args) {
+ PrintWriter out = agent.getOut();
+
+ String sopts = "dfv:";
+ LongOpt[] lopts = { new LongOpt("verbose", LongOpt.REQUIRED_ARGUMENT, null, 'v'),
+ new LongOpt("dump", LongOpt.NO_ARGUMENT, null, 'd'), new LongOpt("free", LongOpt.NO_ARGUMENT, null, 'f') };
+
+ Getopt getopt = new Getopt(getPromptCommandString(), args, sopts, lopts);
+ int code;
+ Boolean verbose = null;
+ Boolean free = null;
+ Boolean dump = null;
+
+ while ((code = getopt.getopt()) != -1) {
+ switch (code) {
+ case ':':
+ case '?':
+ case 1: {
+ out.println(MSG.getMsg(AgentI18NResourceKeys.HELP_SYNTAX_LABEL, getSyntax()));
+ break;
+ }
+
+ case 'v': {
+ String verboseOpt = getopt.getOptarg();
+ verbose = Boolean.valueOf(Boolean.parseBoolean(verboseOpt));
+ break;
+ }
+
+ case 'd': {
+ dump = Boolean.TRUE;
+ break;
+ }
+
+ case 'f': {
+ free = Boolean.TRUE;
+ break;
+ }
+ }
+ }
+
+ if ((getopt.getOptind() + 1) < args.length) {
+ out.println(MSG.getMsg(AgentI18NResourceKeys.HELP_SYNTAX_LABEL, getSyntax()));
+ }
+
+ if (Boolean.TRUE.equals(dump)) {
+ printCurrentMemoryUsage(out);
+ }
+
+ if (verbose != null) {
+ setVerbosity(verbose.booleanValue());
+ }
+
+ if (Boolean.TRUE.equals(free)) {
+ freeMemory(out);
+ }
+
+ return;
+ }
+
+ private void setVerbosity(boolean verbose) {
+ final MemoryMXBean memoryMxBean = ManagementFactory.getMemoryMXBean();
+ memoryMxBean.setVerbose(verbose);
+ }
+
+ private void freeMemory(PrintWriter out) {
+ final MemoryMXBean memoryMxBean = ManagementFactory.getMemoryMXBean();
+
+ printGlobalMemoryUsage(out, memoryMxBean);
+
+ // free up some global static caches
+ Introspector.flushCaches();
+ LogFactory.releaseAll();
+
+ // invoke the garbage collector
+ out.println(MSG.getMsg(AgentI18NResourceKeys.GC_INVOKE));
+ memoryMxBean.gc();
+
+ printGlobalMemoryUsage(out, memoryMxBean);
+ return;
+ }
+
+ private void printCurrentMemoryUsage(PrintWriter out) {
+ final MemoryMXBean memoryMxBean = ManagementFactory.getMemoryMXBean();
+ printGlobalMemoryUsage(out, memoryMxBean);
+
+ List<MemoryPoolMXBean> poolMxBeans = ManagementFactory.getMemoryPoolMXBeans();
+ if (poolMxBeans != null) {
+ for (MemoryPoolMXBean bean : poolMxBeans) {
+ if (bean.isValid()) {
+ String name = bean.getName();
+ MemoryType type = bean.getType();
+ MemoryUsage usage = bean.getUsage();
+ printMemoryUsage(out, name, type, usage);
+ }
+ }
+ }
+
+ return;
+ }
+
+ private void printGlobalMemoryUsage(PrintWriter out, final MemoryMXBean memoryMxBean) {
+ printMemoryUsage(out, "GLOBAL", MemoryType.HEAP, memoryMxBean.getHeapMemoryUsage());
+ printMemoryUsage(out, "GLOBAL", MemoryType.NON_HEAP, memoryMxBean.getNonHeapMemoryUsage());
+ }
+
+ private void printMemoryUsage(PrintWriter out, String name, MemoryType type, MemoryUsage memUsage) {
+ long init = memUsage.getInit();
+ long max = memUsage.getMax();
+ long used = memUsage.getUsed();
+ long committed = memUsage.getCommitted();
+
+ String typeStr;
+ switch (type) {
+ case HEAP:
+ typeStr = "Heap";
+ break;
+ case NON_HEAP:
+ typeStr = "Non-heap";
+ break;
+ default:
+ typeStr = "?";
+ }
+
+ double usedPercentage = (used * 100.0) / committed;
+ double committedPercentage = (committed * 100.0) / max;
+ out.println(MSG.getMsg(AgentI18NResourceKeys.GC_MEM_USAGE, name, typeStr, init, max, used, usedPercentage,
+ committed, committedPercentage));
+ }
+}
\ No newline at end of file
commit 8bbfe126b897a21135b21987aefcce1b45e76cb3
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Thu Jun 24 14:33:18 2010 -0400
refactoring BZ-597246 a little.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
index 634ebeb..17ad568 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
@@ -95,14 +95,20 @@ public class PackageBits implements Serializable {
* return <code>null</code>. In this case, the content is probably stored somewhere else on a local file system.
* When <code>null</code> is returned, it is assumed that who ever needs the content can know where to find it based
* on the {@link PackageVersion} details.
+ *
+ * For large file contents, you should use ContentManager.updateBlobStream() to write and
+ * ContentManager.writeBlobOutToStream() to read/direct file contents into as no byte[] is used.
*/
@XmlTransient
public byte[] getBits() {
return bits;
}
+ /** For large file contents, you should use ContentManager.updateBlobStream() to write and
+ * ContentManager.writeBlobOutToStream() to read/direct file contents into as no byte[] is used.
+ *
+ */
public void setBits(byte[] bits) {
this.bits = bits;
}
-
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 5bae392..b2cac05 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -939,7 +939,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
try {
PackageBits bits = entityManager.find(PackageBits.class, packageBits.getId());
- // bits.setBits(StreamUtil.slurp(bitStream));
String pkgName = "(set packageName)";
if ((packageVersion != null) && (packageVersion.getGeneralPackage() != null)) {
//update it to whatever package name is if we can get to it.
@@ -947,7 +946,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
bits = loadPackageBits(bitStream, packageVersion.getId(), pkgName, packageVersion.getVersion(),
bits);
- // bits.setBits(StreamUtil.slurp(bitStream));
entityManager.merge(bits);
} finally {
@@ -1237,31 +1235,14 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
PackageVersion newPackageVersion = new PackageVersion(existingPackage, version, architecture);
newPackageVersion.setDisplayName(existingPackage.getName());
- // PackageBits bits = loadPackageBits(packageBitStream);
PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null);
- // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // // use the byte array in the package version to store the bits.
- // byte[] packageBits;
- // try {
- // packageBits = StreamUtil.slurp(packageBitStream);
- // } catch (RuntimeException re) {
- // throw new RuntimeException("Error reading in the package file", re);
- // }
- //
- // PackageBits bits = new PackageBits();
- // try {
- // bits.setBits(packageBits);
- // } catch (Exception e) {
- // log.error("Error saving the package.", e);
- // }
newPackageVersion.setPackageBits(bits);
+ //TODO: write down to file system to calculate length and calculate hash.
newPackageVersion.setFileSize((long) bits.getBits().length);
try {
newPackageVersion.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
.calcDigestString(bits.getBits()));
- // .calcDigestString(packageBits));
} catch (IOException e) {
newPackageVersion.setSHA256(null);
}
@@ -1579,23 +1560,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
//get the data
PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null);
- // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // // use the byte array in the package version to store the bits.
- // byte[] packageBits;
- // try {
- // packageBits = StreamUtil.slurp(packageBitStream);
- // } catch (RuntimeException re) {
- // throw new RuntimeException("Error reading in the package file", re);
- // }
- //
- // PackageBits bits = new PackageBits();
- // // bits = new PackageBits();
- // try {
- // bits.setBits(packageBits);
- // } catch (Exception e) {
- // log.error("Error savinf the package.", e);
- // }
packageVersion.setPackageBits(bits);
@@ -1643,10 +1607,8 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
bits = entityManager.find(PackageBits.class, bits.getId());
- Subject user = null;
-
//write data from stream into db using Hibernate Blob mechanism
- updateBlobStream(user, packageBitStream, bits);
+ updateBlobStream(packageBitStream, bits);
return bits;
}
@@ -1656,19 +1618,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
*
* @param stream
*/
- public void updateBlobStream(Subject user, InputStream stream, PackageBits bits) {
-
- // int resourceId = -1;
- // if (bits != null) {
- // resourceId = bits.getId();
- // }
- // log.info("Updating data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
- //
- // // Check permissions first
- // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
- // throw new PermissionException("User [" + user.getName()
- // + "] does not have permission to update packageBits " + bits + " with resource ID [" + resourceId + "]");
- // }
+ public void updateBlobStream(InputStream stream, PackageBits bits) {
//TODO: are there any db specific limits that we should check/verify here before stuffing
// the contents of a stream into the db? Should we just let the db complain and take care of
@@ -1747,24 +1697,11 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
*
* @param stream non null stream where contents to be written to.
*/
- public void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams) {
-
- // int resourceId = -1;
- // if (bits != null) {
- // resourceId = bits.getId();
- // }
- // log.info("Reading data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
- //
- // // Check permissions first
- // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
- // throw new PermissionException("User [" + user.getName() + "] does not have permission to read packageBits "
- // + bits + " with resource ID [" + resourceId + "]");
- // }
+ public void writeBlobOutToStream(OutputStream stream, PackageBits bits, boolean closeStreams) {
if (stream == null) {
return; // no locate to write to
}
- // if ((bits == null) || (bits.getId() <= 0) || bits.getBits() == null) {
if ((bits == null) || (bits.getId() <= 0)) {
//then PackageBits instance passed in is insufficiently initialized.
log.warn("PackageBits insufficiently initialized. No data to write out.");
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 83c0037..65b0365 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -347,8 +347,8 @@ public interface ContentManagerLocal {
byte[] getPackageBytes(Subject user, int resourceId, int installedPackageId);
- void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams);
+ void writeBlobOutToStream(OutputStream stream, PackageBits bits, boolean closeStreams);
- void updateBlobStream(Subject user, InputStream stream, PackageBits bits);
+ void updateBlobStream(InputStream stream, PackageBits bits);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
index c8ac4e3..7fae6e0 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
@@ -29,7 +29,6 @@ import org.apache.commons.logging.LogFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.content.Architecture;
import org.rhq.core.domain.content.Package;
import org.rhq.core.domain.content.PackageBits;
@@ -285,8 +284,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
}
FileInputStream fos = new FileInputStream(originalBinary);
- Subject empty = null;
- contentManager.updateBlobStream(empty, fos, packageBits);
+ contentManager.updateBlobStream(fos, packageBits);
packageBits = em.find(PackageBits.class, packageBits.getId());
// test that the bits are available and stored in the DB: Reading the Blob
@@ -298,7 +296,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
assert composite.isPackageBitsInDatabase();
FileOutputStream outputStream = new FileOutputStream(retrieved);
- contentManager.writeBlobOutToStream(empty, outputStream, packageBits, false);
+ contentManager.writeBlobOutToStream(outputStream, packageBits, false);
//Check that db content equal to file system content
String originalDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
commit 408bc20049ff0f06738e70b2dbafdbbd83366fdb
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Thu Jun 24 11:03:02 2010 -0400
BZ-597246: changed StreamUtil.slurp to use Hibernate Blob mechanism, and added unit test for read/write Blob data.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
index 2bf059c..634ebeb 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
@@ -104,4 +104,5 @@ public class PackageBits implements Serializable {
public void setBits(byte[] bits) {
this.bits = bits;
}
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 244478e..5bae392 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -24,8 +24,11 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -936,7 +939,15 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
try {
PackageBits bits = entityManager.find(PackageBits.class, packageBits.getId());
- bits.setBits(StreamUtil.slurp(bitStream));
+ // bits.setBits(StreamUtil.slurp(bitStream));
+ String pkgName = "(set packageName)";
+ if ((packageVersion != null) && (packageVersion.getGeneralPackage() != null)) {
+ //update it to whatever package name is if we can get to it.
+ pkgName = packageVersion.getGeneralPackage().getName();
+ }
+ bits = loadPackageBits(bitStream, packageVersion.getId(), pkgName, packageVersion.getVersion(),
+ bits);
+ // bits.setBits(StreamUtil.slurp(bitStream));
entityManager.merge(bits);
} finally {
@@ -1227,28 +1238,30 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
newPackageVersion.setDisplayName(existingPackage.getName());
// PackageBits bits = loadPackageBits(packageBitStream);
- // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // use the byte array in the package version to store the bits.
- byte[] packageBits;
- try {
- packageBits = StreamUtil.slurp(packageBitStream);
- } catch (RuntimeException re) {
- throw new RuntimeException("Error reading in the package file", re);
- }
-
- PackageBits bits = new PackageBits();
- try {
- bits.setBits(packageBits);
- } catch (Exception e) {
- log.error("Error saving the package.", e);
- }
+ PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null);
+ // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
+ // // Write the content into the newly created package version. This may eventually move, but for now we'll just
+ // // use the byte array in the package version to store the bits.
+ // byte[] packageBits;
+ // try {
+ // packageBits = StreamUtil.slurp(packageBitStream);
+ // } catch (RuntimeException re) {
+ // throw new RuntimeException("Error reading in the package file", re);
+ // }
+ //
+ // PackageBits bits = new PackageBits();
+ // try {
+ // bits.setBits(packageBits);
+ // } catch (Exception e) {
+ // log.error("Error saving the package.", e);
+ // }
newPackageVersion.setPackageBits(bits);
newPackageVersion.setFileSize((long) bits.getBits().length);
try {
newPackageVersion.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
- .calcDigestString(packageBits));
+ .calcDigestString(bits.getBits()));
+ // .calcDigestString(packageBits));
} catch (IOException e) {
newPackageVersion.setSHA256(null);
}
@@ -1564,24 +1577,25 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
entityManager.persist(packageVersion);
}
- //get the data and persist/merge packageVersion
- // PackageBits bits = loadPackageBits(packageBitStream);
- // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // use the byte array in the package version to store the bits.
- byte[] packageBits;
- try {
- packageBits = StreamUtil.slurp(packageBitStream);
- } catch (RuntimeException re) {
- throw new RuntimeException("Error reading in the package file", re);
- }
-
- PackageBits bits = new PackageBits();
- try {
- bits.setBits(packageBits);
- } catch (Exception e) {
- log.error("Error savinf the package.", e);
- }
+ //get the data
+ PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null);
+ // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
+ // // Write the content into the newly created package version. This may eventually move, but for now we'll just
+ // // use the byte array in the package version to store the bits.
+ // byte[] packageBits;
+ // try {
+ // packageBits = StreamUtil.slurp(packageBitStream);
+ // } catch (RuntimeException re) {
+ // throw new RuntimeException("Error reading in the package file", re);
+ // }
+ //
+ // PackageBits bits = new PackageBits();
+ // // bits = new PackageBits();
+ // try {
+ // bits.setBits(packageBits);
+ // } catch (Exception e) {
+ // log.error("Error savinf the package.", e);
+ // }
packageVersion.setPackageBits(bits);
@@ -1604,26 +1618,177 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
/** Pulls in package bits from the stream. Currently inefficient.
*
* @param packageBitStream
+ * @param packageVersionId
* @return PackageBits ref populated.
*/
- private PackageBits loadPackageBits(InputStream packageBitStream) {
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
+ private PackageBits loadPackageBits(InputStream packageBitStream, int packageVersionId, String packageName,
+ String packageVersion, PackageBits existingPkgBits) {
PackageBits bits = null;
- // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // use the byte array in the package version to store the bits.
- byte[] packageBits;
- try {
- packageBits = StreamUtil.slurp(packageBitStream);
- } catch (RuntimeException re) {
- throw new RuntimeException("Error reading in the package file", re);
+
+ //use or instantiate PackageBits instance.
+ if (existingPkgBits == null) {
+ bits = new PackageBits();
+ entityManager.persist(bits);
+ } else {
+ bits = existingPkgBits;
}
- bits = new PackageBits();
+ //locate related packageVersion
+ PackageVersion pv = entityManager.find(PackageVersion.class, packageVersionId);
+
+ //associate the two
+ pv.setPackageBits(bits);
+ entityManager.flush(); // push the new package bits row to the DB
+
+ bits = entityManager.find(PackageBits.class, bits.getId());
+
+ Subject user = null;
+
+ //write data from stream into db using Hibernate Blob mechanism
+ updateBlobStream(user, packageBitStream, bits);
+
+ return bits;
+ }
+
+ /** Takes an input stream and copies it into the PackageBits table using Hibernate
+ * Blob mechanism with PreparedStatements. As all content into Bits are not stored as type OID, t
+ *
+ * @param stream
+ */
+ public void updateBlobStream(Subject user, InputStream stream, PackageBits bits) {
+
+ // int resourceId = -1;
+ // if (bits != null) {
+ // resourceId = bits.getId();
+ // }
+ // log.info("Updating data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
+ //
+ // // Check permissions first
+ // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
+ // throw new PermissionException("User [" + user.getName()
+ // + "] does not have permission to update packageBits " + bits + " with resource ID [" + resourceId + "]");
+ // }
+
+ //TODO: are there any db specific limits that we should check/verify here before stuffing
+ // the contents of a stream into the db? Should we just let the db complain and take care of
+ // input validation?
+ if (stream == null) {
+ return; // no stream content to update.
+ }
+ if (bits == null) {
+ bits = new PackageBits();
+ }
+
+ //persist to db if not already
+ if (bits.getId() <= 0) {
+ entityManager.persist(this);
+ }
+
+ //locate the existing PackageBits instance
+ bits = entityManager.find(PackageBits.class, bits.getId());
+
+ ///initialize Bits field so non-empty.
+ bits.setBits(new String("a").getBytes());
+ entityManager.merge(bits);
+ entityManager.flush();
+
+ //Create prepared statements to work with Blobs and hibernate.
+ Connection conn = null;
+ PreparedStatement ps = null;
+ PreparedStatement ps2 = null;
+ DataSource ds = null;
try {
- bits.setBits(packageBits);
+
+ conn = dataSource.getConnection();
+
+ //we are loading the PackageBits saved in the previous step
+ //we need to lock the row which will be updated so we are using FOR UPDATE
+ ps = conn.prepareStatement("SELECT BITS FROM " + PackageBits.TABLE_NAME + " WHERE ID = ? FOR UPDATE");
+ ps.setInt(1, bits.getId());
+ ResultSet rs = ps.executeQuery();
+ if (rs != null) {
+ while (rs.next()) {
+
+ //We can not create a blob directly because BlobImpl from Hibernate is not acceptable
+ //for oracle and Connection.createBlob is not working on postgres.
+ //This blob will be not empty because we saved there a bytes from String("a").
+ Blob blb = rs.getBlob(1);
+
+ //copy the stream to the Blob
+ long transferred = StreamUtil.copy(stream, blb.setBinaryStream(1), false);
+ stream.close();
+
+ //populate the prepared statement for update
+ ps2 = conn.prepareStatement("UPDATE " + PackageBits.TABLE_NAME + " SET bits = ? where id = ?");
+ ps2.setBlob(1, blb);
+ ps2.setInt(2, bits.getId());
+
+ //initiate the update.
+ if (ps2.execute()) {
+ throw new Exception("Unable to upload the package bits to the DB:");
+ }
+ ps2.close();
+ }
+ }
+ ps.close();
+ conn.close();
} catch (Exception e) {
- log.error("Error saving the package.", e);
+ log.error("An error occurred while updating Blob with stream for PackageBits[" + bits.getId() + "], "
+ + e.getMessage());
+ e.printStackTrace();
+ }
+
+ entityManager.merge(bits);
+ entityManager.flush();
+ }
+
+ /**Writes the contents of a the Blob out to the stream passed in.
+ *
+ * @param stream non null stream where contents to be written to.
+ */
+ public void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams) {
+
+ // int resourceId = -1;
+ // if (bits != null) {
+ // resourceId = bits.getId();
+ // }
+ // log.info("Reading data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
+ //
+ // // Check permissions first
+ // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
+ // throw new PermissionException("User [" + user.getName() + "] does not have permission to read packageBits "
+ // + bits + " with resource ID [" + resourceId + "]");
+ // }
+
+ if (stream == null) {
+ return; // no locate to write to
+ }
+ // if ((bits == null) || (bits.getId() <= 0) || bits.getBits() == null) {
+ if ((bits == null) || (bits.getId() <= 0)) {
+ //then PackageBits instance passed in is insufficiently initialized.
+ log.warn("PackageBits insufficiently initialized. No data to write out.");
+ return;
+ }
+ try {
+ //open connection
+ Connection conn = dataSource.getConnection();
+
+ //prepared statement for retrieval of Blob.bits
+ PreparedStatement ps = conn
+ .prepareStatement("SELECT BITS FROM " + PackageBits.TABLE_NAME + " WHERE ID = ?");
+ ps.setInt(1, bits.getId());
+ ResultSet results = ps.executeQuery();
+ if (results.next()) {
+ // results.next();
+ //retrieve the Blob
+ Blob blob = results.getBlob(1);
+ //now copy the contents to the stream passed in
+ StreamUtil.copy(blob.getBinaryStream(), stream, closeStreams);
+ }
+ } catch (Exception ex) {
+ log.error("An error occurred while writing Blob contents out to stream :" + ex.getMessage());
+ ex.printStackTrace();
}
- return bits;
}
-}
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index fc128a4..83c0037 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -19,6 +19,7 @@
package org.rhq.enterprise.server.content;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -32,6 +33,7 @@ import org.rhq.core.domain.content.Architecture;
import org.rhq.core.domain.content.ContentServiceRequest;
import org.rhq.core.domain.content.InstalledPackage;
import org.rhq.core.domain.content.Package;
+import org.rhq.core.domain.content.PackageBits;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.content.PackageVersion;
@@ -211,9 +213,8 @@ public interface ContentManagerLocal {
PackageVersion createPackageVersion(String packageName, int packageTypeId, String version, int architectureId,
InputStream packageBitStream);
- PackageVersion getUploadedPackageVersion(String packageName, int packageTypeId, String version,
- int architectureId, InputStream packageBitStream, Map<String, String> packageUploadDetails,
- int newResourceTypeId);
+ PackageVersion getUploadedPackageVersion(String packageName, int packageTypeId, String version, int architectureId,
+ InputStream packageBitStream, Map<String, String> packageUploadDetails, int newResourceTypeId);
/**
* Very simple method that persists the given package version within its own transaction.
@@ -346,4 +347,8 @@ public interface ContentManagerLocal {
byte[] getPackageBytes(Subject user, int resourceId, int installedPackageId);
+ void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams);
+
+ void updateBlobStream(Subject user, InputStream stream, PackageBits bits);
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
index b83695f..c8ac4e3 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
@@ -18,6 +18,10 @@
*/
package org.rhq.enterprise.server.content.test;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+
import javax.persistence.EntityManager;
import org.apache.commons.logging.Log;
@@ -25,6 +29,7 @@ import org.apache.commons.logging.LogFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.content.Architecture;
import org.rhq.core.domain.content.Package;
import org.rhq.core.domain.content.PackageBits;
@@ -32,7 +37,9 @@ import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.content.PackageVersion;
import org.rhq.core.domain.content.composite.LoadedPackageBitsComposite;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
+import org.rhq.enterprise.server.content.ContentManagerLocal;
import org.rhq.enterprise.server.content.ContentUIManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -52,6 +59,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
private ContentUIManagerLocal contentUIManager;
private SubjectManagerLocal subjectManager;
+ private ContentManagerLocal contentManager;
// Setup --------------------------------------------
@@ -59,6 +67,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
public void setupBeforeClass() throws Exception {
contentUIManager = LookupUtil.getContentUIManager();
subjectManager = LookupUtil.getSubjectManager();
+ contentManager = LookupUtil.getContentManager();
}
// Test Cases --------------------------------------------
@@ -214,4 +223,94 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().rollback();
}
}
+
+ @Test(enabled = ENABLE_TESTS)
+ public void testPackageBitsBlobStream() throws Throwable {
+ LoadedPackageBitsComposite composite;
+
+ getTransactionManager().begin();
+
+ try {
+ EntityManager em = getEntityManager();
+ Resource resource = SessionTestHelper.createNewResource(em, "testPkgBitsLargeResource");
+ PackageType pkgType = new PackageType("testPkgBitsLargePT", resource.getResourceType());
+ org.rhq.core.domain.content.Package pkg = new Package("testPkgBitsLargeP", pkgType);
+ Architecture arch = new Architecture("testPkgLargeArch");
+ PackageVersion pkgVer = new PackageVersion(pkg, "1", arch);
+
+ em.persist(pkgType);
+ em.persist(pkg);
+ em.persist(arch);
+ em.persist(pkgVer);
+ em.flush();
+
+ // test that no bits are available right now
+ composite = contentUIManager.getLoadedPackageBitsComposite(pkgVer.getId());
+ assert composite != null;
+ assert composite.getPackageVersionId() == pkgVer.getId();
+ assert composite.getPackageBitsId() == null;
+ assert !composite.isPackageBitsAvailable();
+ assert !composite.isPackageBitsInDatabase();
+
+ // pretend we loaded the bits, but we stored them somewhere other then the DB
+ PackageBits packageBits = new PackageBits();
+ em.persist(packageBits);
+ pkgVer.setPackageBits(packageBits);
+ pkgVer = em.merge(pkgVer);
+ em.flush();
+
+ // test that the bits are available, but are not stored in the DB
+ composite = contentUIManager.getLoadedPackageBitsComposite(pkgVer.getId());
+ assert composite != null;
+ assert composite.getPackageVersionId() == pkgVer.getId();
+ assert composite.getPackageBitsId() == packageBits.getId();
+ assert composite.isPackageBitsAvailable();
+ assert !composite.isPackageBitsInDatabase();
+
+ // let's make sure there really is no data in the DB
+ packageBits = em.find(PackageBits.class, packageBits.getId());
+ assert packageBits != null;
+ assert packageBits.getBits() == null;
+
+ // now lets store some bits in the DB using PreparedStatements and BLOB mechanism
+ // to simulate large file transfers where streaming is used instead of reading entire
+ // contents into memory every time.
+
+ //any jar should be fine. Use generated server jar
+ File originalBinary = new File("./target/rhq-enterprise-server.jar");
+ //destination once pulled from db
+ File retrieved = new File("./target/pulled.jar");
+ if (retrieved.exists()) {
+ assertTrue("Unable to delete ./target/pulled.jar for test cleanup.", retrieved.delete());
+ }
+ FileInputStream fos = new FileInputStream(originalBinary);
+
+ Subject empty = null;
+ contentManager.updateBlobStream(empty, fos, packageBits);
+ packageBits = em.find(PackageBits.class, packageBits.getId());
+
+ // test that the bits are available and stored in the DB: Reading the Blob
+ composite = contentUIManager.getLoadedPackageBitsComposite(pkgVer.getId());
+ assert composite != null;
+ assert composite.getPackageVersionId() == pkgVer.getId();
+ assert composite.getPackageBitsId() == packageBits.getId();
+ assert composite.isPackageBitsAvailable();
+ assert composite.isPackageBitsInDatabase();
+
+ FileOutputStream outputStream = new FileOutputStream(retrieved);
+ contentManager.writeBlobOutToStream(empty, outputStream, packageBits, false);
+
+ //Check that db content equal to file system content
+ String originalDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
+ .calcDigestString(originalBinary);
+ String newDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(retrieved);
+ assertEquals("Uploaded and retrieved digests differ:", originalDigest, newDigest);
+
+ } catch (Throwable t) {
+ t.printStackTrace();
+ throw t;
+ } finally {
+ getTransactionManager().rollback();
+ }
+ }
}
\ No newline at end of file
commit d9c7b5f73abdf141dce71b4c938e6b4718954e18
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 24 10:39:21 2010 -0400
BZ-607672: support upgrading alert notification history
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/CustomAlertSenderUpgradeTask.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/CustomAlertSenderUpgradeTask.java
index 6fd0415..4e2f328 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/CustomAlertSenderUpgradeTask.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/upgrade/CustomAlertSenderUpgradeTask.java
@@ -23,6 +23,8 @@ import java.sql.SQLException;
import java.util.List;
import org.rhq.core.db.DatabaseType;
+import org.rhq.core.db.OracleDatabaseType;
+import org.rhq.core.db.PostgresqlDatabaseType;
/**
* The introduction of custom alert senders brought with it the denormalization of the AlertNotification schema.
@@ -57,6 +59,13 @@ public class CustomAlertSenderUpgradeTask implements DatabaseUpgradeTask {
this.databaseType = databaseType;
this.connection = connection;
+ // upgrade the notification audit trail
+ upgradeSubjectNotificationLogs();
+ upgradeRoleNotificationLogs();
+ upgradeEmailNotificationLogs();
+ upgradeOperationNotificationLogs();
+
+ // upgrade the notification rules
upgradeSubjectNotifications();
upgradeRoleNotifications();
upgradeEmailNotifications();
@@ -64,6 +73,130 @@ public class CustomAlertSenderUpgradeTask implements DatabaseUpgradeTask {
upgradeOperationNotifications();
}
+ private void upgradeSubjectNotificationLogs() throws SQLException {
+ /*
+ * alert.alertNotificationLog.sender = "System Users"
+ * alert.alertNotificationLog.result_state = "DEFERRED_EMAIL"
+ * alert.alertNotificationLog.message = "Sending to subjects: [<alert.alertNotificationLog.subjects>]"
+ */
+ String field = "notif.subjects";
+ String message = concat("'Sending to subjects: '", field);
+ String insertSQL = getNotificationLogConversionSQL("'System Users'", "'DEFERRED_EMAIL'", message, field);
+ System.out.println("Executing: " + insertSQL);
+ databaseType.executeSql(connection, insertSQL);
+ }
+
+ private void upgradeRoleNotificationLogs() throws SQLException {
+ /*
+ * alert.alertNotificationLog.sender = "System Roles"
+ * alert.alertNotificationLog.result_state = "DEFERRED_EMAIL"
+ * alert.alertNotificationLog.message = "Sending to roles: [<alert.alertNotificationLog.roles>]"
+ */
+ String field = "notif.roles";
+ String message = concat("'Sending to roles: '", field);
+ String insertSQL = getNotificationLogConversionSQL("'System Roles'", "'DEFERRED_EMAIL'", message, field);
+ System.out.println("Executing: " + insertSQL);
+ databaseType.executeSql(connection, insertSQL);
+ }
+
+ private void upgradeEmailNotificationLogs() throws SQLException {
+ /*
+ * alert.alertNotificationLog.sender = "Direct Emails"
+ * alert.alertNotificationLog.result_state = "DEFERRED_EMAIL"
+ * alert.alertNotificationLog.message = "Sending to subjects: [<alert.alertNotificationLog.emails>]"
+ */
+ String field = "notif.emails";
+ String message = concat("'Sending to addresses: '", field);
+ String insertSQL = getNotificationLogConversionSQL("'Direct Emails'", "'DEFERRED_EMAIL'", message, field);
+ System.out.println("Executing: " + insertSQL);
+ databaseType.executeSql(connection, insertSQL);
+ }
+
+ private String getNotificationLogConversionSQL(String sender, String resultState, String message,
+ String notNullField) {
+ if (databaseType instanceof PostgresqlDatabaseType) {
+ return "INSERT INTO rhq_alert_notif_log ( id, alert_id, sender, result_state, message )" //
+ + " SELECT nextval('RHQ_ALERT_NOTIF_LOG_ID_SEQ'), " //
+ + " notif.alert_id AS notifAlertId, " //
+ + " " + sender + " AS notifSender, "//
+ + " " + resultState + " AS notifResultState, " //
+ + " " + message + " AS notifMessage "//
+ + " FROM rhq_alert_notif_log notif " //
+ + " WHERE " + notNullField + " IS NOT NULL";
+ } else if (databaseType instanceof OracleDatabaseType) {
+ return "INSERT INTO rhq_alert_notif_log ( id, alert_id, sender, result_state, message )" //
+ + " SELECT RHQ_ALERT_NOTIF_LOG_ID_SEQ.nextval, " //
+ + " notifAlertId, notifSender, notifResultState, notifMessage "
+ + " FROM ( SELECT notif.alert_id AS notifAlertId, " //
+ + " " + sender + " AS notifSender, "//
+ + " " + resultState + " AS notifResultState, " //
+ + " " + message + " AS notifMessage "//
+ + " FROM rhq_alert_notif_log notif " //
+ + " WHERE " + notNullField + " IS NOT NULL )";
+ } else {
+ throw new IllegalStateException(this.getClass().getSimpleName() + " does not support upgrades for "
+ + databaseType.getName());
+ }
+ }
+
+ private void upgradeOperationNotificationLogs() throws SQLException {
+ /*
+ * alert.alertNotificationLog.sender = "Resource Operations"
+ * alert.alertNotificationLog.result_state = "SUCCESS"
+ * alert.alertNotificationLog.message = "Executed '<alert.triggeredOperation>' on this resource"
+ */
+ String field = "alert.triggered_operation";
+ String message = concat("'Executed \"'", field, "'\" on this resource'");
+ String insertSQL = getNotificationLogInsertionSQL("'Resource Operations'", "'SUCCESS'", message, field);
+ System.out.println("Executing: " + insertSQL);
+ databaseType.executeSql(connection, insertSQL);
+ }
+
+ private String getNotificationLogInsertionSQL(String sender, String resultState, String message, String notNullField) {
+ if (databaseType instanceof PostgresqlDatabaseType) {
+ return "INSERT INTO rhq_alert_notif_log ( id, alert_id, sender, result_state, message )" //
+ + " SELECT nextval('RHQ_ALERT_NOTIF_LOG_ID_SEQ'), " //
+ + " alert.id AS notifAlertId, " //
+ + " " + sender + " AS notifSender, "//
+ + " " + resultState + " AS notifResultState, " //
+ + " " + message + " AS notifMessage "//
+ + " FROM rhq_alert alert " //
+ + " WHERE " + notNullField + " IS NOT NULL";
+ } else if (databaseType instanceof OracleDatabaseType) {
+ return "INSERT INTO rhq_alert_notif_log ( id, alert_id, sender, result_state, message )" //
+ + " SELECT RHQ_ALERT_NOTIF_LOG_ID_SEQ.nextval, " //
+ + " notifAlertId, notifSender, notifResultState, notifMessage "
+ + " FROM ( SELECT alert.id AS notifAlertId, " //
+ + " " + sender + " AS notifSender, "//
+ + " " + resultState + " AS notifResultState, " //
+ + " " + message + " AS notifMessage "//
+ + " FROM rhq_alert alert " //
+ + " WHERE " + notNullField + " IS NOT NULL )";
+ } else {
+ throw new IllegalStateException(this.getClass().getSimpleName() + " does not support upgrades for "
+ + databaseType.getName());
+ }
+ }
+
+ private String concat(String... elements) {
+ StringBuilder builder = new StringBuilder();
+ if (databaseType instanceof PostgresqlDatabaseType || databaseType instanceof OracleDatabaseType) {
+ boolean first = true;
+ for (String next : elements) {
+ if (first) {
+ first = false;
+ } else {
+ builder.append("||");
+ }
+ builder.append(next);
+ }
+ } else {
+ throw new IllegalStateException(this.getClass().getSimpleName() + " does not support upgrades for "
+ + databaseType.getName());
+ }
+ return builder.toString();
+ }
+
private void upgradeSubjectNotifications() throws SQLException {
String dataMapSQL = "" //
+ " SELECT notif.alert_definition_id, notif.subject_id "//
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index d10dcf9..1d3bd04 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2082,6 +2082,20 @@
</schema-directSQL>
</schemaSpec>
<schemaSpec version="2.70.2">
+ <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="SENDER" columnType="VARCHAR2" precision="200" />
+ <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="RESULT_STATE" columnType="VARCHAR2" precision="20" />
+ <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="MESSAGE" columnType="VARCHAR2" precision="4000" />
+ <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="ALL_EMAILS" columnType="VARCHAR2" precision="4000" />
+ <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="EMAILS_FAILED" columnType="VARCHAR2" precision="4000" />
+ </schemaSpec>
+ <schemaSpec version="2.70.3">
+ <schema-directSQL>
+ <statement desc="Dropping unique index RHQ_ALERT_IDX_ALERT">
+ DROP INDEX RHQ_ALERT_IDX_ALERT
+ </statement>
+ </schema-directSQL>
+ </schemaSpec>
+ <schemaSpec version="2.70.4">
<!-- turn first-class notification data into configuration objects for custom alert senders -->
<schema-alterColumn table="RHQ_ALERT_NOTIFICATION" column="NOTIFICATION_TYPE" nullable="TRUE" />
<schema-javaTask className="CustomAlertSenderUpgradeTask" />
@@ -2092,7 +2106,7 @@
</schema-directSQL>
<schema-deleteColumn table="RHQ_ALERT_NOTIFICATION" column="NOTIFICATION_TYPE" />
</schemaSpec>
- <schemaSpec version="2.70.3">
+ <schemaSpec version="2.70.5">
<!-- remove first-class alert notification structures from definition side of the model-->
<schema-deleteColumn table="RHQ_ALERT_NOTIFICATION" column="snmp_host" />
<schema-deleteColumn table="RHQ_ALERT_NOTIFICATION" column="snmp_port" />
@@ -2100,25 +2114,17 @@
<schema-deleteColumn table="RHQ_ALERT_NOTIFICATION" column="email_address" />
<schema-deleteColumn table="RHQ_ALERT_NOTIFICATION" column="role_id" />
<schema-deleteColumn table="RHQ_ALERT_NOTIFICATION" column="subject_id" />
+ <schema-deleteColumn table="RHQ_ALERT_DEFINITION" column="operation_def_id" />
</schemaSpec>
- <schemaSpec version="2.70.4">
+ <schemaSpec version="2.70.6">
<schema-deleteColumn table="RHQ_ALERT_NOTIF_LOG" column="roles" />
<schema-deleteColumn table="RHQ_ALERT_NOTIF_LOG" column="subjects" />
<schema-deleteColumn table="RHQ_ALERT_NOTIF_LOG" column="emails" />
+ <schema-deleteColumn table="RHQ_ALERT" column="triggered_operation" />
</schemaSpec>
- <schemaSpec version="2.70.5">
- <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="SENDER" columnType="VARCHAR2" precision="200" />
- <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="RESULT_STATE" columnType="VARCHAR2" precision="20" />
- <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="MESSAGE" columnType="VARCHAR2" precision="4000" />
- <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="ALL_EMAILS" columnType="VARCHAR2" precision="4000" />
- <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="EMAILS_FAILED" columnType="VARCHAR2" precision="4000" />
- </schemaSpec>
- <schemaSpec version="2.70.6">
+ <schemaSpec version="2.70.7">
<schema-directSQL>
- <statement>
- DROP INDEX RHQ_ALERT_IDX_ALERT
- </statement>
- <statement>
+ <statement desc="Recreating RHQ_ALERT_IDX_ALERT as non-unique index">
CREATE INDEX RHQ_ALERT_IDX_ALERT ON RHQ_ALERT_NOTIF_LOG (alert_id)
</statement>
</schema-directSQL>
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/Alert.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/Alert.java
index 593f223..72d705d 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/Alert.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/Alert.java
@@ -238,10 +238,6 @@ public class Alert implements Serializable {
@OneToMany(mappedBy = "alert", cascade = CascadeType.ALL)
private List<AlertNotificationLog> alertNotificationLogs = new ArrayList<AlertNotificationLog>();
- @Deprecated
- @Column(name = "TRIGGERED_OPERATION", nullable = true)
- private String triggeredOperation;
-
/*
* recoveryId and willRecover==true are mutually exclusive
*
@@ -283,9 +279,6 @@ public class Alert implements Serializable {
// and unnecessary for creating the link
// alertDefinition.addAlert(this);
this.ctime = ctime;
- if (alertDefinition.getOperationDefinition() != null) {
- setTriggeredOperation(alertDefinition.getOperationDefinition().getDisplayName());
- }
}
public int getId() {
@@ -325,14 +318,6 @@ public class Alert implements Serializable {
this.alertNotificationLogs.add(log);
}
- public String getTriggeredOperation() {
- return triggeredOperation;
- }
-
- public void setTriggeredOperation(String triggeredOperation) {
- this.triggeredOperation = triggeredOperation;
- }
-
public Long getAcknowledgeTime() {
return acknowledgeTime;
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
index 07739cf..a64de62 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/AlertDefinition.java
@@ -54,7 +54,6 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlTransient;
import org.rhq.core.domain.alert.notification.AlertNotification;
-import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.group.ResourceGroup;
@@ -361,10 +360,6 @@ public class AlertDefinition implements Serializable {
@org.hibernate.annotations.Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<AlertNotification> alertNotifications = new ArrayList<AlertNotification>();
- @JoinColumn(name = "OPERATION_DEF_ID", nullable = true)
- @ManyToOne
- private OperationDefinition operationDefinition;
-
/*
* As of Sept 29, 2007 there is no reason to expose this at the java layer. However, this is required if we want to
* be able to cascade delete the AlertDampeningEvents when an AlertDefinition is removed from the db, due to
@@ -409,7 +404,7 @@ public class AlertDefinition implements Serializable {
/*
* Don't copy the id, ctime, or mtime.
*/
- this.name = alertDef.name;
+ setName(alertDef.name);
this.description = alertDef.description;
this.priority = alertDef.priority;
this.enabled = alertDef.enabled;
@@ -456,8 +451,6 @@ public class AlertDefinition implements Serializable {
}
this.removeAllAlertNotifications();
this.getAlertNotifications().addAll(copiedNotifications);
-
- this.operationDefinition = alertDef.operationDefinition;
}
public int getId() {
@@ -686,14 +679,6 @@ public class AlertDefinition implements Serializable {
this.alertNotifications.clear();
}
- public OperationDefinition getOperationDefinition() {
- return operationDefinition;
- }
-
- public void setOperationDefinition(OperationDefinition operationDefinition) {
- this.operationDefinition = operationDefinition;
- }
-
public Set<AlertDampeningEvent> getAlertDampeningEvents() {
return alertDampeningEvents;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
index 30454a7..01d4bc3 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
@@ -45,7 +45,6 @@ import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.alert.notification.AlertNotificationLog;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.measurement.DataType;
-import org.rhq.core.domain.measurement.MeasurementCategory;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.server.MeasurementConverter;
import org.rhq.enterprise.gui.legacy.AttrConstants;
@@ -117,7 +116,7 @@ public class ViewAlertAction extends TilesAction {
true);
} catch (Exception e) {
// check if this is Calltime data
- if (definition.getDataType()== DataType.CALLTIME)
+ if (definition.getDataType() == DataType.CALLTIME)
firedValue = condLog.getValue();
else
firedValue = "??";
@@ -142,11 +141,6 @@ public class ViewAlertAction extends TilesAction {
request.setAttribute("aNotifLogs", notificationLogs);
- request.setAttribute("controlEnabled", true); // always display control result, even if it's "none"
- if (av.getTriggeredOperation() != null) {
- request.setAttribute("controlAction", av.getTriggeredOperation());
- }
-
int recoveryAlertDefId = adv.getRecoveryId();
if (recoveryAlertDefId != 0) {
String recoveryAlertName = getRecoveryAlertName(recoveryAlertDefId, subject);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionAction.java
index ac19df3..6d080ef 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionAction.java
@@ -103,8 +103,6 @@ public class EditDefinitionControlActionAction extends BaseAction {
operationDefinition = operationManager.getOperationDefinition(subject, operationId);
}
- alertDefinition.setOperationDefinition(operationDefinition);
-
try {
if (context == FormContext.Type) {
alertTemplateManager.updateAlertTemplate(subject, alertDefinition, false);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionFormPrepareAction.java
index 10fa84e..1086314 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/EditDefinitionControlActionFormPrepareAction.java
@@ -82,12 +82,14 @@ public class EditDefinitionControlActionFormPrepareAction extends TilesAction {
List<OptionItem> operationNames = AlertDefUtil.getControlActions(subject, id, formContext);
// drop-downs
+ /* replaced by custom alert senders
operationsForm.setControlActions(operationNames);
if (alertDefinition.getOperationDefinition() != null) {
Integer operationId = alertDefinition.getOperationDefinition().getId();
operationsForm.setControlAction(String.valueOf(operationId));
}
+ */
// properties
// AlertDefinition alertDef = AlertDefUtil.getAlertDefinition(request, sessionID, eb);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/ViewDefinitionAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/ViewDefinitionAction.java
index 4c395fd..1657d08 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/ViewDefinitionAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/ViewDefinitionAction.java
@@ -68,10 +68,6 @@ public class ViewDefinitionAction extends TilesAction {
request.setAttribute("recoveryAlertName", recoveryAlertName);
}
- if (alertDef.getOperationDefinition() != null) {
- request.setAttribute("controlAction", alertDef.getOperationDefinition().getDisplayName());
- }
-
// enablement
AlertDefUtil.setAlertDampeningRequestAttributes(request, alertDef);
commit 4e2823ce36628041c3626d8e131ff2f8f9a3b94d
Merge: b324404... 6dc2bab...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Jun 24 14:52:30 2010 +0200
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit b324404ad3b91849f12afa57fcd5417521274fd2
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Jun 24 14:51:20 2010 +0200
BZ 607580 for traits don't try to parse numeric values and just show the conditions raw value (like for call time data).
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
index b3dbb3b..30454a7 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/ViewAlertAction.java
@@ -128,6 +128,8 @@ public class ViewAlertAction extends TilesAction {
|| (category == AlertConditionCategory.EVENT)) {
// TODO: jmarques - add validation to make sure condition is a valid regex Pattern
alertCondBean.setActualValue(condLog.getValue());
+ } else if (category == AlertConditionCategory.TRAIT) {
+ alertCondBean.setActualValue(condLog.getValue());
} else {
alertCondBean.setActualValue("??");
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
index 208ab29..ca1cd5a 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
@@ -223,7 +223,8 @@ public class SubsystemAlertHistoryUIBean extends SubsystemView {
String firedValue = log.getValue();
if (condition.getMeasurementDefinition() != null) {
- if (condition.getMeasurementDefinition().getDataType()== DataType.CALLTIME)
+ DataType type = condition.getMeasurementDefinition().getDataType();
+ if (type == DataType.CALLTIME || type == DataType.TRAIT)
firedValue = log.getValue();
else
firedValue = MeasurementConverter.format(Double.valueOf(log.getValue()), condition
commit 3beb63086a3e383b11b5de1f438cb5f7629ec1ec
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Jun 24 14:17:39 2010 +0200
If this is calltime data, fall back to show the raw codition log and don't try to parse a numeric value.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
index 892b071..208ab29 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/subsystem/SubsystemAlertHistoryUIBean.java
@@ -28,11 +28,13 @@ import javax.faces.model.DataModel;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpServletRequest;
+import org.rhq.core.db.DatabaseType;
import org.rhq.core.domain.alert.AlertCondition;
import org.rhq.core.domain.alert.AlertConditionCategory;
import org.rhq.core.domain.alert.AlertConditionLog;
import org.rhq.core.domain.alert.composite.AlertHistoryComposite;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -221,8 +223,11 @@ public class SubsystemAlertHistoryUIBean extends SubsystemView {
String firedValue = log.getValue();
if (condition.getMeasurementDefinition() != null) {
- firedValue = MeasurementConverter.format(Double.valueOf(log.getValue()), condition
- .getMeasurementDefinition().getUnits(), true);
+ if (condition.getMeasurementDefinition().getDataType()== DataType.CALLTIME)
+ firedValue = log.getValue();
+ else
+ firedValue = MeasurementConverter.format(Double.valueOf(log.getValue()), condition
+ .getMeasurementDefinition().getUnits(), true);
}
history.setConditionText(displayText);
commit 6dc2bab0cc29ff28f82b8a63cb6c4b07222ff17c
Author: hudson auto <wnstb(a)yahoo.com>
Date: Thu Jun 24 02:54:16 2010 -0400
[maven-release-plugin] prepare for next development iteration
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 6d440ef..eda9133 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index dbd8dd6..bc7965b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 1077987..2cf950b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 751726e..ee81a94 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 78d1f23..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index f6fadb5..a51f92b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 84dd23f..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 96cbc8e..e0ced84 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0df3808..0911918 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 558b9a2..d47d4c8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index ba389df..e1ce7ef 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index a570e19..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index c721f21..7739177 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index 9e92634..eeb7e81 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 47cb583..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index cee7efe..bc41dc5 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index f917e15..d9f1c1c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index c569283..8942239 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 88ef26e..8b9da9c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 6a09d32..611eb9d 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 643d41e..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index 3068b31..df05645 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 6cd8f92..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index e908b75..1beadca 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index f01ec85..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index a3e6434..783942c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index bdef75c..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index c3fc4fa..3b0dbb8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 5e0a013..33966bd 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 57e79e7..605267f 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 1feb631..910b617 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index a4d9ed6..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index c2acfe1..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index aee0070..3fd11e8 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 6956e3c..bf15866 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 4f2650b..9e7bb24 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index b05532d..dd5bc18 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 988e2e3..c0973f3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index b9f3d0c..a62fee8 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 8a0c7c9..3193539 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index bf7fe01..e69bfbc 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index 466b99a..ca33bb7 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index b743122..af75153 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 97c50f4..09839b8 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 8abb60d..73f405e 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 ce9b430..4c44f10 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 86a21ef..0033d1b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 b83824c..61965f2 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 b8bba65..7451668 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index a53f3ad..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index ab30954..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 8b6a170..2b16f4a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 9a96ab0..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 3a96e6d..a6cba32 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 8bcdcea..9c7cc74 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 2dce331..ebdd3da 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 3fd87f6..06c8981 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 7ecbbad..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index cadb656..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 8df64c1..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index 031c90d..d056f74 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index ba37942..28dc9b1 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 762f318..a0721a9 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index e17c9d8..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7006ed8..c37598e 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 851c129..cc160c9 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index f2682e9..b4f9208 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 48651cb..963223b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 1e8011a..d920440 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 6ee0662..d5aaad5 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 7d98f84..30889f7 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 05ac956..b79645d 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 1c68b9b..f7cf265 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 35fd599..acb08ef 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index eddd3ed..7dd0fde 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 5d79625..65fa7b8 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 7e17c2b..853c020 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 ceb58be..a0ade77 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 54536d9..b9ed2b3 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 f276b7d..b3846fa 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 f1aa8f9..443e524 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 6bc1bfa..ac9885a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index e488d56..d0c9053 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 37d84af..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 75a1aff..1acdb0f 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 4e78da5..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 87ba78d..97b83b0 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 4873dae..85d6105 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1e95ca3..283ab6a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index daf3133..5a4466c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index b0c26a5..a190dcd 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 98333bb..8f4e675 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index d0d0d63..0d41574 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7189f74..7719b14 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index fdb421d..2d9d715 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 9c38247..3579496 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 7932012..41df1b8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 03e2df8..205d5b0 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index cab4269..e299efa 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 4f886fd..b3d5e87 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 9a28ce8..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 07130df..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index efc840d..95b0dc6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 647a602bece9c1fae7c083d600a314914245bfe7
Author: hudson auto <wnstb(a)yahoo.com>
Date: Thu Jun 24 02:53:18 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_GA_QA
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..6d440ef 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..dbd8dd6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..1077987 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..751726e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..78d1f23 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..f6fadb5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..84dd23f 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..96cbc8e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..0df3808 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..558b9a2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..ba389df 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..a570e19 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..c721f21 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..9e92634 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..47cb583 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..cee7efe 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..f917e15 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..c569283 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..88ef26e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 611eb9d..6a09d32 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..643d41e 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..3068b31 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..6cd8f92 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 1beadca..e908b75 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..f01ec85 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..a3e6434 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..bdef75c 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..c3fc4fa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..5e0a013 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..57e79e7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..1feb631 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..a4d9ed6 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..c2acfe1 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 3fd11e8..aee0070 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..6956e3c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 9e7bb24..4f2650b 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index dd5bc18..b05532d 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index c0973f3..988e2e3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index a62fee8..b9f3d0c 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 3193539..8a0c7c9 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index e69bfbc..bf7fe01 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index ca33bb7..466b99a 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index af75153..b743122 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 09839b8..97c50f4 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..8abb60d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 4c44f10..ce9b430 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 0033d1b..86a21ef 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 61965f2..b83824c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 7451668..b8bba65 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..a53f3ad 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..ab30954 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..8b6a170 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..9a96ab0 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..3a96e6d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 9c7cc74..8bcdcea 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 ebdd3da..2dce331 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..3fd87f6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..7ecbbad 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..cadb656 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..8df64c1 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index d056f74..031c90d 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 28dc9b1..ba37942 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..762f318 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..e17c9d8 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..7006ed8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..851c129 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..f2682e9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..48651cb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..1e8011a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..6ee0662 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..7d98f84 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..05ac956 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..1c68b9b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..35fd599 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..eddd3ed 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 65fa7b8..5d79625 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..7e17c2b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 a0ade77..ceb58be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..54536d9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 b3846fa..f276b7d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..f1aa8f9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..6bc1bfa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..e488d56 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..37d84af 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..75a1aff 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..4e78da5 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..87ba78d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..4873dae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1e95ca3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..daf3133 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..b0c26a5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..98333bb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..d0d0d63 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..7189f74 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..fdb421d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..9c38247 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..7932012 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..03e2df8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..cab4269 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 b3d5e87..4f886fd 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..9a28ce8 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..07130df 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 95b0dc6..efc840d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
<packaging>pom</packaging>
<name>RHQ</name>
13 years, 10 months
[rhq] Branch 'release-3.0.0' - 5 commits - modules/core modules/enterprise
by Simeon Pinder
modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java | 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java | 303 ++++++++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java | 11
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java | 97 +++
4 files changed, 358 insertions(+), 60 deletions(-)
New commits:
commit 6f4eb034b12085258f98c92713af8a499ea78261
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Jun 25 15:53:16 2010 -0400
unit test fix for blob.
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
index 7fae6e0..5f73b89 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
@@ -284,7 +284,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
}
FileInputStream fos = new FileInputStream(originalBinary);
- contentManager.updateBlobStream(fos, packageBits);
+ contentManager.updateBlobStream(fos, packageBits, null);
packageBits = em.find(PackageBits.class, packageBits.getId());
// test that the bits are available and stored in the DB: Reading the Blob
commit 17b0f8bb1a60583a0d1ea24bd894cc9a3dbd5c42
Merge: 863201f... bfd6f7d...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Jun 25 15:50:49 2010 -0400
Merge branch 'release-3.0.0' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit 863201f8b91e01632ec7453940f4b08fd3d0dda7
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Jun 25 09:53:02 2010 -0400
BZ-597246: fixing errors, modified loadPackageBits to calculate digest and file length as well.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index b2cac05..6ee805e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -18,6 +18,7 @@
*/
package org.rhq.enterprise.server.content;
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -945,7 +946,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
pkgName = packageVersion.getGeneralPackage().getName();
}
bits = loadPackageBits(bitStream, packageVersion.getId(), pkgName, packageVersion.getVersion(),
- bits);
+ bits, null);
entityManager.merge(bits);
} finally {
@@ -1235,17 +1236,13 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
PackageVersion newPackageVersion = new PackageVersion(existingPackage, version, architecture);
newPackageVersion.setDisplayName(existingPackage.getName());
- PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null);
+ Map<String, String> contentDetails = new HashMap<String, String>();
+ PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null,
+ contentDetails);
newPackageVersion.setPackageBits(bits);
- //TODO: write down to file system to calculate length and calculate hash.
- newPackageVersion.setFileSize((long) bits.getBits().length);
- try {
- newPackageVersion.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
- .calcDigestString(bits.getBits()));
- } catch (IOException e) {
- newPackageVersion.setSHA256(null);
- }
+ newPackageVersion.setFileSize(Long.valueOf(contentDetails.get(UPLOAD_FILE_SIZE)).longValue());
+ newPackageVersion.setSHA256(contentDetails.get(UPLOAD_SHA256));
newPackageVersion = persistOrMergePackageVersionSafely(newPackageVersion);
existingPackage.addVersion(newPackageVersion);
@@ -1559,7 +1556,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
//get the data
- PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null);
+ PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null, null);
packageVersion.setPackageBits(bits);
@@ -1583,11 +1580,12 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
*
* @param packageBitStream
* @param packageVersionId
+ * @param contentDetails
* @return PackageBits ref populated.
*/
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private PackageBits loadPackageBits(InputStream packageBitStream, int packageVersionId, String packageName,
- String packageVersion, PackageBits existingPkgBits) {
+ String packageVersion, PackageBits existingPkgBits, Map<String, String> contentDetails) {
PackageBits bits = null;
//use or instantiate PackageBits instance.
@@ -1608,7 +1606,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
bits = entityManager.find(PackageBits.class, bits.getId());
//write data from stream into db using Hibernate Blob mechanism
- updateBlobStream(packageBitStream, bits);
+ updateBlobStream(packageBitStream, bits, contentDetails);
return bits;
}
@@ -1617,8 +1615,9 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
* Blob mechanism with PreparedStatements. As all content into Bits are not stored as type OID, t
*
* @param stream
+ * @param contentDetails Map to store content details in used in PackageVersioning
*/
- public void updateBlobStream(InputStream stream, PackageBits bits) {
+ public void updateBlobStream(InputStream stream, PackageBits bits, Map<String, String> contentDetails) {
//TODO: are there any db specific limits that we should check/verify here before stuffing
// the contents of a stream into the db? Should we just let the db complain and take care of
@@ -1632,7 +1631,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
//persist to db if not already
if (bits.getId() <= 0) {
- entityManager.persist(this);
+ entityManager.persist(bits);
}
//locate the existing PackageBits instance
@@ -1647,7 +1646,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
Connection conn = null;
PreparedStatement ps = null;
PreparedStatement ps2 = null;
- DataSource ds = null;
try {
conn = dataSource.getConnection();
@@ -1666,7 +1664,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
Blob blb = rs.getBlob(1);
//copy the stream to the Blob
- long transferred = StreamUtil.copy(stream, blb.setBinaryStream(1), false);
+ long transferred = copyAndDigest(stream, blb.setBinaryStream(1), false, contentDetails);
stream.close();
//populate the prepared statement for update
@@ -1687,6 +1685,37 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
log.error("An error occurred while updating Blob with stream for PackageBits[" + bits.getId() + "], "
+ e.getMessage());
e.printStackTrace();
+ } finally {
+ if (ps != null) {
+ try {
+ ps.close();
+ } catch (Exception e) {
+ log.warn("Failed to close prepared statement for package bits [" + bits.getId() + "]");
+ }
+ }
+
+ if (ps2 != null) {
+ try {
+ ps2.close();
+ } catch (Exception e) {
+ log.warn("Failed to close prepared statement for package bits [" + bits.getId() + "]");
+ }
+ }
+
+ if (conn != null) {
+ try {
+ conn.close();
+ } catch (Exception e) {
+ log.warn("Failed to close connection for package bits [" + bits.getId() + "]");
+ }
+ }
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (Exception e) {
+ log.warn("Failed to close stream to package bits located at [" + +bits.getId() + "]");
+ }
+ }
}
entityManager.merge(bits);
@@ -1717,7 +1746,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
ps.setInt(1, bits.getId());
ResultSet results = ps.executeQuery();
if (results.next()) {
- // results.next();
//retrieve the Blob
Blob blob = results.getBlob(1);
//now copy the contents to the stream passed in
@@ -1728,4 +1756,63 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
ex.printStackTrace();
}
}
+
+ /** Functions same as StreamUtil.copy(), but calculates SHA hash and file size and write it to
+ * the Map<String,String> passed in.
+ *
+ * @param input
+ * @param output
+ * @param closeStreams
+ * @param contentDetails
+ * @return
+ * @throws RuntimeException
+ */
+ private long copyAndDigest(InputStream input, OutputStream output, boolean closeStreams,
+ Map<String, String> contentDetails) throws RuntimeException {
+ long numBytesCopied = 0;
+ int bufferSize = 32768;
+ MessageDigestGenerator digestGenerator = null;
+ if (contentDetails != null) {
+ digestGenerator = new MessageDigestGenerator(MessageDigestGenerator.SHA_256);
+ }
+ try {
+ // make sure we buffer the input
+ input = new BufferedInputStream(input, bufferSize);
+
+ byte[] buffer = new byte[bufferSize];
+
+ for (int bytesRead = input.read(buffer); bytesRead != -1; bytesRead = input.read(buffer)) {
+ output.write(buffer, 0, bytesRead);
+ numBytesCopied += bytesRead;
+ if (digestGenerator != null) {
+ digestGenerator.add(buffer, 0, bytesRead);
+ }
+ }
+
+ if (contentDetails != null) {//if we're calculating a digest as well
+ contentDetails.put(UPLOAD_FILE_SIZE, String.valueOf(numBytesCopied));
+ contentDetails.put(UPLOAD_SHA256, digestGenerator.getDigestString());
+ }
+ output.flush();
+ } catch (IOException ioe) {
+ throw new RuntimeException("Stream data cannot be copied", ioe);
+ } finally {
+ if (closeStreams) {
+ try {
+ output.close();
+ } catch (IOException ioe2) {
+ log.warn("Streams could not be closed", ioe2);
+ }
+
+ try {
+ input.close();
+ } catch (IOException ioe2) {
+ log.warn("Streams could not be closed", ioe2);
+ }
+ }
+ }
+
+ return numBytesCopied;
+ }
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 65b0365..0b0e5a5 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -349,6 +349,6 @@ public interface ContentManagerLocal {
void writeBlobOutToStream(OutputStream stream, PackageBits bits, boolean closeStreams);
- void updateBlobStream(InputStream stream, PackageBits bits);
+ void updateBlobStream(InputStream stream, PackageBits bits, Map<String, String> contentDetails);
}
\ No newline at end of file
commit 8bbfe126b897a21135b21987aefcce1b45e76cb3
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Thu Jun 24 14:33:18 2010 -0400
refactoring BZ-597246 a little.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
index 634ebeb..17ad568 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
@@ -95,14 +95,20 @@ public class PackageBits implements Serializable {
* return <code>null</code>. In this case, the content is probably stored somewhere else on a local file system.
* When <code>null</code> is returned, it is assumed that who ever needs the content can know where to find it based
* on the {@link PackageVersion} details.
+ *
+ * For large file contents, you should use ContentManager.updateBlobStream() to write and
+ * ContentManager.writeBlobOutToStream() to read/direct file contents into as no byte[] is used.
*/
@XmlTransient
public byte[] getBits() {
return bits;
}
+ /** For large file contents, you should use ContentManager.updateBlobStream() to write and
+ * ContentManager.writeBlobOutToStream() to read/direct file contents into as no byte[] is used.
+ *
+ */
public void setBits(byte[] bits) {
this.bits = bits;
}
-
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 5bae392..b2cac05 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -939,7 +939,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
try {
PackageBits bits = entityManager.find(PackageBits.class, packageBits.getId());
- // bits.setBits(StreamUtil.slurp(bitStream));
String pkgName = "(set packageName)";
if ((packageVersion != null) && (packageVersion.getGeneralPackage() != null)) {
//update it to whatever package name is if we can get to it.
@@ -947,7 +946,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
bits = loadPackageBits(bitStream, packageVersion.getId(), pkgName, packageVersion.getVersion(),
bits);
- // bits.setBits(StreamUtil.slurp(bitStream));
entityManager.merge(bits);
} finally {
@@ -1237,31 +1235,14 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
PackageVersion newPackageVersion = new PackageVersion(existingPackage, version, architecture);
newPackageVersion.setDisplayName(existingPackage.getName());
- // PackageBits bits = loadPackageBits(packageBitStream);
PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null);
- // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // // use the byte array in the package version to store the bits.
- // byte[] packageBits;
- // try {
- // packageBits = StreamUtil.slurp(packageBitStream);
- // } catch (RuntimeException re) {
- // throw new RuntimeException("Error reading in the package file", re);
- // }
- //
- // PackageBits bits = new PackageBits();
- // try {
- // bits.setBits(packageBits);
- // } catch (Exception e) {
- // log.error("Error saving the package.", e);
- // }
newPackageVersion.setPackageBits(bits);
+ //TODO: write down to file system to calculate length and calculate hash.
newPackageVersion.setFileSize((long) bits.getBits().length);
try {
newPackageVersion.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
.calcDigestString(bits.getBits()));
- // .calcDigestString(packageBits));
} catch (IOException e) {
newPackageVersion.setSHA256(null);
}
@@ -1579,23 +1560,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
//get the data
PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null);
- // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // // use the byte array in the package version to store the bits.
- // byte[] packageBits;
- // try {
- // packageBits = StreamUtil.slurp(packageBitStream);
- // } catch (RuntimeException re) {
- // throw new RuntimeException("Error reading in the package file", re);
- // }
- //
- // PackageBits bits = new PackageBits();
- // // bits = new PackageBits();
- // try {
- // bits.setBits(packageBits);
- // } catch (Exception e) {
- // log.error("Error savinf the package.", e);
- // }
packageVersion.setPackageBits(bits);
@@ -1643,10 +1607,8 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
bits = entityManager.find(PackageBits.class, bits.getId());
- Subject user = null;
-
//write data from stream into db using Hibernate Blob mechanism
- updateBlobStream(user, packageBitStream, bits);
+ updateBlobStream(packageBitStream, bits);
return bits;
}
@@ -1656,19 +1618,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
*
* @param stream
*/
- public void updateBlobStream(Subject user, InputStream stream, PackageBits bits) {
-
- // int resourceId = -1;
- // if (bits != null) {
- // resourceId = bits.getId();
- // }
- // log.info("Updating data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
- //
- // // Check permissions first
- // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
- // throw new PermissionException("User [" + user.getName()
- // + "] does not have permission to update packageBits " + bits + " with resource ID [" + resourceId + "]");
- // }
+ public void updateBlobStream(InputStream stream, PackageBits bits) {
//TODO: are there any db specific limits that we should check/verify here before stuffing
// the contents of a stream into the db? Should we just let the db complain and take care of
@@ -1747,24 +1697,11 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
*
* @param stream non null stream where contents to be written to.
*/
- public void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams) {
-
- // int resourceId = -1;
- // if (bits != null) {
- // resourceId = bits.getId();
- // }
- // log.info("Reading data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
- //
- // // Check permissions first
- // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
- // throw new PermissionException("User [" + user.getName() + "] does not have permission to read packageBits "
- // + bits + " with resource ID [" + resourceId + "]");
- // }
+ public void writeBlobOutToStream(OutputStream stream, PackageBits bits, boolean closeStreams) {
if (stream == null) {
return; // no locate to write to
}
- // if ((bits == null) || (bits.getId() <= 0) || bits.getBits() == null) {
if ((bits == null) || (bits.getId() <= 0)) {
//then PackageBits instance passed in is insufficiently initialized.
log.warn("PackageBits insufficiently initialized. No data to write out.");
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index 83c0037..65b0365 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -347,8 +347,8 @@ public interface ContentManagerLocal {
byte[] getPackageBytes(Subject user, int resourceId, int installedPackageId);
- void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams);
+ void writeBlobOutToStream(OutputStream stream, PackageBits bits, boolean closeStreams);
- void updateBlobStream(Subject user, InputStream stream, PackageBits bits);
+ void updateBlobStream(InputStream stream, PackageBits bits);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
index c8ac4e3..7fae6e0 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
@@ -29,7 +29,6 @@ import org.apache.commons.logging.LogFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.content.Architecture;
import org.rhq.core.domain.content.Package;
import org.rhq.core.domain.content.PackageBits;
@@ -285,8 +284,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
}
FileInputStream fos = new FileInputStream(originalBinary);
- Subject empty = null;
- contentManager.updateBlobStream(empty, fos, packageBits);
+ contentManager.updateBlobStream(fos, packageBits);
packageBits = em.find(PackageBits.class, packageBits.getId());
// test that the bits are available and stored in the DB: Reading the Blob
@@ -298,7 +296,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
assert composite.isPackageBitsInDatabase();
FileOutputStream outputStream = new FileOutputStream(retrieved);
- contentManager.writeBlobOutToStream(empty, outputStream, packageBits, false);
+ contentManager.writeBlobOutToStream(outputStream, packageBits, false);
//Check that db content equal to file system content
String originalDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
commit 408bc20049ff0f06738e70b2dbafdbbd83366fdb
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Thu Jun 24 11:03:02 2010 -0400
BZ-597246: changed StreamUtil.slurp to use Hibernate Blob mechanism, and added unit test for read/write Blob data.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
index 2bf059c..634ebeb 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/content/PackageBits.java
@@ -104,4 +104,5 @@ public class PackageBits implements Serializable {
public void setBits(byte[] bits) {
this.bits = bits;
}
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 244478e..5bae392 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -24,8 +24,11 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -936,7 +939,15 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
try {
PackageBits bits = entityManager.find(PackageBits.class, packageBits.getId());
- bits.setBits(StreamUtil.slurp(bitStream));
+ // bits.setBits(StreamUtil.slurp(bitStream));
+ String pkgName = "(set packageName)";
+ if ((packageVersion != null) && (packageVersion.getGeneralPackage() != null)) {
+ //update it to whatever package name is if we can get to it.
+ pkgName = packageVersion.getGeneralPackage().getName();
+ }
+ bits = loadPackageBits(bitStream, packageVersion.getId(), pkgName, packageVersion.getVersion(),
+ bits);
+ // bits.setBits(StreamUtil.slurp(bitStream));
entityManager.merge(bits);
} finally {
@@ -1227,28 +1238,30 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
newPackageVersion.setDisplayName(existingPackage.getName());
// PackageBits bits = loadPackageBits(packageBitStream);
- // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // use the byte array in the package version to store the bits.
- byte[] packageBits;
- try {
- packageBits = StreamUtil.slurp(packageBitStream);
- } catch (RuntimeException re) {
- throw new RuntimeException("Error reading in the package file", re);
- }
-
- PackageBits bits = new PackageBits();
- try {
- bits.setBits(packageBits);
- } catch (Exception e) {
- log.error("Error saving the package.", e);
- }
+ PackageBits bits = loadPackageBits(packageBitStream, newPackageVersion.getId(), packageName, version, null);
+ // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
+ // // Write the content into the newly created package version. This may eventually move, but for now we'll just
+ // // use the byte array in the package version to store the bits.
+ // byte[] packageBits;
+ // try {
+ // packageBits = StreamUtil.slurp(packageBitStream);
+ // } catch (RuntimeException re) {
+ // throw new RuntimeException("Error reading in the package file", re);
+ // }
+ //
+ // PackageBits bits = new PackageBits();
+ // try {
+ // bits.setBits(packageBits);
+ // } catch (Exception e) {
+ // log.error("Error saving the package.", e);
+ // }
newPackageVersion.setPackageBits(bits);
newPackageVersion.setFileSize((long) bits.getBits().length);
try {
newPackageVersion.setSHA256(new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
- .calcDigestString(packageBits));
+ .calcDigestString(bits.getBits()));
+ // .calcDigestString(packageBits));
} catch (IOException e) {
newPackageVersion.setSHA256(null);
}
@@ -1564,24 +1577,25 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
entityManager.persist(packageVersion);
}
- //get the data and persist/merge packageVersion
- // PackageBits bits = loadPackageBits(packageBitStream);
- // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // use the byte array in the package version to store the bits.
- byte[] packageBits;
- try {
- packageBits = StreamUtil.slurp(packageBitStream);
- } catch (RuntimeException re) {
- throw new RuntimeException("Error reading in the package file", re);
- }
-
- PackageBits bits = new PackageBits();
- try {
- bits.setBits(packageBits);
- } catch (Exception e) {
- log.error("Error savinf the package.", e);
- }
+ //get the data
+ PackageBits bits = loadPackageBits(packageBitStream, packageVersion.getId(), packageName, version, null);
+ // // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
+ // // Write the content into the newly created package version. This may eventually move, but for now we'll just
+ // // use the byte array in the package version to store the bits.
+ // byte[] packageBits;
+ // try {
+ // packageBits = StreamUtil.slurp(packageBitStream);
+ // } catch (RuntimeException re) {
+ // throw new RuntimeException("Error reading in the package file", re);
+ // }
+ //
+ // PackageBits bits = new PackageBits();
+ // // bits = new PackageBits();
+ // try {
+ // bits.setBits(packageBits);
+ // } catch (Exception e) {
+ // log.error("Error savinf the package.", e);
+ // }
packageVersion.setPackageBits(bits);
@@ -1604,26 +1618,177 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
/** Pulls in package bits from the stream. Currently inefficient.
*
* @param packageBitStream
+ * @param packageVersionId
* @return PackageBits ref populated.
*/
- private PackageBits loadPackageBits(InputStream packageBitStream) {
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
+ private PackageBits loadPackageBits(InputStream packageBitStream, int packageVersionId, String packageName,
+ String packageVersion, PackageBits existingPkgBits) {
PackageBits bits = null;
- // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
- // Write the content into the newly created package version. This may eventually move, but for now we'll just
- // use the byte array in the package version to store the bits.
- byte[] packageBits;
- try {
- packageBits = StreamUtil.slurp(packageBitStream);
- } catch (RuntimeException re) {
- throw new RuntimeException("Error reading in the package file", re);
+
+ //use or instantiate PackageBits instance.
+ if (existingPkgBits == null) {
+ bits = new PackageBits();
+ entityManager.persist(bits);
+ } else {
+ bits = existingPkgBits;
}
- bits = new PackageBits();
+ //locate related packageVersion
+ PackageVersion pv = entityManager.find(PackageVersion.class, packageVersionId);
+
+ //associate the two
+ pv.setPackageBits(bits);
+ entityManager.flush(); // push the new package bits row to the DB
+
+ bits = entityManager.find(PackageBits.class, bits.getId());
+
+ Subject user = null;
+
+ //write data from stream into db using Hibernate Blob mechanism
+ updateBlobStream(user, packageBitStream, bits);
+
+ return bits;
+ }
+
+ /** Takes an input stream and copies it into the PackageBits table using Hibernate
+ * Blob mechanism with PreparedStatements. As all content into Bits are not stored as type OID, t
+ *
+ * @param stream
+ */
+ public void updateBlobStream(Subject user, InputStream stream, PackageBits bits) {
+
+ // int resourceId = -1;
+ // if (bits != null) {
+ // resourceId = bits.getId();
+ // }
+ // log.info("Updating data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
+ //
+ // // Check permissions first
+ // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
+ // throw new PermissionException("User [" + user.getName()
+ // + "] does not have permission to update packageBits " + bits + " with resource ID [" + resourceId + "]");
+ // }
+
+ //TODO: are there any db specific limits that we should check/verify here before stuffing
+ // the contents of a stream into the db? Should we just let the db complain and take care of
+ // input validation?
+ if (stream == null) {
+ return; // no stream content to update.
+ }
+ if (bits == null) {
+ bits = new PackageBits();
+ }
+
+ //persist to db if not already
+ if (bits.getId() <= 0) {
+ entityManager.persist(this);
+ }
+
+ //locate the existing PackageBits instance
+ bits = entityManager.find(PackageBits.class, bits.getId());
+
+ ///initialize Bits field so non-empty.
+ bits.setBits(new String("a").getBytes());
+ entityManager.merge(bits);
+ entityManager.flush();
+
+ //Create prepared statements to work with Blobs and hibernate.
+ Connection conn = null;
+ PreparedStatement ps = null;
+ PreparedStatement ps2 = null;
+ DataSource ds = null;
try {
- bits.setBits(packageBits);
+
+ conn = dataSource.getConnection();
+
+ //we are loading the PackageBits saved in the previous step
+ //we need to lock the row which will be updated so we are using FOR UPDATE
+ ps = conn.prepareStatement("SELECT BITS FROM " + PackageBits.TABLE_NAME + " WHERE ID = ? FOR UPDATE");
+ ps.setInt(1, bits.getId());
+ ResultSet rs = ps.executeQuery();
+ if (rs != null) {
+ while (rs.next()) {
+
+ //We can not create a blob directly because BlobImpl from Hibernate is not acceptable
+ //for oracle and Connection.createBlob is not working on postgres.
+ //This blob will be not empty because we saved there a bytes from String("a").
+ Blob blb = rs.getBlob(1);
+
+ //copy the stream to the Blob
+ long transferred = StreamUtil.copy(stream, blb.setBinaryStream(1), false);
+ stream.close();
+
+ //populate the prepared statement for update
+ ps2 = conn.prepareStatement("UPDATE " + PackageBits.TABLE_NAME + " SET bits = ? where id = ?");
+ ps2.setBlob(1, blb);
+ ps2.setInt(2, bits.getId());
+
+ //initiate the update.
+ if (ps2.execute()) {
+ throw new Exception("Unable to upload the package bits to the DB:");
+ }
+ ps2.close();
+ }
+ }
+ ps.close();
+ conn.close();
} catch (Exception e) {
- log.error("Error saving the package.", e);
+ log.error("An error occurred while updating Blob with stream for PackageBits[" + bits.getId() + "], "
+ + e.getMessage());
+ e.printStackTrace();
+ }
+
+ entityManager.merge(bits);
+ entityManager.flush();
+ }
+
+ /**Writes the contents of a the Blob out to the stream passed in.
+ *
+ * @param stream non null stream where contents to be written to.
+ */
+ public void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams) {
+
+ // int resourceId = -1;
+ // if (bits != null) {
+ // resourceId = bits.getId();
+ // }
+ // log.info("Reading data for PackageBits [" + bits + "] with resource ID [" + resourceId + "]");
+ //
+ // // Check permissions first
+ // if (!authorizationManager.hasResourcePermission(user, Permission.MANAGE_CONTENT, resourceId)) {
+ // throw new PermissionException("User [" + user.getName() + "] does not have permission to read packageBits "
+ // + bits + " with resource ID [" + resourceId + "]");
+ // }
+
+ if (stream == null) {
+ return; // no locate to write to
+ }
+ // if ((bits == null) || (bits.getId() <= 0) || bits.getBits() == null) {
+ if ((bits == null) || (bits.getId() <= 0)) {
+ //then PackageBits instance passed in is insufficiently initialized.
+ log.warn("PackageBits insufficiently initialized. No data to write out.");
+ return;
+ }
+ try {
+ //open connection
+ Connection conn = dataSource.getConnection();
+
+ //prepared statement for retrieval of Blob.bits
+ PreparedStatement ps = conn
+ .prepareStatement("SELECT BITS FROM " + PackageBits.TABLE_NAME + " WHERE ID = ?");
+ ps.setInt(1, bits.getId());
+ ResultSet results = ps.executeQuery();
+ if (results.next()) {
+ // results.next();
+ //retrieve the Blob
+ Blob blob = results.getBlob(1);
+ //now copy the contents to the stream passed in
+ StreamUtil.copy(blob.getBinaryStream(), stream, closeStreams);
+ }
+ } catch (Exception ex) {
+ log.error("An error occurred while writing Blob contents out to stream :" + ex.getMessage());
+ ex.printStackTrace();
}
- return bits;
}
-}
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
index fc128a4..83c0037 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerLocal.java
@@ -19,6 +19,7 @@
package org.rhq.enterprise.server.content;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -32,6 +33,7 @@ import org.rhq.core.domain.content.Architecture;
import org.rhq.core.domain.content.ContentServiceRequest;
import org.rhq.core.domain.content.InstalledPackage;
import org.rhq.core.domain.content.Package;
+import org.rhq.core.domain.content.PackageBits;
import org.rhq.core.domain.content.PackageDetailsKey;
import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.content.PackageVersion;
@@ -211,9 +213,8 @@ public interface ContentManagerLocal {
PackageVersion createPackageVersion(String packageName, int packageTypeId, String version, int architectureId,
InputStream packageBitStream);
- PackageVersion getUploadedPackageVersion(String packageName, int packageTypeId, String version,
- int architectureId, InputStream packageBitStream, Map<String, String> packageUploadDetails,
- int newResourceTypeId);
+ PackageVersion getUploadedPackageVersion(String packageName, int packageTypeId, String version, int architectureId,
+ InputStream packageBitStream, Map<String, String> packageUploadDetails, int newResourceTypeId);
/**
* Very simple method that persists the given package version within its own transaction.
@@ -346,4 +347,8 @@ public interface ContentManagerLocal {
byte[] getPackageBytes(Subject user, int resourceId, int installedPackageId);
+ void writeBlobOutToStream(Subject user, OutputStream stream, PackageBits bits, boolean closeStreams);
+
+ void updateBlobStream(Subject user, InputStream stream, PackageBits bits);
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
index b83695f..c8ac4e3 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/content/test/ContentUIManagerBeanTest.java
@@ -18,6 +18,10 @@
*/
package org.rhq.enterprise.server.content.test;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+
import javax.persistence.EntityManager;
import org.apache.commons.logging.Log;
@@ -25,6 +29,7 @@ import org.apache.commons.logging.LogFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.content.Architecture;
import org.rhq.core.domain.content.Package;
import org.rhq.core.domain.content.PackageBits;
@@ -32,7 +37,9 @@ import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.content.PackageVersion;
import org.rhq.core.domain.content.composite.LoadedPackageBitsComposite;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
+import org.rhq.enterprise.server.content.ContentManagerLocal;
import org.rhq.enterprise.server.content.ContentUIManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -52,6 +59,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
private ContentUIManagerLocal contentUIManager;
private SubjectManagerLocal subjectManager;
+ private ContentManagerLocal contentManager;
// Setup --------------------------------------------
@@ -59,6 +67,7 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
public void setupBeforeClass() throws Exception {
contentUIManager = LookupUtil.getContentUIManager();
subjectManager = LookupUtil.getSubjectManager();
+ contentManager = LookupUtil.getContentManager();
}
// Test Cases --------------------------------------------
@@ -214,4 +223,94 @@ public class ContentUIManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().rollback();
}
}
+
+ @Test(enabled = ENABLE_TESTS)
+ public void testPackageBitsBlobStream() throws Throwable {
+ LoadedPackageBitsComposite composite;
+
+ getTransactionManager().begin();
+
+ try {
+ EntityManager em = getEntityManager();
+ Resource resource = SessionTestHelper.createNewResource(em, "testPkgBitsLargeResource");
+ PackageType pkgType = new PackageType("testPkgBitsLargePT", resource.getResourceType());
+ org.rhq.core.domain.content.Package pkg = new Package("testPkgBitsLargeP", pkgType);
+ Architecture arch = new Architecture("testPkgLargeArch");
+ PackageVersion pkgVer = new PackageVersion(pkg, "1", arch);
+
+ em.persist(pkgType);
+ em.persist(pkg);
+ em.persist(arch);
+ em.persist(pkgVer);
+ em.flush();
+
+ // test that no bits are available right now
+ composite = contentUIManager.getLoadedPackageBitsComposite(pkgVer.getId());
+ assert composite != null;
+ assert composite.getPackageVersionId() == pkgVer.getId();
+ assert composite.getPackageBitsId() == null;
+ assert !composite.isPackageBitsAvailable();
+ assert !composite.isPackageBitsInDatabase();
+
+ // pretend we loaded the bits, but we stored them somewhere other then the DB
+ PackageBits packageBits = new PackageBits();
+ em.persist(packageBits);
+ pkgVer.setPackageBits(packageBits);
+ pkgVer = em.merge(pkgVer);
+ em.flush();
+
+ // test that the bits are available, but are not stored in the DB
+ composite = contentUIManager.getLoadedPackageBitsComposite(pkgVer.getId());
+ assert composite != null;
+ assert composite.getPackageVersionId() == pkgVer.getId();
+ assert composite.getPackageBitsId() == packageBits.getId();
+ assert composite.isPackageBitsAvailable();
+ assert !composite.isPackageBitsInDatabase();
+
+ // let's make sure there really is no data in the DB
+ packageBits = em.find(PackageBits.class, packageBits.getId());
+ assert packageBits != null;
+ assert packageBits.getBits() == null;
+
+ // now lets store some bits in the DB using PreparedStatements and BLOB mechanism
+ // to simulate large file transfers where streaming is used instead of reading entire
+ // contents into memory every time.
+
+ //any jar should be fine. Use generated server jar
+ File originalBinary = new File("./target/rhq-enterprise-server.jar");
+ //destination once pulled from db
+ File retrieved = new File("./target/pulled.jar");
+ if (retrieved.exists()) {
+ assertTrue("Unable to delete ./target/pulled.jar for test cleanup.", retrieved.delete());
+ }
+ FileInputStream fos = new FileInputStream(originalBinary);
+
+ Subject empty = null;
+ contentManager.updateBlobStream(empty, fos, packageBits);
+ packageBits = em.find(PackageBits.class, packageBits.getId());
+
+ // test that the bits are available and stored in the DB: Reading the Blob
+ composite = contentUIManager.getLoadedPackageBitsComposite(pkgVer.getId());
+ assert composite != null;
+ assert composite.getPackageVersionId() == pkgVer.getId();
+ assert composite.getPackageBitsId() == packageBits.getId();
+ assert composite.isPackageBitsAvailable();
+ assert composite.isPackageBitsInDatabase();
+
+ FileOutputStream outputStream = new FileOutputStream(retrieved);
+ contentManager.writeBlobOutToStream(empty, outputStream, packageBits, false);
+
+ //Check that db content equal to file system content
+ String originalDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
+ .calcDigestString(originalBinary);
+ String newDigest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(retrieved);
+ assertEquals("Uploaded and retrieved digests differ:", originalDigest, newDigest);
+
+ } catch (Throwable t) {
+ t.printStackTrace();
+ throw t;
+ } finally {
+ getTransactionManager().rollback();
+ }
+ }
}
\ No newline at end of file
13 years, 10 months
[rhq] Branch 'release-3.0.0' - 2 commits - modules/enterprise
by Jay Shaughnessy
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java | 18 ++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
New commits:
commit bfd6f7dbff8de49c9ad47712499f106945002127
Merge: 14cad58... eb5d619...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jun 25 15:47:19 2010 -0400
Merge branch 'release-3.0.0' into release-3.0.0-jay
commit 14cad58515eb7b4787e607df428d01702f31468c
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Jun 25 15:46:21 2010 -0400
[BZ 600543] An interim solution that hopefully will bridge the gap until we
impl BZ 608135. Try to ensure that all plugin config updates in a group
update get a chance to complete (barring a server loss).
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java
index 2efe429..7b92b40 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/job/AbstractGroupConfigurationUpdateJob.java
@@ -82,7 +82,15 @@ public abstract class AbstractGroupConfigurationUpdateJob implements Job {
}
for (Integer childUpdateId : pagedChildUpdateIds) {
- executeConfigurationUpdate(configurationManager, childUpdateId, subject);
+ // failing one update request is not reason to fail all of the remaining updates
+ // so, wrap in a try catch and gather up the errors to subsequently fail the group update. This
+ // will especially benefit group plugin config, which currently executes synchronously.
+ try {
+ executeConfigurationUpdate(configurationManager, childUpdateId, subject);
+ } catch (Exception e) {
+ errorMessages = appendErrorMessages(errorMessages, "Failed Member Update Id=" + childUpdateId,
+ e.toString());
+ }
}
rowsProcessed += pagedChildUpdateIds.size();
@@ -93,12 +101,18 @@ public abstract class AbstractGroupConfigurationUpdateJob implements Job {
pc.setPageNumber(pc.getPageNumber() + 1);
}
} catch (Exception e) {
- errorMessages = ThrowableUtil.getAllMessages(e);
+ errorMessages = appendErrorMessages(errorMessages, "Failed Group Update Id=" + groupConfigurationUpdateId,
+ ThrowableUtil.getAllMessages(e));
} finally {
completeGroupConfigurationUpdate(configurationManager, groupConfigurationUpdateId, errorMessages);
}
}
+ private String appendErrorMessages(String currentMessages, String header, String newMessages) {
+ currentMessages = (null == currentMessages) ? "" : currentMessages + "\n";
+ return currentMessages.concat(" [" + header + ": " + newMessages);
+ }
+
private static String createUniqueJobName(ResourceGroup group, Subject subject, String jobNamePrefix) {
return createJobGroupName(group, jobNamePrefix) + "-" + subject.getName().hashCode() + "-"
+ System.currentTimeMillis();
13 years, 10 months
[rhq] Branch 'release-3.0.0' - modules/enterprise
by Joseph Marques
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java | 96 +++++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java | 9
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java | 7
4 files changed, 65 insertions(+), 49 deletions(-)
New commits:
commit eb5d619298ef5aa1d38c10cf308cca8e119403d3
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 25 15:07:25 2010 -0400
BZ-535671: remove compatible group constructs if dynagroup recalculation converts compat->mixed
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index b944b6e..5e7707d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -91,7 +91,6 @@ import org.rhq.enterprise.server.operation.GroupOperationSchedule;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
-import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
import org.rhq.enterprise.server.util.QueryUtility;
@@ -252,35 +251,6 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
ResourceGroupDeleteException {
ResourceGroup group = getResourceGroupById(subject, groupId, null);
- // for compatible groups, first recursively remove any referring backing groups for auto-clusters
- if (group.getGroupCategory() == GroupCategory.COMPATIBLE) {
- for (ResourceGroup referringGroup : group.getClusterBackingGroups()) {
- deleteResourceGroup(subject, referringGroup.getId());
- }
- }
-
- // unschedule all jobs for this group (only compatible groups have operations, mixed do not)
- if (group.getGroupCategory() == GroupCategory.COMPATIBLE) {
- Subject overlord = subjectManager.getOverlord();
- try {
- List<GroupOperationSchedule> ops = operationManager.findScheduledGroupOperations(overlord, groupId);
-
- for (GroupOperationSchedule schedule : ops) {
- try {
- operationManager.unscheduleGroupOperation(overlord, schedule.getJobId().toString(), groupId);
- } catch (UnscheduleException e) {
- log.warn("Failed to unschedule job [" + schedule + "] for a group being deleted [" + group
- + "]", e);
- }
- }
- } catch (Exception e) {
- log.warn("Failed to get jobs for a group being deleted [" + group
- + "]; will not attempt to unschedule anything", e);
- }
- }
-
- groupAlertDefinitionManager.purgeAllGroupAlertDefinitions(subject, groupId);
-
for (Role doomedRoleRelationship : group.getRoles()) {
group.removeRole(doomedRoleRelationship);
entityManager.merge(doomedRoleRelationship);
@@ -289,20 +259,64 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
// remove all resources in the group
resourceGroupManager.removeAllResourcesFromGroup(subject, groupId);
+ if (group.getGroupCategory() == GroupCategory.COMPATIBLE) {
+ removeCompatibleGroupConstructs(subject, group);
+ }
+
// break resource and plugin configuration update links in order to preserve individual change history
Query q = null;
q = entityManager.createNamedQuery(ResourceConfigurationUpdate.QUERY_DELETE_GROUP_UPDATES_FOR_GROUP);
- q.setParameter("groupId", groupId);
+ q.setParameter("groupId", group.getId());
q.executeUpdate();
q = entityManager.createNamedQuery(PluginConfigurationUpdate.QUERY_DELETE_GROUP_UPDATES_FOR_GROUP);
- q.setParameter("groupId", groupId);
+ q.setParameter("groupId", group.getId());
q.executeUpdate();
entityManager.remove(group);
}
+ /*
+ * TODO: Deletion of all associated group data (except implicit/explicit resource members) should be moved here.
+ * in other words, we don't want Hibernate cascade annotations to remove that history upon deletion of an
+ * entity anymore because there are now two cases where group constructs need to be destroyed:
+ *
+ * 1) compatible group deletion - a group is deleted, all history removed, entity is gone from the system
+ * 2) dynagroup recomputation - a group definition is recalculation, a compatible group turns into a mixed
+ * group, compatible constructs need to be removed, but the entity survives
+ *
+ * For now, this implementation should suffice for -- https://bugzilla.redhat.com/show_bug.cgi?id=535671
+ */
+ private void removeCompatibleGroupConstructs(Subject subject, ResourceGroup group)
+ throws ResourceGroupDeleteException {
+
+ // for compatible groups, first recursively remove any referring backing groups for auto-clusters
+ for (ResourceGroup referringGroup : group.getClusterBackingGroups()) {
+ deleteResourceGroup(subject, referringGroup.getId());
+ }
+
+ Subject overlord = subjectManager.getOverlord();
+ try {
+ List<GroupOperationSchedule> ops = operationManager.findScheduledGroupOperations(overlord, group.getId());
+
+ for (GroupOperationSchedule schedule : ops) {
+ try {
+ operationManager.unscheduleGroupOperation(overlord, schedule.getJobId().toString(), group.getId());
+ } catch (UnscheduleException e) {
+ log
+ .warn("Failed to unschedule job [" + schedule + "] for a group being deleted [" + group + "]",
+ e);
+ }
+ }
+ } catch (Exception e) {
+ log.warn("Failed to get jobs for a group being deleted [" + group
+ + "]; will not attempt to unschedule anything", e);
+ }
+
+ groupAlertDefinitionManager.purgeAllGroupAlertDefinitions(subject, group.getId());
+ }
+
public ResourceGroup getResourceGroupById(Subject user, int id, GroupCategory category)
throws ResourceGroupNotFoundException {
ResourceGroup group = entityManager.find(ResourceGroup.class, id);
@@ -909,7 +923,7 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
}
@SuppressWarnings("unchecked")
- public void setResourceType(int resourceGroupId) {
+ public void setResourceType(int resourceGroupId) throws ResourceGroupDeleteException {
Query query = entityManager.createNamedQuery(ResourceType.QUERY_GET_EXPLICIT_RESOURCE_TYPE_COUNTS_BY_GROUP);
query.setParameter("groupId", resourceGroupId);
@@ -921,16 +935,14 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
Object[] info = (Object[]) results.get(0);
int resourceTypeId = (Integer) info[0];
- try {
- ResourceType type = resourceTypeManager.getResourceTypeById(overlord, resourceTypeId);
-
- resourceGroup.setResourceType(type);
- } catch (ResourceTypeNotFoundException rtnfe) {
- // we just got the resourceTypeId from the database, so it will exist
- // but let's set some reasonable implementation anyway
- resourceGroup.setResourceType(null);
- }
+ ResourceType flyWeightType = new ResourceType();
+ flyWeightType.setId(resourceTypeId);
+ resourceGroup.setResourceType(flyWeightType);
} else {
+ if (resourceGroup.getResourceType() != null) {
+ // converting compatible group to mixed group, remove all corresponding compatible constructs
+ removeCompatibleGroupConstructs(overlord, resourceGroup);
+ }
resourceGroup.setResourceType(null);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
index afac418..5975099 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
@@ -93,7 +93,7 @@ public interface ResourceGroupManagerLocal {
ResourceGroup getByGroupDefinitionAndGroupByClause(int groupDefinitionId, String groupByClause);
- void setResourceType(int resourceGroupId);
+ void setResourceType(int resourceGroupId) throws ResourceGroupDeleteException;
int getExplicitGroupMemberCount(int resourceGroupId);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
index ee0dae9..9a11216 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java
@@ -52,6 +52,7 @@ import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.group.RecursivityChangeType;
+import org.rhq.enterprise.server.resource.group.ResourceGroupDeleteException;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionAlreadyExistsException;
@@ -254,8 +255,9 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
@RequiredPermission(Permission.MANAGE_INVENTORY)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
// required for the recalculation thread
- public void calculateGroupMembership(Subject subject, int groupDefinitionId) throws GroupDefinitionDeleteException,
- GroupDefinitionNotFoundException, InvalidExpressionException, ResourceGroupUpdateException {
+ public void calculateGroupMembership(Subject subject, int groupDefinitionId) throws ResourceGroupDeleteException,
+ GroupDefinitionDeleteException, GroupDefinitionNotFoundException, InvalidExpressionException,
+ ResourceGroupUpdateException {
/*
* even though this method declares to throw it, it should never generate an InvalidExpressionException because
* the definition's expression set was validated before it was persisted. conceivably, if the group definition
@@ -329,7 +331,8 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal {
@RequiredPermission(Permission.MANAGE_INVENTORY)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public Integer calculateGroupMembership_helper(Subject overlord, int groupDefinitionId,
- ExpressionEvaluator.Result result) throws GroupDefinitionNotFoundException, GroupDefinitionNotFoundException {
+ ExpressionEvaluator.Result result) throws ResourceGroupDeleteException, GroupDefinitionNotFoundException,
+ GroupDefinitionNotFoundException {
long startTime = System.currentTimeMillis();
GroupDefinition groupDefinition = getById(groupDefinitionId);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
index b57a35e..d83c77c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerLocal.java
@@ -25,6 +25,7 @@ import org.rhq.core.domain.criteria.ResourceGroupDefinitionCriteria;
import org.rhq.core.domain.resource.group.GroupDefinition;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.resource.group.ResourceGroupDeleteException;
import org.rhq.enterprise.server.resource.group.ResourceGroupUpdateException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionAlreadyExistsException;
import org.rhq.enterprise.server.resource.group.definition.exception.GroupDefinitionCreateException;
@@ -48,11 +49,11 @@ public interface GroupDefinitionManagerLocal {
throws GroupDefinitionAlreadyExistsException, GroupDefinitionUpdateException, InvalidExpressionException,
ResourceGroupUpdateException;
- void calculateGroupMembership(Subject subject, int groupDefinitionId) throws GroupDefinitionDeleteException,
- GroupDefinitionNotFoundException, InvalidExpressionException;
+ void calculateGroupMembership(Subject subject, int groupDefinitionId) throws ResourceGroupDeleteException,
+ GroupDefinitionDeleteException, GroupDefinitionNotFoundException, InvalidExpressionException;
Integer calculateGroupMembership_helper(Subject subject, int groupDefinitionId, ExpressionEvaluator.Result result)
- throws GroupDefinitionNotFoundException, GroupDefinitionNotFoundException;
+ throws ResourceGroupDeleteException, GroupDefinitionNotFoundException, GroupDefinitionNotFoundException;
PageList<GroupDefinition> getGroupDefinitions(Subject subject, PageControl pc);
13 years, 10 months
[rhq] Branch 'release-3.0.0' - 3 commits - modules/plugins
by ips
modules/plugins/augeas/pom.xml | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
New commits:
commit 749156f88d2e834ab5ec835eec4eb4ce3d68aedb
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jun 25 13:27:50 2010 -0400
make sure augeas 0.0.2 jar, not 0.0.1 jar, is copied into plugin jar's lib dir
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 531df2c..915106a 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -17,6 +17,10 @@
<name>RHQ Augeas Plugin</name>
<description>An abstract plugin for configuring resources via Augeas</description>
+ <properties>
+ <augeas.version>0.0.2</augeas.version>
+ </properties>
+
<dependencies>
<dependency>
@@ -30,11 +34,13 @@
<artifactId>rhq-platform-plugin</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
+
+ <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
+
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
@@ -45,7 +51,7 @@
<dependency>
<groupId>net.augeas</groupId>
<artifactId>augeas</artifactId>
- <version>0.0.2</version>
+ <version>${augeas.version}</version>
</dependency>
<dependency>
@@ -79,7 +85,7 @@
<artifactItem>
<groupId>net.augeas</groupId>
<artifactId>augeas</artifactId>
- <version>0.0.1</version>
+ <version>${augeas.version}</version>
</artifactItem>
</artifactItems>
@@ -122,7 +128,6 @@
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.1</version>
<executions>
<execution>
commit 7d42b8feaa0bd3071cf36cf79ea58b07bf7673c9
Merge: ed7b01a... d79a2a8...
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jun 25 13:25:49 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit ed7b01ad0a995bd10219031bc19be268109d1610
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Jun 25 11:25:46 2010 -0400
use augeas.version prop rather than hard-coding Augeas version
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..531df2c 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -60,7 +60,6 @@
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.0</version>
<executions>
<execution>
<id>copy-plugin-libs</id>
@@ -74,7 +73,7 @@
<artifactItem>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
- <version>3.2.2</version>
+ <version>${jna.version}</version>
</artifactItem>
<artifactItem>
@@ -180,7 +179,6 @@
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.0</version>
<executions>
<execution>
<id>copy-commons-io-jar</id>
13 years, 10 months
[rhq] Branch 'release-3.0.0' - 2 commits - modules/enterprise
by Heiko W. Rupp
modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml | 53 +++++-----
1 file changed, 29 insertions(+), 24 deletions(-)
New commits:
commit d79a2a881d4a5c7356ce1cef41845c0612cfab4b
Merge: e0efd15... 3617607...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jun 25 18:13:35 2010 +0200
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit e0efd154e0eac23bb2299b6d0f2241a84fe79522
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jun 25 18:12:10 2010 +0200
BZ 583833 - re-show the Events icon in the MICA section.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
index d492ad6..ea8017a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
@@ -27,7 +27,7 @@
<ui:param name="pageTitle" value="Browse Resources"/>
<ui:param name="selectedTabName" value="Resources.#{param.subtab}" />
<ui:define name="content">
-
+
<a4j:keepAlive beanName="BrowseResourcesUIBean"/>
<a4j:form>
@@ -37,7 +37,7 @@
</a4j:form>
<h:form id="browseResourcesForm">
<input type="hidden" name="subtab" value="${param.subtab}" />
-
+
<p/>
<h:panelGrid columns="3">
<h:outputText value="Search: " />
@@ -48,7 +48,7 @@
<ui:param name="defaultSavedSearchPattern" value="#{param.searchId}" />
</ui:include>
- <a4j:commandButton id="searchButtonJSF" value="GO"
+ <a4j:commandButton id="searchButtonJSF" value="GO"
reRender="browseResourcesDataTable, browseResourcesDataTableScroller"
status="commonStatus"
actionListener="#{BrowseResourcesUIBean.clearDataModel}"
@@ -85,42 +85,47 @@
<onc:select name="selectedItems"
value="#{item.original.resource.id}" />
</rich:column>
-
+
<rich:column>
<onc:quickNav>
<f:param name="id" value="#{item.original.resource.id}"/>
-
+
<onc:icon name="Monitor"
- url="/rhq/resource/monitor/graphs.xhtml"
+ url="/rhq/resource/monitor/graphs.xhtml"
alt="Monitor"
visible="#{monitorEnabled}">
</onc:icon>
-
+
<onc:icon name="Inventory"
- url="/rhq/resource/inventory/view.xhtml"
+ url="/rhq/resource/inventory/view.xhtml"
alt="Inventory"/>
-
+
<onc:icon name="Alert"
- url="/rhq/resource/alert/listAlertDefinitions.xhtml"
- alt="Alerts"
+ url="/rhq/resource/alert/listAlertDefinitions.xhtml"
+ alt="Alerts"
visible="#{monitorEnabled}"/>
-
+
<onc:icon name="Configure"
- url="/rhq/resource/configuration/view.xhtml"
- alt="Configure"
+ url="/rhq/resource/configuration/view.xhtml"
+ alt="Configure"
visible="#{item.original.resourceFacets.configuration}"/>
-
+
<onc:icon name="Operation"
- url="/rhq/resource/operation/resourceOperationScheduleNew.xhtml"
- alt="Operations"
+ url="/rhq/resource/operation/resourceOperationScheduleNew.xhtml"
+ alt="Operations"
visible="#{item.original.resourceFacets.operation}"/>
-
- <onc:icon name="Content"
- url="/rhq/resource/content/view.xhtml"
+
+ <onc:icon name="Events"
+ url="/rhq/resource/events/history.xhtml"
+ alt="Events"
+ visible="#{item.original.resourceFacets.event}"/>
+
+ <onc:icon name="Content"
+ url="/rhq/resource/content/view.xhtml"
alt="Content"
visible="#{item.original.resourceFacets.content}"/>
-
- <!-- Is this necessary? It's being passed for all quick nav urls. -->
+
+ <!-- Is this necessary? It's being passed for all quick nav urls. -->
<f:param name="mode" value="list"/>
</onc:quickNav>
</rich:column>
@@ -132,10 +137,10 @@
</onc:sortableColumnHeader>
</f:facet>
- <onc:disambiguatedResourceName resourceName="#{item.original.resource.name}"
+ <onc:disambiguatedResourceName resourceName="#{item.original.resource.name}"
resourceId="#{item.original.resource.id}" disambiguationReport="#{item}"/>
</rich:column>
-<!--
+<!--
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="r.resourceType.name">
13 years, 10 months
[rhq] Branch 'nagios' - modules/enterprise
by Alexander Kiefer
modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp | 42 ++--------
1 file changed, 12 insertions(+), 30 deletions(-)
New commits:
commit 991934d4d344d2d34e34d052e976c3aab1ae13ca
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jun 25 17:12:22 2010 +0200
Changed jsp Page from explicit usage of NamingService to usage of LookupUtil
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
index 16170ec..f71979c 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
@@ -14,7 +14,8 @@
<%@page import="org.rhq.enterprise.server.resource.ResourceTypeManagerLocal"%>
<%@page import="org.rhq.enterprise.server.resource.ResourceTypeManagerBean"%>
<%@page import="org.apache.commons.logging.*"%>
-<html>
+
+<%@page import="org.rhq.enterprise.server.util.LookupUtil"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ResourceTypeCreator</title>
@@ -41,48 +42,29 @@
<%
final Log log = LogFactory.getLog(this.getClass());
- Properties properties = new Properties();
- properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
- properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
- properties.put(Context.PROVIDER_URL, "jnp://localhost:2099");
-
-
-
-
-
/** Creation of parameters for the new ResourceType */
String resourceTypeName = request.getParameter("resourceTypeName");
if( resourceTypeName != null )
{
//After name of new resourceType has been given
- out.println(resourceTypeName);
+ out.println("Input:" + resourceTypeName);
try
{
- Context context = new InitialContext(properties);
-
- Object ref1 = context.lookup("ResourceMetadataManagerBean/local");
- ResourceMetadataManagerLocal rmml = (ResourceMetadataManagerLocal) javax.rmi.PortableRemoteObject.narrow(ref1, ResourceMetadataManagerLocal.class);
-
- Object ref2 = context.lookup("ResourceTypeManagerBean/local");
- ResourceTypeManagerLocal rtml = (ResourceTypeManagerLocal) javax.rmi.PortableRemoteObject.narrow(ref2, ResourceTypeManagerLocal.class);
-
Plugin plugin;
- plugin = rmml.getPlugin("NagiosMonitor");
-
- out.println("DEBUG OUTPUT");
- out.println(plugin.getName());
+ plugin = LookupUtil.getResourceMetadataManager().getPlugin("NagiosMonitor");
+ out.println("Name of returned plugin: " + plugin.getName());
- //ResourceType parentResourceType = rtml.getResourceTypeByNameAndPlugin("Nagios@127.0.0.1:6557","NagiosMonitor");
- //ResourceType newResourceType = new ResourceType(resourceTypeName, plugin.getName(), ResourceCategory.SERVER, parentResourceType);
+ //Method to get the parent resource Type
+ //Got name and plugin from the rhq_resource_type table in the rhq database
+ ResourceType parentResourceType = LookupUtil.getResourceTypeManager().getResourceTypeByNameAndPlugin("NagiosMonitor","NagiosMonitor");
+ out.println("Name of parent ResourceType: " + parentResourceType.getName());
- //rmml.addNewResourceType(newResourceType);
+ //ResourceType newResourceType = new ResourceType(resourceTypeName, plugin.getName(), ResourceCategory.SERVICE, parentResourceType);
+ //out.println("Name of new ResourceType: " + newResourceType.getName());
+ //LookupUtil.getResourceMetadataManager().addNewResourceType(newResourceType);
}
- catch (NamingException e)
- {
- log.error(e);
- }
catch (NoResultException nre)
{
//NoResultException is thrown if no plugin with spcific name exists
13 years, 10 months
[rhq] Branch 'nagios' - 255 commits - etc/apt etc/cli-scripts etc/samples modules/cli-tests modules/common modules/core modules/enterprise modules/helpers modules/jopr modules/plugins modules/pom.xml modules/test-utils pom.xml release.sh
by Alexander Kiefer
dev/null |binary
etc/apt/pom.xml | 2
etc/cli-scripts/reset_conn_props.js | 240 +
etc/samples/perspectives/sample-perspective/app/pom.xml | 9
etc/samples/perspectives/sample-perspective/app/src/main/java/org/rhq/sample/perspective/WizardBean.java | 22
etc/samples/perspectives/sample-perspective/perspective/pom.xml | 4
modules/cli-tests/pom.xml | 2
modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTest.java | 2
modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTestRunner.java | 2
modules/common/ant-bundle/pom.xml | 2
modules/common/ant-bundle/src/main/java/org/rhq/bundle/ant/type/DeploymentUnitType.java | 1
modules/common/filetemplate-bundle/pom.xml | 2
modules/common/jboss-as/pom.xml | 2
modules/common/pom.xml | 2
modules/core/client-api/pom.xml | 2
modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/discovery/DiscoveryAgentService.java | 2
modules/core/client-api/src/test/resources/log4j.xml | 2
modules/core/comm-api/pom.xml | 2
modules/core/dbutils/pom.xml | 4
modules/core/dbutils/src/main/java/org/rhq/core/db/DatabaseTypeFactory.java | 10
modules/core/dbutils/src/main/java/org/rhq/core/db/H2DatabaseType.java | 2
modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql90DatabaseType.java | 44
modules/core/dbutils/src/main/scripts/dbsetup-build.xml | 2
modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml | 3
modules/core/dbutils/src/main/scripts/dbsetup/dashboard-schema.xml | 28
modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml | 98
modules/core/domain/pom.xml | 2
modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java | 34
modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotificationLog.java | 35
modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java | 193 -
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/EventCriteria.java | 12
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java | 21
modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java | 215 +
modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/DashboardPortlet.java | 170
modules/core/domain/src/main/java/org/rhq/core/domain/event/Event.java | 8
modules/core/domain/src/main/java/org/rhq/core/domain/event/EventDefinition.java | 14
modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementScheduleComposite.java | 4
modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java | 93
modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java | 14
modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java | 109
modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/RecentlyAddedResourceComposite.java | 14
modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java | 36
modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java | 59
modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/AutoGroupCompositeFlyweight.java | 28
modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersAvailabilityHint.java | 68
modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java | 62
modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ResourceGroup.java | 10
modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java | 21
modules/core/domain/src/main/java/org/rhq/core/server/PersistenceUtility.java | 11
modules/core/gui/pom.xml | 2
modules/core/native-system/pom.xml | 2
modules/core/plugin-api/pom.xml | 101
modules/core/plugin-container/pom.xml | 2
modules/core/plugin-container/src/main/java/org/rhq/core/pc/StandaloneContainer.java | 14
modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java | 6
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/DeleteResourceRunner.java | 2
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java | 6
modules/core/plugin-container/src/main/java/org/rhq/core/pc/measurement/MeasurementSenderRunner.java | 16
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/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java | 12
modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java | 4
modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java | 55
modules/enterprise/agent/pom.xml | 2
modules/enterprise/agent/src/main/resources/agent-configuration.xml | 12
modules/enterprise/agentupdate/pom.xml | 2
modules/enterprise/comm/pom.xml | 2
modules/enterprise/gui/base-perspective-jar/pom.xml | 7
modules/enterprise/gui/base-perspective-war/pom.xml | 2
modules/enterprise/gui/content_http-war/pom.xml | 2
modules/enterprise/gui/coregui/pom.xml | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml | 11
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java | 34
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Footer.java | 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java | 34
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java | 129
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java | 45
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionView.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java | 11
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/lookup/ResourceLookupComboBoxItem.java | 63
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java | 43
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/ConfigurablePortlet.java | 34
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/CustomSettingsPortlet.java | 34
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java | 208 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java | 266 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/OldDashboardView.java | 265 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortalLayout.java | 94
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java | 84
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletFactory.java | 20
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletHelpWindow.java | 100
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletSettingsWindow.java | 114
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletView.java | 36
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletViewFactory.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletWindow.java | 182
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java | 21
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java | 103
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/graph/GraphPortlet.java | 118
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformPortletView.java | 161
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java | 19
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedView.java | 22
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryView.java | 20
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java | 26
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MashupPortlet.java | 87
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MessagePortlet.java | 79
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardManager.java | 58
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardStore.java | 58
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredDashboard.java | 77
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredPortlet.java | 109
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/DashboardGWTService.java | 47
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/EventGWTService.java | 59
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java | 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java | 28
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGWTService.java | 19
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java | 312 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTitleBar.java | 195 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java | 146
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeDatasource.java | 329 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java | 42
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java | 1
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java | 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventDatasource.java | 134
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventHistoryView.java | 65
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceScheduledMetricDatasource.java | 153
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java | 77
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java | 42
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java | 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java | 13
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java | 114
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java | 37
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java | 8
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java | 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java | 99
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java | 11
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/DashboardGWTServiceImpl.java | 59
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/EventGWTServiceImpl.java | 65
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java | 55
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java | 148
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java | 5
modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css | 8
modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml | 16
modules/enterprise/gui/coregui/src/main/webapp/css/search.css | 19
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/alert/Flag_blue_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/DEBUG_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/ERROR_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/FATAL_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/INFO_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/WARNING_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_warning_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_warning_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_16.png |binary
modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_24.png |binary
modules/enterprise/gui/coregui/src/main/webapp/js/search.js | 28
modules/enterprise/gui/installer-war/pom.xml | 8
modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java | 51
modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ServerInformation.java | 8
modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/i18n/InstallerI18NResourceKeys.java | 279 -
modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_de.properties | 82
modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_fr.properties | 47
modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties | 69
modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml | 1
modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java | 169
modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.0.xml | 661 +++
modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.1.xml | 663 +++
modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.0.xml | 1916 ++++++++++
modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.1.xml | 1916 ++++++++++
modules/enterprise/gui/pom.xml | 2
modules/enterprise/gui/portal-war/pom.xml | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java | 21
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java | 15
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/SessionAccessServlet.java | 8
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java | 39
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/servlet/HighLowChartServlet.java | 41
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java | 44
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/ListGroupDefinitionsUIBean.java | 23
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/discovery/AutoDiscoveryQueueUIBean.java | 132
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/event/EventHistoryUIBean.java | 16
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/autogroup/AutoGroupUIBean.java | 28
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java | 24
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java | 13
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java | 61
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageComponent.java | 118
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java | 128
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java | 120
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java | 62
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ListChildResourcesUIBean.java | 3
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ManuallyAddChildResourceUIBean.java | 21
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java | 118
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java | 88
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventDetailsAction.java | 18
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventsFormPrepareAction.java | 22
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/DefinitionFormPrepareAction.java | 5
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/config/ConfigMetricsFormPrepareAction.java | 12
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/TimelineAction.java | 25
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java | 35
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/hub/RemoveResourceAction.java | 2
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java | 23
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/autodiscovery/ViewAction.java | 45
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java | 40
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java | 18
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java | 19
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java | 22
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/recentlyApproved/ViewAction.java | 62
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java | 38
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java | 18
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageDecorator.java | 77
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java | 100
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameDecorator.java | 110
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java | 175
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java | 49
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/graphs/EventsTimelineUIBean.java | 22
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/autogroup/ListAutoGroupMeasurementScheduleUIBean.java | 17
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/group/ListResourceGroupMeasurementScheduleUIBean.java | 4
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/resource/ListResourceMeasurementScheduleUIBean.java | 4
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java | 58
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java | 43
modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties | 5
modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-components/inventory-components.xml | 32
modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/inventory-beans.xml | 4
modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-auto-group/measurement-navigation.xml | 7
modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tags/on.component.taglib.xml | 14
modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld | 1840 +++++----
modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp | 99
modules/enterprise/gui/portal-war/src/main/webapp/css/win.css | 14
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_unknown_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_16.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_24.png |binary
modules/enterprise/gui/portal-war/src/main/webapp/js/rhq.js | 5
modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp | 43
modules/enterprise/gui/portal-war/src/main/webapp/portlet/autoDiscovery/View.jsp | 34
modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp | 61
modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp | 9
modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp | 24
modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp | 31
modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp | 18
modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp | 22
modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/ViewAlertNotifications.jsp | 7
modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/config/AlertDefinitionActive.jsp | 2
modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/events/EventEventsJSON.jsp | 5
modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp | 21
modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/events/history.xhtml | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/layout/main.xhtml | 14
modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/graphs.xhtml | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml | 8
modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/tables.xhtml | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/alert/notification/details.xhtml | 18
modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml | 10
modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml | 11
modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response.xhtml | 2
modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/searchInterface.xhtml | 4
modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml | 24
modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml | 48
modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/list.xhtml | 4
modules/enterprise/gui/portal-war/src/main/webapp/rhq/discovery/queue.xhtml | 51
modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/connectionHistory.xhtml | 20
modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml | 32
modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml | 14
modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules.xhtml | 8
modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/navigation/GroupTree.xhtml | 17
modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml | 4
modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml | 50
modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/layout/main-picker.xhtml | 35
modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml | 109
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml | 100
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml | 58
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/history.xhtml | 5
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/schedules.xhtml | 12
modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/navigation/ResourcesTree.xhtml | 8
modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml | 35
modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml | 19
modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/configurationUpdate.xhtml | 8
modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/oobHistory.xhtml | 8
modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/operationHistory.xhtml | 8
modules/enterprise/gui/webdav-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/pom.xml | 3
modules/enterprise/remoting/webservices/pom.xml | 2
modules/enterprise/server/container-lib/pom.xml | 2
modules/enterprise/server/container/pom.xml | 10
modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml | 4
modules/enterprise/server/ear/pom.xml | 2
modules/enterprise/server/jar/pom.xml | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java | 29
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java | 27
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerLocal.java | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java | 28
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerLocal.java | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java | 23
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerLocal.java | 13
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/EntityContext.java | 12
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java | 1
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java | 5
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java | 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerBean.java | 100
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerLocal.java | 33
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java | 50
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java | 510 --
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java | 128
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java | 185
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java | 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java | 109
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java | 122
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerLocal.java | 43
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java | 9
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java | 367 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerLocal.java | 48
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/DataReader.java | 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java | 386 --
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSender.java | 3
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSenderPluginManager.java | 28
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java | 42
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java | 275 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java | 64
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java | 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java | 187
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java | 168
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java | 65
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java | 279 +
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/MutableDisambiguationReport.java | 87
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java | 145
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java | 46
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java | 17
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java | 4
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/framework/ExpressionEvaluator.java | 8
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java | 273 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java | 5
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java | 82
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java | 8
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java | 6
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java | 9
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java | 20
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/AvailabilityManagerTest.java | 4
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/MeasurementBaselineManagerTest.java | 8
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java | 4
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/definition/framework/test/ExpressionEvaluatorTest.java | 46
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java | 17
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java | 10
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceManagerBeanTest.java | 4
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java | 17
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java | 2
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java | 2
modules/enterprise/server/jar/src/test/resources/test/metadata/noTypes.xml | 8
modules/enterprise/server/license-gen/jar/pom.xml | 2
modules/enterprise/server/license-gen/maven-plugin/pom.xml | 2
modules/enterprise/server/plugins/alert-email/pom.xml | 4
modules/enterprise/server/plugins/alert-email/src/main/java/org/rhq/enterprise/server/plugins/alertEmail/EmailSender.java | 3
modules/enterprise/server/plugins/alert-irc/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-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java | 80
modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java | 34
modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java | 100
modules/enterprise/server/plugins/alert-operations/src/main/resources/operations.xhtml | 2
modules/enterprise/server/plugins/alert-roles/pom.xml | 4
modules/enterprise/server/plugins/alert-scriptlang/pom.xml | 7
modules/enterprise/server/plugins/alert-sms/pom.xml | 9
modules/enterprise/server/plugins/alert-snmp/pom.xml | 4
modules/enterprise/server/plugins/alert-subject/pom.xml | 4
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/filetemplate-bundle/pom.xml | 2
modules/enterprise/server/plugins/jboss-software/pom.xml | 2
modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml | 2
modules/enterprise/server/plugins/perspectives/core/pom.xml | 2
modules/enterprise/server/plugins/perspectives/policy/app/pom.xml | 2
modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml | 2
modules/enterprise/server/plugins/perspectives/policy/pom.xml | 2
modules/enterprise/server/plugins/pom.xml | 2
modules/enterprise/server/plugins/rhnhosted/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/sars/agent-sar/pom.xml | 2
modules/enterprise/server/sars/pom.xml | 2
modules/enterprise/server/xml-schemas/pom.xml | 2
modules/helpers/pluginAnnotations/pom.xml | 4
modules/helpers/pluginGen/pom.xml | 4
modules/helpers/pluginGen/src/main/resources/component.ftl | 2
modules/helpers/pom.xml | 2
modules/helpers/rtfilter/pom.xml | 2
modules/jopr/pom.xml | 4
modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml | 2
modules/plugins/aliases/pom.xml | 2
modules/plugins/ant-bundle/pom.xml | 2
modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java | 19
modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java | 275 +
modules/plugins/ant-bundle/src/test/resources/test-bundle-three-archive.zip |binary
modules/plugins/ant-bundle/src/test/resources/test-bundle-three.xml | 36
modules/plugins/ant-bundle/src/test/resources/test-bundle-two-archive.zip |binary
modules/plugins/ant-bundle/src/test/resources/test-bundle-two.xml | 29
modules/plugins/ant-bundle/src/test/resources/test-bundle.xml | 1
modules/plugins/apache/pom.xml | 2
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java | 52
modules/plugins/augeas/pom.xml | 2
modules/plugins/byteman/pom.xml | 4
modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java | 41
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/filetemplate-bundle/src/main/java/org/rhq/plugins/filetemplate/ProcessingRecipeContext.java | 25
modules/plugins/grub/pom.xml | 2
modules/plugins/hardware/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/iptables/pom.xml | 2
modules/plugins/irc/pom.xml | 8
modules/plugins/jboss-as-5/pom.xml | 2
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java | 7
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerOperationsDelegate.java | 31
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/FileContentDelegate.java | 188
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java | 139
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java | 97
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/AbstractDeployer.java | 1
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java | 35
modules/plugins/jboss-as/pom.xml | 2
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java | 108
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/DatasourceComponent.java | 4
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DatasourceConfigurationEditor.java | 125
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DeploymentUtility.java | 7
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java | 1
modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java | 37
modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml | 54
modules/plugins/jboss-cache-v3/pom.xml | 2
modules/plugins/jboss-cache/pom.xml | 2
modules/plugins/jdbctrace/pom.xml | 2
modules/plugins/jira/pom.xml | 2
modules/plugins/jmx/pom.xml | 2
modules/plugins/kickstart/pom.xml | 2
modules/plugins/lsof/pom.xml | 2
modules/plugins/mysql/pom.xml | 2
modules/plugins/netservices/pom.xml | 2
modules/plugins/onewire/pom.xml | 2
modules/plugins/oracle/pom.xml | 2
modules/plugins/perftest/pom.xml | 142
modules/plugins/platform/pom.xml | 2
modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java | 8
modules/plugins/pom.xml | 222 -
modules/plugins/postfix/pom.xml | 2
modules/plugins/postgres/pom.xml | 2
modules/plugins/raw-config-test/pom.xml | 5
modules/plugins/rhq-agent/pom.xml | 2
modules/plugins/rhq-server/pom.xml | 2
modules/plugins/samba/pom.xml | 2
modules/plugins/script/pom.xml | 2
modules/plugins/script2/pom.xml | 2
modules/plugins/services/pom.xml | 2
modules/plugins/snmptrapd/pom.xml | 2
modules/plugins/sshd/pom.xml | 2
modules/plugins/sudoers/pom.xml | 2
modules/plugins/tomcat/pom.xml | 2
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatServerComponent.java | 38
modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java | 75
modules/plugins/tomcat/src/main/resources/META-INF/rhq-plugin.xml | 12
modules/plugins/twitter/pom.xml | 2
modules/plugins/validate-all-plugins/pom.xml | 2
modules/plugins/virt/pom.xml | 3
modules/pom.xml | 2
modules/test-utils/pom.xml | 2
pom.xml | 23
release.sh | 367 +
541 files changed, 17571 insertions(+), 7573 deletions(-)
New commits:
commit f0d4b9dbbdf84497ed86c76c1228a7450de1585b
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jun 25 14:31:41 2010 +0200
Added .jsp Page for ResourceType Input
Modified Beans and Interfaces with some necessary methods
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index 6eed8b4..b780aa5 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<artifactId>rhq-cli-tests</artifactId>
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 0833b2a..987f550 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 7f7127c..871c496 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index d69311c..dd975f2 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index c6a6dab..dac1370 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index ae391f8..1a1de05 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index f52e92d..3ff31f7 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index ee5a55d..9a5ef91 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 700912d..36ad918 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 21ebfa6..51961fa 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index b3a20e2..a507806 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index bc886fe..8c3b228 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index dfcdfde..903c24a 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index 2e5c467..9b70a3f 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index b895d04..791610b 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index 405eaed..16e7c28 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 03f3932..63ebe78 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 342369a..04813c0 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 93931da..5b13274 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index c917be9..c09c937 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index d3c0764..5d22f52 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index 57a30b9..4ad89f1 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index f075eb1..24349f8 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 7cf36cc..91b8095 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 072ac8f..4d9e6e6 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 24bb252..237ef12 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
new file mode 100644
index 0000000..16170ec
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
@@ -0,0 +1,99 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
+<%@page import="javax.naming.*"%>
+<%@page import="javax.ejb.*"%>
+<%@page import="java.rmi.*"%>
+<%@page import="java.util.*"%>
+<%@page import="org.rhq.enterprise.server.resource.metadata.*"%>
+<%@page import="org.rhq.core.domain.plugin.*"%>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<%@page import="org.rhq.core.domain.resource.ResourceType"%>
+<%@page import="org.rhq.core.domain.resource.ResourceCategory"%>
+<%@page import="javax.persistence.NoResultException"%>
+<%@page import="org.rhq.enterprise.server.resource.ResourceTypeManagerLocal"%>
+<%@page import="org.rhq.enterprise.server.resource.ResourceTypeManagerBean"%>
+<%@page import="org.apache.commons.logging.*"%>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>ResourceTypeCreator</title>
+</head>
+<body>
+ <h1>ResourceTypeCreator JSP Page</h1>
+
+ <form action="ResourceTypeCreator.jsp" method="post">
+
+ Enter the name of the new RessourceType:
+ <input type="text" name="resourceTypeName" width="150px" height="35px"><br>
+ <!-- Enter the name of first metric:
+ <input type="text" name="resourceTypeMetric1Input" width="150px" height="35px"><br>
+ Enter the name of second metric:
+ <input type="text" name="resourceTypeMetric2Input" width="150px" height="35px"><br>
+ Enter the name third metric:
+ <input type="text" name="resourceTypeMetric3Input" width="150px" height="35px"><br>
+ -->
+
+ <input type="submit" value="Create new ResourceType">
+
+ </form>
+
+ <%
+ final Log log = LogFactory.getLog(this.getClass());
+
+ Properties properties = new Properties();
+ properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
+ properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
+ properties.put(Context.PROVIDER_URL, "jnp://localhost:2099");
+
+
+
+
+
+ /** Creation of parameters for the new ResourceType */
+ String resourceTypeName = request.getParameter("resourceTypeName");
+
+ if( resourceTypeName != null )
+ {
+ //After name of new resourceType has been given
+ out.println(resourceTypeName);
+
+ try
+ {
+ Context context = new InitialContext(properties);
+
+ Object ref1 = context.lookup("ResourceMetadataManagerBean/local");
+ ResourceMetadataManagerLocal rmml = (ResourceMetadataManagerLocal) javax.rmi.PortableRemoteObject.narrow(ref1, ResourceMetadataManagerLocal.class);
+
+ Object ref2 = context.lookup("ResourceTypeManagerBean/local");
+ ResourceTypeManagerLocal rtml = (ResourceTypeManagerLocal) javax.rmi.PortableRemoteObject.narrow(ref2, ResourceTypeManagerLocal.class);
+
+ Plugin plugin;
+ plugin = rmml.getPlugin("NagiosMonitor");
+
+ out.println("DEBUG OUTPUT");
+ out.println(plugin.getName());
+
+ //ResourceType parentResourceType = rtml.getResourceTypeByNameAndPlugin("Nagios@127.0.0.1:6557","NagiosMonitor");
+ //ResourceType newResourceType = new ResourceType(resourceTypeName, plugin.getName(), ResourceCategory.SERVER, parentResourceType);
+
+ //rmml.addNewResourceType(newResourceType);
+ }
+ catch (NamingException e)
+ {
+ log.error(e);
+ }
+ catch (NoResultException nre)
+ {
+ //NoResultException is thrown if no plugin with spcific name exists
+ log.error(nre);
+ }
+ }
+ else
+ {
+ out.println("Please insert the name of the new ResourceType");
+ }
+ %>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index 095ada1..7788501 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 89f283c..7565a13 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index ee90d58..382e0d0 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 01ed78b..e9dac49 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 3879afd..d758f20 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 393d2e9..5661a50 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 9a2a929..3fe9455 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index d51c61d..88bc708 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 00f7835..61803e7 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index e08f58d..e06d2e5 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index 1cc1b44..b40194b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@ -429,7 +429,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
return;
}
- private void updateTypes(Set<ResourceType> resourceTypes) throws Exception {
+ private void updateTypes(Set<ResourceType> resourceTypes) throws Exception {
// Only process the type if it is a non-runs-inside type (i.e. not a child of some other type X at this same
// level in the type hierarchy). runs-inside types which we skip here will get processed at the next level down
// when we recursively process type X's children.
@@ -512,8 +512,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
private void removeResourceTypes(Subject overlord, Set<ResourceType> candidateTypes,
- Set<ResourceType> typesToBeRemoved)
- throws Exception {
+ Set<ResourceType> typesToBeRemoved) throws Exception {
for (ResourceType candidateType : candidateTypes) {
// Remove obsolete descendant types first.
Set<ResourceType> childTypes = candidateType.getChildResourceTypes();
@@ -533,7 +532,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
private void removeResourceType(Subject overlord, ResourceType existingType) {
- log.info("Removing ResourceType [" + toConciseString(existingType) + "]...");
+ log.info("Removing ResourceType [" + toConciseString(existingType) + "]...");
if (entityManager.contains(existingType)) {
entityManager.refresh(existingType);
@@ -635,8 +634,8 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
ResourceType existingType;
try {
- existingType = resourceTypeManager.getResourceTypeByNameAndPlugin(resourceType.getName(),
- resourceType.getPlugin());
+ existingType = resourceTypeManager.getResourceTypeByNameAndPlugin(resourceType.getName(), resourceType
+ .getPlugin());
} catch (NonUniqueResultException nure) {
log.debug("Found more than one existing ResourceType for " + resourceType);
// TODO: Delete the redundant ResourceTypes to get the DB into a valid state.
@@ -701,8 +700,8 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
// above already took care of any modifications to the ResourceSubCategories themselves).
} else if (newSubCat == null) {
if (oldSubCat != null) {
- log.debug("Metadata update: Subcategory of ResourceType [" + resourceType.getName()
- + "] changed from " + oldSubCat + " to " + newSubCat);
+ log.debug("Metadata update: Subcategory of ResourceType [" + resourceType.getName() + "] changed from "
+ + oldSubCat + " to " + newSubCat);
existingType.setSubCategory(null);
}
} else {
@@ -762,14 +761,14 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
if (log.isDebugEnabled()) {
if (existingType != null) {
log.debug("Setting parent types on existing type: " + existingType + " to ["
- + newType.getParentResourceTypes() + "] - current parent types are ["
- + existingType.getParentResourceTypes() + "]...");
+ + newType.getParentResourceTypes() + "] - current parent types are ["
+ + existingType.getParentResourceTypes() + "]...");
} else {
- log.debug("Setting parent types on new type: " + newType
- + " to [" + newType.getParentResourceTypes() + "]...");
+ log.debug("Setting parent types on new type: " + newType + " to [" + newType.getParentResourceTypes()
+ + "]...");
}
}
-
+
Set<ResourceType> newParentTypes = newType.getParentResourceTypes();
newType.setParentResourceTypes(new HashSet<ResourceType>());
Set<ResourceType> originalExistingParentTypes = new HashSet<ResourceType>();
@@ -778,7 +777,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
for (ResourceType newParentType : newParentTypes) {
try {
- boolean isExistingParent = originalExistingParentTypes.remove(newParentType);
+ boolean isExistingParent = originalExistingParentTypes.remove(newParentType);
if (existingType == null || !isExistingParent) {
ResourceType realParentType = (ResourceType) entityManager.createNamedQuery(
ResourceType.QUERY_FIND_BY_NAME_AND_PLUGIN).setParameter("name", newParentType.getName())
@@ -786,19 +785,19 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
ResourceType type = (existingType != null) ? existingType : newType;
if (existingType != null) {
log.info("Adding ResourceType [" + toConciseString(type) + "] as child of ResourceType ["
- + toConciseString(realParentType) + "]...");
+ + toConciseString(realParentType) + "]...");
}
realParentType.addChildResourceType(type);
}
} catch (NoResultException nre) {
- throw new RuntimeException("Couldn't persist type [" + newType
- + "] because parent [" + newParentType + "] wasn't already persisted.");
+ throw new RuntimeException("Couldn't persist type [" + newType + "] because parent [" + newParentType
+ + "] wasn't already persisted.");
}
}
for (ResourceType obsoleteParentType : originalExistingParentTypes) {
log.info("Removing type [" + toConciseString(existingType) + "] from parent type ["
- + toConciseString(obsoleteParentType) + "]...");
+ + toConciseString(obsoleteParentType) + "]...");
obsoleteParentType.removeChildResourceType(existingType);
moveResourcesToNewParent(existingType, obsoleteParentType, newParentTypes);
}
@@ -810,7 +809,8 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
return (type != null) ? (type.getPlugin() + ":" + type.getName() + "(id=" + type.getId() + ")") : "null";
}
- private void moveResourcesToNewParent(ResourceType existingType, ResourceType obsoleteParentType, Set<ResourceType> newParentTypes) {
+ private void moveResourcesToNewParent(ResourceType existingType, ResourceType obsoleteParentType,
+ Set<ResourceType> newParentTypes) {
Subject overlord = subjectManager.getOverlord();
ResourceCriteria criteria = new ResourceCriteria();
criteria.addFilterResourceTypeId(existingType.getId());
@@ -818,8 +818,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
List<Resource> resources = resourceManager.findResourcesByCriteria(overlord, criteria);
for (Resource resource : resources) {
Resource newParent = null;
- newParentTypes:
- for (ResourceType newParentType : newParentTypes) {
+ newParentTypes: for (ResourceType newParentType : newParentTypes) {
Resource ancestorResource = resource.getParentResource();
while (ancestorResource != null) {
if (ancestorResource.getResourceType().equals(newParentType)) {
@@ -846,7 +845,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
newParent.addChildResource(resource);
} else {
log.debug("We were unable to move " + resource + " from invalid parent " + resource.getParentResource()
- + " to a new valid parent with one of the following types: " + newParentTypes);
+ + " to a new valid parent with one of the following types: " + newParentTypes);
}
}
}
@@ -1507,4 +1506,11 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
return result;
}
+
+ /** Method to add a runtime-created resourceType to an existing plugin */
+ public void addNewResourceType(ResourceType newResourceType) {
+
+ updateType(newResourceType);
+ }
+
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
index 683f287..a1390dd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
@@ -28,6 +28,7 @@ import org.rhq.core.clientapi.descriptor.plugin.PluginDescriptor;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.plugin.Plugin;
import org.rhq.core.domain.resource.ResourceCategory;
+import org.rhq.core.domain.resource.ResourceType;
/**
* Provides functionality surrounding agent plugins and their resource metadata.
@@ -88,4 +89,8 @@ public interface ResourceMetadataManagerLocal {
/** Exists only to have code execute within its own transaction. Not for general consumption. */
void removeObsoleteTypesInNewTransaction(String pluginName);
+
+ /** Method to add a runtime-created resourceType to an existing plugin */
+ void addNewResourceType(ResourceType newResourceType);
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/license-gen/jar/pom.xml b/modules/enterprise/server/license-gen/jar/pom.xml
index 93e7d8a..34b60d2 100644
--- a/modules/enterprise/server/license-gen/jar/pom.xml
+++ b/modules/enterprise/server/license-gen/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/license-gen/maven-plugin/pom.xml b/modules/enterprise/server/license-gen/maven-plugin/pom.xml
index 47d159a..9e09e5e 100644
--- a/modules/enterprise/server/license-gen/maven-plugin/pom.xml
+++ b/modules/enterprise/server/license-gen/maven-plugin/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index b8556e0..3a075f2 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 ac2e280..d269f72 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index c3f248c..151006f 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 0b7664a..d14acc0 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 e6019b8..81bd7a0 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 f13e951..642a25c 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-scriptlang/pom.xml b/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
index ca703ae..98f3449 100644
--- a/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
+++ b/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
@@ -8,7 +8,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-sms/pom.xml b/modules/enterprise/server/plugins/alert-sms/pom.xml
index 57175db..b9a7d73 100644
--- a/modules/enterprise/server/plugins/alert-sms/pom.xml
+++ b/modules/enterprise/server/plugins/alert-sms/pom.xml
@@ -8,7 +8,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index c1689b3..cba512a 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 09f2ddc..ea003e1 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 45280cd..c2d4225 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 abb2e5d..624fc47 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 621f3e5..3b43675 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 da8e8e7..a898542 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 8d1e368..078669d 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index f5fbeb1..9e376f1 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index b7f3be7..ebf41f4 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml b/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml
index d548a5e..314dd71 100644
--- a/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml
index 9a45ada..1a6285a 100644
--- a/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml
@@ -10,7 +10,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/policy/pom.xml b/modules/enterprise/server/plugins/perspectives/policy/pom.xml
index aef65bf..cc5c1e3 100644
--- a/modules/enterprise/server/plugins/perspectives/policy/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/policy/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 07be817..d1ddead 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index c1187d1..d9e4c25 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 9ada86c..2780be7 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 ab4f217..cfc1e80 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 243eed4..ad2c468 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index fe8638e..294e3cf 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 24dd98a..b3010b1 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index e933c81..be13706 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 786cead..76a7271 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 5990106..4751ff3 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index e637aad..42d24be 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 940e46d..84e3bd0 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 154fc0f..b16f2e2 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 99ece1c..583b827 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/jopr/pom.xml b/modules/jopr/pom.xml
index 530a044..b57736f 100644
--- a/modules/jopr/pom.xml
+++ b/modules/jopr/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml b/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
index c198d6c..410ee7d 100644
--- a/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
+++ b/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 0370302..53050ae 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index d7e6d8a..5b62bf3 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index fb850c5..f972e27 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 72d9cc4..4d7c960 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index cb324cc..bb3afe4 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 1082bb3..9e43204 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 9371766..a227d37 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index c72f79a..23c34e7 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 0b85a57..c00e0d7 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index d783ffc..ab541b3 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hardware/pom.xml b/modules/plugins/hardware/pom.xml
index 29d6d11..3e354ff 100644
--- a/modules/plugins/hardware/pom.xml
+++ b/modules/plugins/hardware/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index a7bac31..c73b927 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index ef32374..34e9d64 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 68eae1a..79457bc 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index ad90e83..3fb20f9 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iptables/pom.xml b/modules/plugins/iptables/pom.xml
index ce6d7b8..2ab74e1 100644
--- a/modules/plugins/iptables/pom.xml
+++ b/modules/plugins/iptables/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index def88d2..9dad959 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -9,7 +9,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 2766efd..301b2e5 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 31d5fbc..7264d95 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 b09a9aa..9a3e4b5 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index e9dca27..3051aab 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jdbctrace/pom.xml b/modules/plugins/jdbctrace/pom.xml
index c7ab30c..7c360cd 100644
--- a/modules/plugins/jdbctrace/pom.xml
+++ b/modules/plugins/jdbctrace/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jira/pom.xml b/modules/plugins/jira/pom.xml
index 8e0a879..0705146 100644
--- a/modules/plugins/jira/pom.xml
+++ b/modules/plugins/jira/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 83e3030..d2b77e1 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index a1a61cf..ceb9208 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/lsof/pom.xml b/modules/plugins/lsof/pom.xml
index 0667659..aca2767 100644
--- a/modules/plugins/lsof/pom.xml
+++ b/modules/plugins/lsof/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 5152236..d7c429c 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 67d24a0..e1b7d9c 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/onewire/pom.xml b/modules/plugins/onewire/pom.xml
index 8b2fa39..f822369 100644
--- a/modules/plugins/onewire/pom.xml
+++ b/modules/plugins/onewire/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index be37d2b..0fdd7ad 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 5597a30..9bee8f5 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 2130abe..9415966 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index beab355..f5348c8 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/raw-config-test/pom.xml b/modules/plugins/raw-config-test/pom.xml
index 7489eff..8c8a334 100644
--- a/modules/plugins/raw-config-test/pom.xml
+++ b/modules/plugins/raw-config-test/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq.plugins</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index 3aa3bb6..4d8acd4 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index d0ef9fe..fad5923 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index a338a98..65bc7b9 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 05cb816..9d58eb9 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index ed7473b..6182b58 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/services/pom.xml b/modules/plugins/services/pom.xml
index 0f84fe1..724d3b7 100644
--- a/modules/plugins/services/pom.xml
+++ b/modules/plugins/services/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 89178cc..8f103fe 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index a68e444..69074c5 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 0353f4f..3201921 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 4c93bb3..bbb6089 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index 9adaca6..7a45035 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</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 4f1c4c3..634e1f5 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index c2550aa..136a438 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.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index e363555..632de8e 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 5f96131..ce8a807 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>3.0.0.B04</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
commit 8be2dc778fd0d5e0096721b435fc9cec9b1c2d8f
Merge: e26c467... cd6e06f...
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Tue Jun 22 11:29:41 2010 +0200
Merge branch 'nagios' of ssh://git.fedorahosted.org/git/rhq/rhq into nagios
Conflicts:
modules/core/plugin-api/pom.xml
modules/plugins/perftest/pom.xml
Made necessary merging
diff --cc modules/core/plugin-api/pom.xml
index d9c8d4c,9def010..0000000
deleted file mode 100644,100644
--- a/modules/core/plugin-api/pom.xml
+++ /dev/null
diff --cc modules/plugins/perftest/pom.xml
index 136770c,7e6310b..0000000
deleted file mode 100644,100644
--- a/modules/plugins/perftest/pom.xml
+++ /dev/null
diff --cc modules/plugins/pom.xml
index 4859ad7,79caa80..0000000
deleted file mode 100644,100644
--- a/modules/plugins/pom.xml
+++ /dev/null
commit e26c4678aa2263bdfd24727aa0dc2fb2ce75961b
Merge: d889202... 9a12da1...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 21 15:40:23 2010 -0400
Merge branch 'release-3.0.0' into master-jay
Conflicts:
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
modules/enterprise/server/plugins/alert-email/pom.xml
modules/enterprise/server/plugins/alert-irc/pom.xml
modules/enterprise/server/plugins/alert-microblog/pom.xml
modules/enterprise/server/plugins/alert-mobicents/pom.xml
modules/enterprise/server/plugins/alert-operations/pom.xml
modules/enterprise/server/plugins/alert-roles/pom.xml
modules/enterprise/server/plugins/alert-snmp/pom.xml
modules/enterprise/server/plugins/alert-subject/pom.xml
modules/enterprise/server/plugins/cobbler/pom.xml
modules/helpers/pluginAnnotations/pom.xml
modules/helpers/pluginGen/pom.xml
modules/plugins/hudson/pom.xml
release.sh
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
index 48776a3,761449a..d4a4731
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
@@@ -18,9 -18,12 +18,14 @@@
*/
package org.rhq.enterprise.gui.coregui.client.gwt;
- import org.rhq.core.domain.auth.Subject;
+ import java.util.List;
+ import java.util.Set;
+
+ import com.google.gwt.user.client.rpc.RemoteService;
+ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
+import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
+import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
@@@ -48,15 -42,9 +46,13 @@@ public interface MeasurementDataGWTServ
Set<MeasurementData> findLiveData(int resourceId, int[] definitionIds);
- List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId,
- int[] definitionIds, long beginTime, long endTime, int numPoints);
-
-
- PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end, PageControl pageControl);
+ List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId, int[] definitionIds,
+ long beginTime, long endTime, int numPoints);
+ PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end,
+ PageControl pageControl);
+
+ public PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(MeasurementDefinitionCriteria criteria);
+
+ public PageList<MeasurementSchedule> findMeasurementSchedulesByCriteria(MeasurementScheduleCriteria criteria);
-
}
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
index d2c9cae,0712c75..5749dc4
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
@@@ -18,9 -18,9 +18,11 @@@
*/
package org.rhq.enterprise.gui.coregui.server.gwt;
- import org.rhq.core.domain.auth.Subject;
+ import java.util.List;
+ import java.util.Set;
+
+import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
+import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
@@@ -34,62 -32,35 +36,52 @@@ import org.rhq.enterprise.gui.coregui.c
import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
import org.rhq.enterprise.server.measurement.CallTimeDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
+import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
+import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
- import java.util.List;
- import java.util.Set;
-
/**
* @author Greg Hinkle
*/
public class MeasurementDataGWTServiceImpl extends AbstractGWTServiceImpl implements MeasurementDataGWTService {
++ private static final long serialVersionUID = 1L;
++
private MeasurementDataManagerLocal dataManager = LookupUtil.getMeasurementDataManager();
private CallTimeDataManagerLocal callTimeDataManager = LookupUtil.getCallTimeDataManager();
+ private MeasurementScheduleManagerLocal scheduleManager = LookupUtil.getMeasurementScheduleManager();
+ private MeasurementDefinitionManagerLocal definitionManager = LookupUtil.getMeasurementDefinitionManager();
+
-
public List<MeasurementDataTrait> findCurrentTraitsForResource(int resourceId, DisplayType displayType) {
- return SerialUtility.prepare(
- dataManager.findCurrentTraitsForResource(getSessionSubject(), resourceId, displayType),
- "MeasurementDataService.findCurrentTraitsForResource");
+ return SerialUtility.prepare(dataManager.findCurrentTraitsForResource(getSessionSubject(), resourceId,
+ displayType), "MeasurementDataService.findCurrentTraitsForResource");
}
-
public Set<MeasurementData> findLiveData(int resourceId, int[] definitionIds) {
- return SerialUtility.prepare(
- dataManager.findLiveData(getSessionSubject(), resourceId, definitionIds),
- "MeasurementDataService.findLiveData");
+ return SerialUtility.prepare(dataManager.findLiveData(getSessionSubject(), resourceId, definitionIds),
+ "MeasurementDataService.findLiveData");
}
-
- public List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId, int[] definitionIds, long beginTime, long endTime, int numPoints) {
- return SerialUtility.prepare(
- dataManager.findDataForResource(
- getSessionSubject(), resourceId, definitionIds, beginTime, endTime, numPoints),
- "MeasurementDataService.findDataForResource");
+ public List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId, int[] definitionIds,
+ long beginTime, long endTime, int numPoints) {
+ return SerialUtility.prepare(dataManager.findDataForResource(getSessionSubject(), resourceId, definitionIds,
+ beginTime, endTime, numPoints), "MeasurementDataService.findDataForResource");
}
- public PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end, PageControl pageControl) {
- return SerialUtility.prepare(
- callTimeDataManager.findCallTimeDataForResource(getSessionSubject(), scheduleId, start, end, pageControl),
- "MeasurementDataService.findCallTimeDataForResource");
+ public PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end,
+ PageControl pageControl) {
+ return SerialUtility.prepare(callTimeDataManager.findCallTimeDataForResource(getSessionSubject(), scheduleId,
+ start, end, pageControl), "MeasurementDataService.findCallTimeDataForResource");
}
+
-
+ public PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(MeasurementDefinitionCriteria criteria) {
- return SerialUtility.prepare(
- definitionManager.findMeasurementDefinitionsByCriteria(getSessionSubject(), criteria),
- "MeasurementDataService.findMeasurementDefinintionsByCriteria");
++ return SerialUtility.prepare(definitionManager.findMeasurementDefinitionsByCriteria(getSessionSubject(),
++ criteria), "MeasurementDataService.findMeasurementDefinintionsByCriteria");
+ }
+
+ public PageList<MeasurementSchedule> findMeasurementSchedulesByCriteria(MeasurementScheduleCriteria criteria) {
- return SerialUtility.prepare(
- scheduleManager.findSchedulesByCriteria(getSessionSubject(), criteria),
- "MeasurementDataService.findMeasurementSchedulesByCriteria");
++ return SerialUtility.prepare(scheduleManager.findSchedulesByCriteria(getSessionSubject(), criteria),
++ "MeasurementDataService.findMeasurementSchedulesByCriteria");
+ }
}
diff --cc release.sh
index 186fe1b,32bd549..32bd549
mode 100755,100755..100644
--- a/release.sh
+++ b/release.sh
commit 9a12da18cce84b6b0770c2b0ee2fc1ab1c15bcaf
Merge: e24f75a... 22e6fee...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 21 14:56:59 2010 -0400
Merge branch 'release-3.0.0' into release-3.0.0-jay
commit e24f75a56fa6dabe7ee32216dd5d27b83c1e8834
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 21 14:55:36 2010 -0400
[BZ 604790] avoid timing issue by forcing dest create before version select
[BZ 605336] allow multiple executions of dest create step due to use of the
Previous button use.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java
index 4734122..5643bd3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/GetDestinationStep.java
@@ -47,6 +47,7 @@ public class GetDestinationStep implements WizardStep {
DynamicForm valForm = new DynamicForm();
private SinglePlatformResourceGroupSelector selector;
private BundleDestination dest = new BundleDestination();
+ private boolean createInProgress = false;
public GetDestinationStep(BundleDeployWizard wizard) {
this.wizard = wizard;
@@ -125,14 +126,42 @@ public class GetDestinationStep implements WizardStep {
public boolean nextPage() {
- if (!valForm.validate()) {
+ if (!valForm.validate() || createInProgress) {
return false;
}
+ // protect against multiple calls to create if the user clicks Next multiple times.
+ createInProgress = true;
+
+ // protect against re-execution of this step via the "Previous" button. If we had created
+ // a dest previously it must be deleted before we try to create a new one.
+ if (wizard.isNewDestination() && (null != wizard.getDestination())) {
+ bundleServer.deleteBundleDestination(wizard.getDestination().getId(), //
+ new AsyncCallback<Void>() {
+ public void onSuccess(Void voidReturn) {
+ createDestination();
+ }
+
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError(
+ "Failed to delete new destination in nextPage: " + caught.getMessage(), caught);
+ // try anyway and potentially fail again from there
+ createDestination();
+ }
+ });
+ } else {
+ createDestination();
+ }
+
+ return false;
+ }
+
+ // this will advance or decrement the step depending on creation success or failure
+ private void createDestination() {
int selectedGroup = (Integer) this.valForm.getValue("group");
- bundleServer.createBundleDestination(wizard.getBundleId(), this.dest.getName(), this.dest.getDescription(),
- this.dest.getDeployDir(), selectedGroup, //
+ bundleServer.createBundleDestination(wizard.getBundleId(), dest.getName(), dest.getDescription(), dest
+ .getDeployDir(), selectedGroup, //
new AsyncCallback<BundleDestination>() {
public void onSuccess(BundleDestination result) {
wizard.setDestination(result);
@@ -140,15 +169,17 @@ public class GetDestinationStep implements WizardStep {
CoreGUI.getMessageCenter().notify(
new Message("Created destination [" + result.getName() + "] description ["
+ result.getDescription() + "]", Severity.Info));
+ createInProgress = false;
+ wizard.getView().incrementStep();
}
public void onFailure(Throwable caught) {
- CoreGUI.getErrorHandler().handleError("Failed to create destination: " + caught.getMessage(),
- caught);
+ CoreGUI.getErrorHandler().handleError(
+ "Failed to create destination. (Note, for an existing destination deploy from the Destination view) : "
+ + caught.getMessage(), caught);
+ createInProgress = false;
wizard.getView().decrementStep();
}
});
-
- return true;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java
index 84bc7b4..c57bb49 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/deploy/SelectBundleVersionStep.java
@@ -119,7 +119,7 @@ public class SelectBundleVersionStep implements WizardStep {
public void onSuccess(PageList<BundleVersion> result) {
bundleVersions = result;
- if (bundleVersions.isEmpty()) {
+ if (null == bundleVersions || bundleVersions.isEmpty()) {
onFailure(new IllegalArgumentException("No bundle versions defined for bundle."));
}
commit 22e6fee94ca7f2aabd2defad3922b04544488980
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 14:23:31 2010 -0400
BZ-603899: fix the overly aggressive authorization for the resource browser
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java
index 28494f4..d499979 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java
@@ -85,7 +85,8 @@ public class BrowseResourcesUIBean extends PagedDataTableUIBean {
if (search != null && !search.trim().equals("")) {
criteria.setSearchExpression(search);
}
- criteria.fetchParentResource(true);
+ // lineage info is now provided by the disambiguation stuff
+ // criteria.fetchParentResource(true);
PageList<ResourceComposite> results;
results = resourceManager.findResourceCompositesByCriteria(getSubject(), criteria);
commit 33fb389b15afe8a396eaa1340854fffcb451025b
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Jun 21 14:12:24 2010 -0400
add "clean" unit test for bundle upgrade
diff --git a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
index 58d922f..e3ec252 100644
--- a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
+++ b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
@@ -108,6 +108,14 @@ public class AntBundlePluginComponentTest {
}
public void testAntBundleUpgrade() throws Exception {
+ upgrade(false);
+ }
+
+ public void testAntBundleCleanUpgrade() throws Exception {
+ upgrade(true);
+ }
+
+ private void upgrade(boolean clean) throws Exception {
testAntBundleInitialInstall(); // install a bundle first
cleanPluginDirs(); // clean everything but the dest dir - we want to upgrade the destination
prepareBeforeTestMethod(); // prepare for our new test
@@ -167,6 +175,7 @@ public class AntBundlePluginComponentTest {
request.setBundleFilesLocation(this.bundleFilesDir);
request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
request.setBundleManagerProvider(new MockBundleManagerProvider());
+ request.setCleanDeployment(clean);
BundleDeployResult results = plugin.deployBundle(request);
@@ -190,8 +199,13 @@ public class AntBundlePluginComponentTest {
assert oneFile.exists() : "one file missing";
assert twoFile.exists() : "two file missing";
assert threeFile.exists() : "three file missing";
- assert ignoredFile.exists() : "ignored file wasn't ignored, it was deleted";
- assert !extraFile.exists() : "extra file ignored, but it should have been deleted/backed up";
+ if (clean) {
+ assert !ignoredFile.exists() : "ignored file should have been deleted due to clean deployment request";
+ assert !extraFile.exists() : "extra file should have been deleted due to clean deployment request";
+ } else {
+ assert ignoredFile.exists() : "ignored file wasn't ignored, it was deleted";
+ assert !extraFile.exists() : "extra file ignored, but it should have been deleted/backed up";
+ }
assert readFile(oneFile).startsWith(onePropValue);
assert readFile(twoFile).startsWith("@@two.prop(a)@");
assert readFile(threeFile).startsWith(threePropValue);
@@ -205,8 +219,11 @@ public class AntBundlePluginComponentTest {
DeploymentProperties currentProps = metadata.getCurrentDeploymentProperties();
assert deploymentProps.equals(currentProps);
+ // check the backup directory - note, clean flag is irrelevent when determining what should be backed up
File backupDir = metadata.getDeploymentBackupDirectory(deployment.getId());
File extraBackupFile = new File(backupDir, extraDir.getName() + File.separatorChar + extraFile.getName());
+ File ignoredBackupFile = new File(backupDir, ignoreDir.getName() + File.separatorChar + ignoredFile.getName());
+ assert !ignoredBackupFile.exists() : "ignored file was backed up but it should not have been";
assert extraBackupFile.exists() : "extra file was not backed up";
assert "extra".equals(new String(StreamUtil.slurp(new FileInputStream(extraBackupFile)))) : "bad backup of extra";
commit 349ea8691296052a4012e5fd32979cfb04a07492
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 13:53:15 2010 -0400
BZ-574045: prevent "bad" numeric values making their way to the server
* without this fix, bad values will bomb the metric compression routines
* log a warning and identifying information when metrics must be dropped
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/measurement/MeasurementSenderRunner.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/measurement/MeasurementSenderRunner.java
index 3f062df..27dfb92 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/measurement/MeasurementSenderRunner.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/measurement/MeasurementSenderRunner.java
@@ -23,12 +23,14 @@
package org.rhq.core.pc.measurement;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import java.util.concurrent.Callable;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
@@ -52,6 +54,7 @@ public class MeasurementSenderRunner implements Callable<MeasurementReport>, Run
}
filterUnchangedTraits(report);
+ cleanseInvalidNumericValues(report);
this.measurementManager.perMinuteItizeData(report);
if (report.getDataCount() > 0) {
@@ -83,6 +86,19 @@ public class MeasurementSenderRunner implements Callable<MeasurementReport>, Run
report.getTraitData().removeAll(duplicates);
}
+ private void cleanseInvalidNumericValues(MeasurementReport report) {
+ Iterator<MeasurementDataNumeric> iter = report.getNumericData().iterator();
+ while (iter.hasNext()) {
+ MeasurementDataNumeric numeric = iter.next();
+ Double v = numeric.getValue();
+ if (v == null || v.isInfinite() || v.isNaN()) {
+ LOG.warn("Numeric " + numeric.getName() + " with id " + numeric.getScheduleId()
+ + " is invalid, value was '" + v + "'");
+ iter.remove();
+ }
+ }
+ }
+
public void run() {
try {
call();
commit 387a53cd045b390d289c00b668782540b745d097
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Jun 21 13:02:30 2010 -0400
unit test to confirm ant bundle upgrade works
diff --git a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
index 699ce1c..58d922f 100644
--- a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
+++ b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
@@ -22,6 +22,7 @@
*/
package org.rhq.plugins.ant;
+import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -79,7 +80,7 @@ public class AntBundlePluginComponentTest {
}
@BeforeMethod
- public void beforeMethod() throws Exception {
+ public void prepareBeforeTestMethod() throws Exception {
if (!this.tmpDir.mkdirs()) {
throw new IllegalStateException("Failed to create temp dir '" + this.tmpDir + "'.");
}
@@ -96,16 +97,130 @@ public class AntBundlePluginComponentTest {
}
@AfterMethod(alwaysRun = true)
- public void cleanDirs() {
+ public void cleanPluginDirs() {
FileUtil.purge(this.tmpDir, true);
FileUtil.purge(this.bundleFilesDir, true);
+ }
+
+ @AfterMethod(alwaysRun = true)
+ public void cleanDestDir() {
FileUtil.purge(this.destDir, true);
}
+ public void testAntBundleUpgrade() throws Exception {
+ testAntBundleInitialInstall(); // install a bundle first
+ cleanPluginDirs(); // clean everything but the dest dir - we want to upgrade the destination
+ prepareBeforeTestMethod(); // prepare for our new test
+
+ // deploy upgrade and test it
+ ResourceType resourceType = new ResourceType("testSimpleBundle2Type", "plugin", ResourceCategory.SERVER, null);
+ BundleType bundleType = new BundleType("testSimpleBundle2BType", resourceType);
+ Repo repo = new Repo("test-bundle-two");
+ PackageType packageType = new PackageType("test-bundle-two", resourceType);
+ Bundle bundle = new Bundle("test-bundle-two", bundleType, repo, packageType);
+ BundleVersion bundleVersion = new BundleVersion("test-bundle-two", "3.0", bundle,
+ getRecipeFromFile("test-bundle-three.xml"));
+ BundleDestination destination = new BundleDestination(bundle, "testSimpleBundle2Dest", new ResourceGroup(
+ "testSimpleBundle2Group"), this.destDir.getAbsolutePath());
+
+ Configuration config = new Configuration();
+ String customPropName = "custom.prop";
+ String customPropValue = "DEF";
+ String onePropName = "one.prop";
+ String onePropValue = "one-one-one";
+ String threePropName = "three.prop";
+ String threePropValue = "333";
+ config.put(new PropertySimple(customPropName, customPropValue));
+ config.put(new PropertySimple(onePropName, onePropValue));
+ config.put(new PropertySimple(threePropName, threePropValue));
+
+ BundleDeployment deployment = new BundleDeployment();
+ deployment.setId(456);
+ deployment.setName("test bundle 3 deployment name - upgrades test bundle 2");
+ deployment.setBundleVersion(bundleVersion);
+ deployment.setConfiguration(config);
+ deployment.setDestination(destination);
+
+ // copy the test archive file to the bundle files dir
+ FileUtil.copyFile(new File("src/test/resources/test-bundle-three-archive.zip"), new File(this.bundleFilesDir,
+ "test-bundle-three-archive.zip"));
+
+ // create test.properties file in the bundle files dir
+ File file1 = new File(this.bundleFilesDir, "test.properties");
+ Properties props = new Properties();
+ props.setProperty(customPropName, "@@" + customPropName + "@@");
+ FileOutputStream outputStream = new FileOutputStream(file1);
+ props.store(outputStream, "test.properties comment");
+ outputStream.close();
+
+ // create some additional files - note: receipe says to ignore "ignore/**"
+ File ignoreDir = new File(this.destDir, "ignore");
+ File extraDir = new File(this.destDir, "extra");
+ ignoreDir.mkdirs();
+ extraDir.mkdirs();
+ File ignoredFile = new File(ignoreDir, "ignore-file.txt");
+ File extraFile = new File(extraDir, "extra-file.txt");
+ FileUtil.writeFile(new ByteArrayInputStream("ignore".getBytes()), ignoredFile);
+ FileUtil.writeFile(new ByteArrayInputStream("extra".getBytes()), extraFile);
+
+ BundleDeployRequest request = new BundleDeployRequest();
+ request.setBundleFilesLocation(this.bundleFilesDir);
+ request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
+ request.setBundleManagerProvider(new MockBundleManagerProvider());
+
+ BundleDeployResult results = plugin.deployBundle(request);
+
+ assertResultsSuccess(results);
+
+ // test that the prop was replaced in raw file test.properties
+ Properties realizedProps = new Properties();
+ realizedProps.load(new FileInputStream(new File(this.destDir, "config/test.properties")));
+ assert customPropValue.equals(realizedProps.getProperty(customPropName)) : "didn't replace prop";
+
+ // test that the archive was extracted properly. These are the files in the archive or removed from original:
+ // REMOVED: zero-file.txt
+ // one/one-file.txt (content: "@@one.prop(a)@") <-- recipe says this is to be replaced
+ // two/two-file.txt (content: "@@two.prop(a)@") <-- recipe does not say to replace this
+ // three/three-file.txt (content: "@@three.prop(a)@") <-- recipe says this is to be replaced
+ File zeroFile = new File(this.destDir, "zero-file.txt");
+ File oneFile = new File(this.destDir, "one/one-file.txt");
+ File twoFile = new File(this.destDir, "two/two-file.txt");
+ File threeFile = new File(this.destDir, "three/three-file.txt");
+ assert !zeroFile.exists() : "zero file should have been removed during upgrade";
+ assert oneFile.exists() : "one file missing";
+ assert twoFile.exists() : "two file missing";
+ assert threeFile.exists() : "three file missing";
+ assert ignoredFile.exists() : "ignored file wasn't ignored, it was deleted";
+ assert !extraFile.exists() : "extra file ignored, but it should have been deleted/backed up";
+ assert readFile(oneFile).startsWith(onePropValue);
+ assert readFile(twoFile).startsWith("@@two.prop(a)@");
+ assert readFile(threeFile).startsWith(threePropValue);
+
+ DeploymentsMetadata metadata = new DeploymentsMetadata(this.destDir);
+ DeploymentProperties deploymentProps = metadata.getDeploymentProperties(deployment.getId());
+ assert deploymentProps.getDeploymentId() == deployment.getId();
+ assert deploymentProps.getBundleName().equals(bundle.getName());
+ assert deploymentProps.getBundleVersion().equals(bundleVersion.getVersion());
+
+ DeploymentProperties currentProps = metadata.getCurrentDeploymentProperties();
+ assert deploymentProps.equals(currentProps);
+
+ File backupDir = metadata.getDeploymentBackupDirectory(deployment.getId());
+ File extraBackupFile = new File(backupDir, extraDir.getName() + File.separatorChar + extraFile.getName());
+ assert extraBackupFile.exists() : "extra file was not backed up";
+ assert "extra".equals(new String(StreamUtil.slurp(new FileInputStream(extraBackupFile)))) : "bad backup of extra";
+
+ DeploymentProperties previousProps = metadata.getPreviousDeploymentProperties(123); // testAntBundleInitialInstall created id 123
+ assert previousProps != null : "There should be previous deployment metadata";
+ assert previousProps.getDeploymentId() == 123 : "bad previous deployment metadata";
+ assert previousProps.getBundleName().equals(deploymentProps.getBundleName());
+ assert previousProps.getBundleVersion().equals("2.5"); // testAntBundleInitialInstall deployed version 2.5
+ }
+
/**
* Test deployment of an RHQ bundle recipe with archive file and raw file
*/
- public void testAntBundleTwo() throws Exception {
+ public void testAntBundleInitialInstall() throws Exception {
ResourceType resourceType = new ResourceType("testSimpleBundle2Type", "plugin", ResourceCategory.SERVER, null);
BundleType bundleType = new BundleType("testSimpleBundle2BType", resourceType);
Repo repo = new Repo("test-bundle-two");
diff --git a/modules/plugins/ant-bundle/src/test/resources/test-bundle-three-archive.zip b/modules/plugins/ant-bundle/src/test/resources/test-bundle-three-archive.zip
new file mode 100644
index 0000000..86ce537
Binary files /dev/null and b/modules/plugins/ant-bundle/src/test/resources/test-bundle-three-archive.zip differ
diff --git a/modules/plugins/ant-bundle/src/test/resources/test-bundle-three.xml b/modules/plugins/ant-bundle/src/test/resources/test-bundle-three.xml
new file mode 100644
index 0000000..40c0ec3
--- /dev/null
+++ b/modules/plugins/ant-bundle/src/test/resources/test-bundle-three.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+
+<project name="test-bundle-three-recipe" default="main" xmlns:rhq="antlib:org.rhq.bundle">
+
+ <echo>test-bundle-3 basedir=${basedir}</echo>
+
+ <property name="propname1" value="one.prop" />
+
+ <rhq:bundle name="test-bundle-two" version="3.0" description="this upgrades test bundle two">
+
+ <rhq:input-property name="${propname1}" />
+ <rhq:input-property name="custom.prop" />
+ <rhq:input-property name="three.prop" />
+
+ <rhq:deployment-unit name="dunit">
+ <rhq:file name="test.properties" destinationFile="config/test.properties" replace="true"/>
+ <rhq:archive name="test-bundle-three-archive.zip">
+ <rhq:replace>
+ <rhq:fileset>
+ <include name="one/**"/>
+ <include name="three/**"/>
+ </rhq:fileset>
+ </rhq:replace>
+ </rhq:archive>
+ <rhq:ignore>
+ <rhq:fileset>
+ <include name="ignore/**"/>
+ </rhq:fileset>
+ </rhq:ignore>
+ </rhq:deployment-unit>
+
+ </rhq:bundle>
+
+ <target name="main"/>
+
+</project>
commit 951dfe9d075a5dc3d200aaeff14e46a7d53d30d5
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 10:44:28 2010 -0400
BZ-606387: fix metric display summary values for autoGroups/resourceGroups
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
index ed285a5..704042d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
@@ -502,7 +502,7 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
log.warn("No metric schedules found for def=[" + definition + "] and " + context
+ ", using empty aggregate");
} else {
- aggregate = dataUtil.getAggregateByContext(begin, end, context);
+ aggregate = dataUtil.getAggregateByDefinitionAndContext(begin, end, definitionId, context);
}
if (aggregate.isEmpty()) {
if (log.isTraceEnabled()) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
index 9778d35..f855eff 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
@@ -376,8 +376,8 @@ public class MeasurementDataManagerUtility {
return measurementAggregate;
}
- public MeasurementAggregate getAggregateByContext(long beginTime, long endTime, EntityContext context)
- throws MeasurementNotFoundException {
+ public MeasurementAggregate getAggregateByDefinitionAndContext(long beginTime, long endTime, int definitionId,
+ EntityContext context) throws MeasurementNotFoundException {
Connection myConnection = null;
PreparedStatement ps = null;
@@ -391,8 +391,9 @@ public class MeasurementDataManagerUtility {
scheduleSubQuery = "" //
+ "SELECT innerSchedule.id \n" //
+ " FROM rhq_measurement_sched innerSchedule \n" //
- + " WHERE innerSchedule.resource_id = ? \n";
- bindParams = new Object[] { context.getResourceId() };
+ + " WHERE innerSchedule.definition = ? \n" //
+ + " AND innerSchedule.resource_id = ? \n";
+ bindParams = new Object[] { definitionId, context.getResourceId() };
} else if (context.category == EntityContext.Category.ResourceGroup) {
scheduleSubQuery = "" //
@@ -400,8 +401,9 @@ public class MeasurementDataManagerUtility {
+ " FROM rhq_measurement_sched innerSchedule \n" //
+ " JOIN rhq_resource_group_res_exp_map groupMap \n" //
+ " ON innerSchedule.resource_id = groupMap.resource_id \n" //
- + " WHERE groupMap.resource_group_id = ? \n";
- bindParams = new Object[] { context.getGroupId() };
+ + " WHERE innerSchedule.definition = ? \n" //
+ + " AND groupMap.resource_group_id = ? \n";
+ bindParams = new Object[] { definitionId, context.getGroupId() };
} else if (context.category == EntityContext.Category.AutoGroup) {
scheduleSubQuery = "" //
@@ -409,9 +411,10 @@ public class MeasurementDataManagerUtility {
+ " FROM rhq_measurement_sched innerSchedule \n" //
+ " JOIN rhq_resource innerRes \n"//
+ " ON innerSchedule.resource_id = innerRes.id \n"//
- + " WHERE innerRes.parent_resource_id = ? \n"//
+ + " WHERE innerSchedule.definition = ? \n" //
+ + " AND innerRes.parent_resource_id = ? \n"//
+ " AND innerRes.resource_type_id = ? \n";
- bindParams = new Object[] { context.getParentResourceId(), context.getResourceTypeId() };
+ bindParams = new Object[] { definitionId, context.getParentResourceId(), context.getResourceTypeId() };
}
commit 05e4759fd8a557a2cdfacf82986e3f7017e46e8a
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 10:12:42 2010 -0400
BZ-606387: fix "Group Members Reporting" column for monitor>tables sub-tab
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
index 06296bd..ed285a5 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
@@ -453,6 +453,7 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
for (int definitionId : measurementDefinitionIds) {
MeasurementScheduleCriteria criteria = new MeasurementScheduleCriteria();
+ criteria.addFilterDefinitionIds(definitionId);
PageList<MeasurementSchedule> theSchedules = scheduleManager.findSchedulesByCriteria(subject, criteria);
int totalScheduleCount = theSchedules.getTotalSize();
commit fd915d01120f5dd6b52c67c4943a7d605f7d45fe
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 10:01:50 2010 -0400
cosmetic fix to the ordering of statements
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
index a553d8b..9778d35 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
@@ -368,9 +368,9 @@ public class MeasurementDataManagerUtility {
}
private MeasurementAggregate fillAggregateFromResultSet(ResultSet rs) throws SQLException {
- Double min = getDoubleOrNanFromResultSet(rs, 4);
Double avg = getDoubleOrNanFromResultSet(rs, 2);
Double max = getDoubleOrNanFromResultSet(rs, 3);
+ Double min = getDoubleOrNanFromResultSet(rs, 4);
MeasurementAggregate measurementAggregate = new MeasurementAggregate(min, avg, max);
return measurementAggregate;
commit 140fad9e1468fc00a2ee04c4e85d381d5d672dfa
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 09:51:08 2010 -0400
fix failing unit test, EventManagerBean will no longer work with null subject arguments
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java
index 1527c20..8323299 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java
@@ -151,7 +151,8 @@ public class EventManagerTest extends AbstractEJB3Test {
long t1 = now - 1000L;
long t2 = now + 1000L;
- int[] buckets = eventManager.getEventCounts(null, resourceId, t1, t2, 3);
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+ int[] buckets = eventManager.getEventCounts(overlord, resourceId, t1, t2, 3);
assert buckets != null : "Buckets should not be null, but were null";
assert buckets.length == 3 : "Expected 3 buckets, but got " + buckets.length;
@@ -161,7 +162,6 @@ public class EventManagerTest extends AbstractEJB3Test {
PageControl pc = PageControl.getUnlimitedInstance();
EntityContext context = EntityContext.forResource(resourceId);
- Subject overlord = LookupUtil.getSubjectManager().getOverlord();
List<EventComposite> res = eventManager
.findEventComposites(overlord, context, t1, t2, null, null, null, pc);
commit 3e3928cc20caa685232e31c087bdf040b4619e1a
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 07:42:37 2010 -0400
BZ-606301: fix sorting for "avg" response-time column (missing left paren)
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response.xhtml
index 300f94d..7ba5f44 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/monitor/response.xhtml
@@ -83,7 +83,7 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="SUM(value.total) / SUM(value.count))">
+ <onc:sortableColumnHeader sort="(SUM(value.total)/SUM(value.count))">
<h:outputText value="Average" />
</onc:sortableColumnHeader>
</f:facet>
commit 69385e1835f95fff672c8dc61ae1f829dad7ac04
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 07:35:32 2010 -0400
do not allow more than MAX_ORDER_FIELD_COUNT sort fields to be added to the PageControl
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java
index 38ec83f..329b555 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java
@@ -98,6 +98,10 @@ public class PageControl implements Serializable, Cloneable {
}
public void addDefaultOrderingField(String defaultField, PageOrdering defaultPageOrdering) {
+ if (orderingFields.size() >= MAX_ORDERING_FIELD_COUNT) {
+ return; // only need to add defaults if there are less than 3 sort orders
+ }
+
for (OrderingField ordering : orderingFields) {
if (ordering.getField().equals(defaultField)) {
/*
commit a6a707cab05a9ee8cebf49e87b381b507c343285
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 21 07:32:12 2010 -0400
BZ-570360: eliminate routine that purges duplicate call-time data values
Is this really needed? Under what circumstances are duplicates generated? Are we presuming
this is a misbehaving plugin, or a problem at the comm-layer where the same piece of data is delivered
twice? I'm tentatively removing this because it is a big hit to call-time data reporting performance.
If, however, evidence is presented that implores us to bring this functionality back, it should be
implemented by getting rid of the duplicate data points that share the same key_id and begin_time.
These records can be found with:
SELECT key_id, begin_time, count(id)
FROM rhq_calltime_data_value
GROUP BY key_id, begin_time
HAVING count(id) > 1
This is functionally equivalent to the CALLTIME_VALUE_DELETE_SUPERCEDED_STATEMENT query, but takes
advantage of the fact that key_id represents the already-computed pair of schedule_id/destination, thus
allowing the duplicate-search to be implemented against a single table.
Taking this solution one step further, an appropriate delete statement can be crafted which leverages
the above concept but deletes all but one of the duplicates (perhaps leaving the record with the
smallest id/pk). This purge routine can either be grouped in with the rest in DataPurgeJob, or it can
be implemented as its own quartz job that runs more (or less) frequently, depending on how needs
(i.e., how often we anticipate duplicates)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java
index 5e2d684..87fa133 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java
@@ -122,8 +122,31 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
// First make sure a single row exists in the key table for each reported call destination.
callTimeDataManager.insertCallTimeDataKeys(callTimeDataSet);
+ /*
+ * TODO: JM - Is this really needed? Under what circumstances are duplicates generated? Are we presuming
+ * this is a misbehaving plugin, or a problem at the comm-layer where the same piece of data is delivered
+ * twice? I'm tentatively removing this because it is a big hit to call-time data reporting performance.
+ * If, however, evidence is presented that implores us to bring this functionality back, it should be
+ * implemented by getting rid of the duplicate data points that share the same key_id and begin_time.
+ * These records can be found with:
+ *
+ * SELECT key_id, begin_time, count(id)
+ * FROM rhq_calltime_data_value
+ * GROUP BY key_id, begin_time
+ * HAVING count(id) > 1
+ *
+ * This is functionally equivalent to the CALLTIME_VALUE_DELETE_SUPERCEDED_STATEMENT query, but takes
+ * advantage of the fact that key_id represents the already-computed pair of schedule_id/destination, thus
+ * allowing the duplicate-search to be implemented against a single table.
+ *
+ * Taking this solution one step further, an appropriate delete statement can be crafted which leverages
+ * the above concept but deletes all but one of the duplicates (perhaps leaving the record with the
+ * smallest id/pk). This purge routine can either be grouped in with the rest in DataPurgeJob, or it can
+ * be implemented as its own quartz job that runs more (or less) frequently, depending on how needs
+ * (i.e., how often we anticipate duplicates)
+ */
// Delete any existing rows that have the same key and begin time as the data about to be inserted.
- callTimeDataManager.deleteRedundantCallTimeDataValues(callTimeDataSet);
+ //callTimeDataManager.deleteRedundantCallTimeDataValues(callTimeDataSet);
// Finally, add the stats themselves to the value table.
callTimeDataManager.insertCallTimeDataValues(callTimeDataSet);
@@ -270,6 +293,7 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
}
}
+ /*
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void deleteRedundantCallTimeDataValues(Set<CallTimeData> callTimeDataSet) {
@@ -310,12 +334,13 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
+ " redundant call-time data value rows that were superceded by data in the measurement report currently being processed.");
} catch (SQLException e) {
logSQLException("Failed to delete redundant call-time data values", e);
- } catch (Throwable t) {
+ } catch (Throwable t) {
log.error("Failed to delete redundant call-time data values", t);
} finally {
JDBCUtil.safeClose(conn, ps, null);
}
}
+ */
/*
* internal method, do not expose to the remote API
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
index af70f47..ce2615c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
@@ -54,9 +54,4 @@ public interface CallTimeDataManagerLocal {
void insertCallTimeDataKeys(Set<CallTimeData> callTimeDataSet);
void insertCallTimeDataValues(Set<CallTimeData> callTimeDataSet);
-
- /*
- * is this a candidate for a periodic purge job?
- */
- void deleteRedundantCallTimeDataValues(Set<CallTimeData> callTimeDataSet);
}
\ No newline at end of file
commit 7f912881eb1ed141a5519e62fd13522eb97a42d1
Author: Joseph Marques <joseph(a)redhat.com>
Date: Sat Jun 19 09:42:55 2010 -0400
BZ-570360: improve call-time data reporting performance by adjusting transactional boundaries
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java
index 93d85b6..5e2d684 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerBean.java
@@ -26,7 +26,6 @@ import java.util.List;
import java.util.Set;
import javax.ejb.EJB;
-import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
@@ -103,39 +102,31 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
@PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME)
private EntityManager entityManager;
- @javax.annotation.Resource
- private SessionContext sessionContext;
+ @javax.annotation.Resource(name = "RHQ_DS")
+ private DataSource rhqDs;
@EJB
private AuthorizationManagerLocal authorizationManager;
- @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
+ @EJB
+ private CallTimeDataManagerLocal callTimeDataManager;
+
+ @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public void addCallTimeData(@NotNull Set<CallTimeData> callTimeDataSet) {
if (callTimeDataSet.isEmpty()) {
return;
}
log.debug("Persisting call-time data for " + callTimeDataSet.size() + " schedules...");
- DataSource ds = (DataSource) this.sessionContext.lookup("RHQ_DS");
- Connection conn = null;
- try {
- conn = ds.getConnection();
- // First make sure a single row exists in the key table for each reported call destination.
- insertCallTimeDataKeys(callTimeDataSet, conn);
+ // First make sure a single row exists in the key table for each reported call destination.
+ callTimeDataManager.insertCallTimeDataKeys(callTimeDataSet);
- // Delete any existing rows that have the same key and begin time as the data about to be inserted.
- deleteRedundantCallTimeDataValues(callTimeDataSet, conn);
+ // Delete any existing rows that have the same key and begin time as the data about to be inserted.
+ callTimeDataManager.deleteRedundantCallTimeDataValues(callTimeDataSet);
- // Finally, add the stats themselves to the value table.
- insertCallTimeDataValues(callTimeDataSet, conn);
- } catch (SQLException e) {
- logSQLException(e);
- } catch (Throwable t) {
- log.error("Failed to persist call-time data.", t);
- } finally {
- JDBCUtil.safeClose(conn);
- }
+ // Finally, add the stats themselves to the value table.
+ callTimeDataManager.insertCallTimeDataValues(callTimeDataSet);
}
@SuppressWarnings("unchecked")
@@ -198,7 +189,7 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
Connection conn = null;
PreparedStatement stmt = null;
try {
- conn = ((DataSource) this.sessionContext.lookup(RHQConstants.DATASOURCE_JNDI_NAME)).getConnection();
+ conn = rhqDs.getConnection();
// Purge old rows from RHQ_CALLTIME_DATA_VALUE.
stmt = conn.prepareStatement(CALLTIME_VALUE_PURGE_STATEMENT);
@@ -219,13 +210,19 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
}
}
- private void insertCallTimeDataKeys(Set<CallTimeData> callTimeDataSet, Connection conn) throws Exception {
+ /*
+ * internal method, do not expose to the remote API
+ */
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
+ public void insertCallTimeDataKeys(Set<CallTimeData> callTimeDataSet) {
int[] results;
String insertKeySql;
PreparedStatement ps = null;
+ Connection conn = null;
try {
+ conn = rhqDs.getConnection();
DatabaseType dbType = DatabaseTypeFactory.getDatabaseType(conn);
if (dbType instanceof PostgresqlDatabaseType || dbType instanceof OracleDatabaseType
|| dbType instanceof H2DatabaseType) {
@@ -250,30 +247,38 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
}
results = ps.executeBatch();
- } finally {
- JDBCUtil.safeClose(ps);
- }
- int insertedRowCount = 0;
- for (int i = 0; i < results.length; i++) {
- if (((results[i] < 0) || (results[i] > 1)) && (results[i] != -2)) // oracle returns -2 because it can't count updated rows
- {
- throw new MeasurementStorageException("Failed to insert call-time data key rows - result ["
- + results[i] + "] for batch command [" + i + "] is less than 0 or greater than 1.");
+ int insertedRowCount = 0;
+ for (int i = 0; i < results.length; i++) {
+ if (((results[i] < 0) || (results[i] > 1)) && (results[i] != -2)) // oracle returns -2 because it can't count updated rows
+ {
+ throw new MeasurementStorageException("Failed to insert call-time data key rows - result ["
+ + results[i] + "] for batch command [" + i + "] is less than 0 or greater than 1.");
+ }
+
+ insertedRowCount += results[i];
}
- insertedRowCount += results[i];
+ log.debug("Inserted new call-time data key rows for " + ((insertedRowCount >= 0) ? insertedRowCount : "?")
+ + " out of " + results.length + " reported key-value pairs.");
+ } catch (SQLException e) {
+ logSQLException("Failed to persist call-time data keys", e);
+ } catch (Throwable t) {
+ log.error("Failed to persist call-time data keys", t);
+ } finally {
+ JDBCUtil.safeClose(conn, ps, null);
}
-
- log.debug("Inserted new call-time data key rows for " + ((insertedRowCount >= 0) ? insertedRowCount : "?")
- + " out of " + results.length + " reported key-value pairs.");
}
- private void deleteRedundantCallTimeDataValues(Set<CallTimeData> callTimeDataSet, Connection conn)
- throws SQLException {
- PreparedStatement ps = null;
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
+ public void deleteRedundantCallTimeDataValues(Set<CallTimeData> callTimeDataSet) {
+
int[] results;
+ PreparedStatement ps = null;
+ Connection conn = null;
+
try {
+ conn = rhqDs.getConnection();
ps = conn.prepareStatement(CALLTIME_VALUE_DELETE_SUPERCEDED_STATEMENT);
for (CallTimeData callTimeData : callTimeDataSet) {
ps.setInt(1, callTimeData.getScheduleId());
@@ -287,33 +292,43 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
}
results = ps.executeBatch();
- } finally {
- JDBCUtil.safeClose(ps);
- }
- int deletedRowCount = 0;
- for (int i = 0; i < results.length; i++) {
- if ((results[i] < 0) && (results[i] != -2)) // oracle returns -2 because it can't count updated rows
- {
- throw new MeasurementStorageException("Failed to delete redundant call-time data rows - result ["
- + results[i] + "] for batch command [" + i + "] is less than 0.");
+ int deletedRowCount = 0;
+ for (int i = 0; i < results.length; i++) {
+ if ((results[i] < 0) && (results[i] != -2)) // oracle returns -2 because it can't count updated rows
+ {
+ throw new MeasurementStorageException("Failed to delete redundant call-time data rows - result ["
+ + results[i] + "] for batch command [" + i + "] is less than 0.");
+ }
+
+ deletedRowCount += results[i];
}
- deletedRowCount += results[i];
+ log
+ .debug("Deleted "
+ + ((deletedRowCount >= 0) ? deletedRowCount : "?")
+ + " redundant call-time data value rows that were superceded by data in the measurement report currently being processed.");
+ } catch (SQLException e) {
+ logSQLException("Failed to delete redundant call-time data values", e);
+ } catch (Throwable t) {
+ log.error("Failed to delete redundant call-time data values", t);
+ } finally {
+ JDBCUtil.safeClose(conn, ps, null);
}
-
- log
- .debug("Deleted "
- + ((deletedRowCount >= 0) ? deletedRowCount : "?")
- + " redundant call-time data value rows that were superceded by data in the measurement report currently being processed.");
}
- private void insertCallTimeDataValues(Set<CallTimeData> callTimeDataSet, Connection conn) throws Exception {
+ /*
+ * internal method, do not expose to the remote API
+ */
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
+ public void insertCallTimeDataValues(Set<CallTimeData> callTimeDataSet) {
int[] results;
String insertValueSql;
PreparedStatement ps = null;
+ Connection conn = null;
try {
+ conn = rhqDs.getConnection();
DatabaseType dbType = DatabaseTypeFactory.getDatabaseType(conn);
if (dbType instanceof PostgresqlDatabaseType || dbType instanceof OracleDatabaseType
|| dbType instanceof H2DatabaseType) {
@@ -343,25 +358,30 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
}
results = ps.executeBatch();
- } finally {
- JDBCUtil.safeClose(ps);
- }
- int insertedRowCount = 0;
- for (int i = 0; i < results.length; i++) {
- if ((results[i] != 1) && (results[i] != -2)) // Oracle likes to return -2 becuase it doesn't track batch update counts
- {
- throw new MeasurementStorageException("Failed to insert call-time data value rows - result ["
- + results[i] + "] for batch command [" + i + "] does not equal 1.");
+ int insertedRowCount = 0;
+ for (int i = 0; i < results.length; i++) {
+ if ((results[i] != 1) && (results[i] != -2)) // Oracle likes to return -2 becuase it doesn't track batch update counts
+ {
+ throw new MeasurementStorageException("Failed to insert call-time data value rows - result ["
+ + results[i] + "] for batch command [" + i + "] does not equal 1.");
+ }
+
+ insertedRowCount += results[i];
}
- insertedRowCount += results[i];
+ log.debug("Inserted " + ((insertedRowCount >= 0) ? insertedRowCount : "?") + " call-time data value rows.");
+ } catch (SQLException e) {
+ logSQLException("Failed to persist call-time data values", e);
+ } catch (Throwable t) {
+ log.error("Failed to persist call-time data values", t);
+ } finally {
+ JDBCUtil.safeClose(conn, ps, null);
}
- log.debug("Inserted " + ((insertedRowCount >= 0) ? insertedRowCount : "?") + " call-time data value rows.");
}
- private void logSQLException(SQLException e) {
+ private void logSQLException(String message, SQLException e) {
SQLException mainException = e;
StringBuilder causes = new StringBuilder();
int i = 1;
@@ -369,6 +389,6 @@ public class CallTimeDataManagerBean implements CallTimeDataManagerLocal, CallTi
causes.append(i++).append("\n\t").append(e);
}
- log.error("Failed to persist call-time data - causes: " + causes, mainException);
+ log.error(message + " - causes: " + causes, mainException);
}
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
index 5bce7d5..af70f47 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/CallTimeDataManagerLocal.java
@@ -47,4 +47,16 @@ public interface CallTimeDataManagerLocal {
int childResourceTypeId, int measurementDefinitionId, long beginTime, long endTime, PageControl pageControl);
int purgeCallTimeData(Date deleteUpToTime) throws SQLException;
+
+ /*
+ * internal methods that are exposed here so as to enable finer-grained manipulation of transactional boundaries
+ */
+ void insertCallTimeDataKeys(Set<CallTimeData> callTimeDataSet);
+
+ void insertCallTimeDataValues(Set<CallTimeData> callTimeDataSet);
+
+ /*
+ * is this a candidate for a periodic purge job?
+ */
+ void deleteRedundantCallTimeDataValues(Set<CallTimeData> callTimeDataSet);
}
\ No newline at end of file
commit 2b776b0238f02dce812ecccbab7518bbfe57dda5
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon Jun 21 12:17:45 2010 +0200
Remove Override-Annotation on implemented interfaces, as those are not jdk5 compatible.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
index 5d38d16..4981e2b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
@@ -155,7 +155,6 @@ public class SavedSearchManager {
savedSearches.clear();
Collections.sort(result, new Comparator<SavedSearch>() {
- @Override
public int compare(SavedSearch first, SavedSearch second) {
return first.getName().compareTo(second.getName());
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
index a5d95af..b5a7c79 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
@@ -57,7 +57,6 @@ public class SuggestTextBox_v2 extends TextBox {
private void initHandlers() {
this.suggestBox.addSelectionHandler(new SelectionHandler<Suggestion>() {
- @Override
public void onSelection(SelectionEvent<Suggestion> event) {
//event.stopPropagation();
@@ -102,7 +101,6 @@ public class SuggestTextBox_v2 extends TextBox {
searchService.getSuggestions(searchBar.getSearchSubsystem(), expression, caretPosition,
new AsyncCallback<List<SearchSuggestion>>() {
- @Override
public void onSuccess(List<SearchSuggestion> results) {
List<SearchSuggestionOracleAdapter> adaptedResults = new java.util.ArrayList<SearchSuggestionOracleAdapter>();
for (SearchSuggestion next : results) {
@@ -112,7 +110,6 @@ public class SuggestTextBox_v2 extends TextBox {
callback.onSuggestionsReady(request, response);
}
- @Override
public void onFailure(Throwable caught) {
System.out.println("Uh oh");
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
index 9f6fa8d..dd37901 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
@@ -584,12 +584,10 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
searchService.getSuggestions(searchBar.getSearchSubsystem(), expression, caretPosition,
new AsyncCallback<List<SearchSuggestion>>() {
- @Override
public void onSuccess(List<SearchSuggestion> results) {
adaptAndHandle(results.toArray(new SearchSuggestion[results.size()]));
}
- @Override
public void onFailure(Throwable caught) {
SearchSuggestion errorInform = new SearchSuggestion(Kind.InstructionalTextComment, caught
.getMessage());
commit 1e195a7280079f300fba44f774de96dc42201e18
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon Jun 21 12:08:13 2010 +0200
BZ 59640 prevent garbled datasources by correctly reading all properties and storing them in the configuration. For this to work for XA and non-XA datasources, Connection URL and Driver Class are no longer mandatory.
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/DatasourceComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/DatasourceComponent.java
index 5968100..7e1bfd1 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/DatasourceComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/DatasourceComponent.java
@@ -76,7 +76,7 @@ public class DatasourceComponent extends MBeanResourceComponent<JBossASServerCom
File deploymentFile = getResourceContext().getParentResourceComponent().getDeploymentFilePath(
getResourceContext().getResourceKey());
- if (!deploymentFile.exists()) {
+ if (deploymentFile== null || !deploymentFile.exists()) {
log.warn( "Deployment file " + deploymentFile + " doesn't exist for Datasource ["
+ getResourceContext().getResourceKey() + "].");
return null;
@@ -131,4 +131,4 @@ public class DatasourceComponent extends MBeanResourceComponent<JBossASServerCom
this.connectionPoolBean = loadBean(this.connectionPoolBeanName);
return this.connectionPoolBean;
}
-}
\ No newline at end of file
+}
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DatasourceConfigurationEditor.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DatasourceConfigurationEditor.java
index 8d66d80..a309fca 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DatasourceConfigurationEditor.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DatasourceConfigurationEditor.java
@@ -69,7 +69,6 @@ public class DatasourceConfigurationEditor {
public static final String[] XA_PROPS = { "xa-datasource-class", "track-connection-by-tx",
"isSameRM-override-value" };
- private static final String[][] XA_SPECIALS = { { "connection-url", "URL" } , { "user-name", "User" }, {"password", "Password"}};
/* All props with customizations
* jndi-name driver-class <!-- xa-datasource-class --> connection-url user-name password min-pool-size
@@ -81,7 +80,6 @@ public class DatasourceConfigurationEditor {
*/
private static Log log = LogFactory.getLog(DatasourceConfigurationEditor.class);
- private static final String XA_DATASOURCE_PROPERTIES = "xa-datasource-properties";
private static final String CONNECTION_PROPERTY = "connection-property";
private static final String XA_DATASOURCE_PROPERTY = "xa-datasource-property";
@@ -133,11 +131,11 @@ public class DatasourceConfigurationEditor {
if (type.equals(XA_TX_TYPE)) {
bindElements(datasourceElement, config, XA_PROPS);
- bindMap(datasourceElement, config, XA_DATASOURCE_PROPERTIES);
- bindXASpecialElements(datasourceElement,config);
+ bindMap(datasourceElement, config, CONNECTION_PROPERTY, XA_DATASOURCE_PROPERTY);
+// bindXASpecialElements(datasourceElement,config);
} else {
bindElements(datasourceElement, config, NON_XA_PROPS);
- bindMap(datasourceElement, config, CONNECTION_PROPERTY);
+ bindMap(datasourceElement, config, CONNECTION_PROPERTY, CONNECTION_PROPERTY);
}
return config;
@@ -202,6 +200,11 @@ public class DatasourceConfigurationEditor {
IOException {
Document doc;
Element root;
+
+ if (deploymentFile.exists() && !deploymentFile.canWrite()) {
+ throw new RuntimeException("Datasource file " + deploymentFile + " is not writable. Aborting.");
+ }
+
if (deploymentFile.exists()) {
SAXBuilder builder = new SAXBuilder();
doc = builder.build(deploymentFile);
@@ -233,11 +236,11 @@ public class DatasourceConfigurationEditor {
if (type.equals(XA_TX_TYPE)) {
updateElements(datasourceElement, config, XA_PROPS);
- updateMap(datasourceElement, config, XA_DATASOURCE_PROPERTIES);
- updateXAElements(datasourceElement, config);
+ updateMap(datasourceElement, config, CONNECTION_PROPERTY, XA_DATASOURCE_PROPERTY);
+// updateXAElements(datasourceElement, config);
} else {
updateElements(datasourceElement, config, NON_XA_PROPS);
- updateMap(datasourceElement, config, CONNECTION_PROPERTY);
+ updateMap(datasourceElement, config, CONNECTION_PROPERTY, CONNECTION_PROPERTY);
}
if (isNewDatasource) {
@@ -247,59 +250,6 @@ public class DatasourceConfigurationEditor {
updateFile(deploymentFile, doc);
}
- /**
- * We need to pick elements that are in the 'normal' pool and pass them in the form of
- * <xa-property name="xxx">value</xa-property>
- * @param parent parent elment (xa-datsource)
- * @param config passed configuration
- * @param xaSpecials pairs of items that need special treatment
- */
- private static void updateXAElements(Element parent, Configuration config) {
-
- for (String[] pair: XA_SPECIALS) {
- String prop = pair[0]; // Property in the configuration
- String name = pair[1]; // value of the name attribute
- String value = config.getSimpleValue(prop,""); // value to set
-
- Element child = null;
- if (value == null) {
-
- List<Element> elems = parent.getChildren(XA_DATASOURCE_PROPERTY);
- for (Element elem : elems) {
- if (elem.getAttribute("name").getValue().equals(name)) {
- parent.removeContent(elem); // TODO CCME?
- break;
- }
- }
-
- } else {
- // find the child and update if it exists
-
- List<Element> elems = parent.getChildren(XA_DATASOURCE_PROPERTY);
- for (Element elem : elems) {
- if (elem.getAttribute("name").getValue().equals(name)) {
- child = elem;
- break;
- }
- }
- if (child== null) {
- child = new Element(XA_DATASOURCE_PROPERTY);
- child.setAttribute("name",name);
- parent.addContent(child);
- }
-
- child.setText(value);
- }
-
- // remove the non-xa version of the property with name prop
- Element notNeeded = parent.getChild(prop);
- if (notNeeded != null) {
- parent.removeContent(notNeeded);
- }
- }
-
- }
-
public static void deleteDataSource(File deploymentFile, String name) {
Document doc;
Element root;
@@ -332,14 +282,22 @@ public class DatasourceConfigurationEditor {
}
}
- private static void updateMap(Element parent, Configuration configuration, String name) {
- PropertyMap map = configuration.getMap(name);
+ /**
+ * Update the map-elements in the datasource that are below <i>parent</i>.
+ * @param parent Parent element to add / update
+ * @param configuration configuration that holds the properties
+ * @param mapName the name of the map-property in the configuration that holds the elements
+ * @param propertyElementName the name of the element to write below <i>parent</i>
+ */
+ private static void updateMap(Element parent, Configuration configuration, String mapName,
+ String propertyElementName) {
+ PropertyMap map = configuration.getMap(mapName);
// Wrap in ArrayList to avoid ConcurrentModificationException when adding or removing children while iterating.
- List<Element> mapElements = new ArrayList<Element>(parent.getChildren(name));
+ List<Element> mapElements = new ArrayList<Element>(parent.getChildren(propertyElementName));
if ((map == null) || map.getMap().isEmpty()) {
if (!mapElements.isEmpty()) {
- parent.removeChildren(name);
+ parent.removeChildren(propertyElementName);
}
return;
@@ -356,7 +314,7 @@ public class DatasourceConfigurationEditor {
for (Property prop : map.getMap().values()) {
Element element = elements.get(prop.getName());
if (element == null) {
- element = new Element(name);
+ element = new Element(propertyElementName);
element.setAttribute("name", prop.getName());
parent.addContent(element);
}
@@ -389,10 +347,18 @@ public class DatasourceConfigurationEditor {
}
}
- private static void bindMap(Element parent, Configuration config, String mapName) {
+ /**
+ * Look for elements with the name <i>elementName</i> below <i>parent</i> and put
+ * them in to <i>config</i> as a new map with the name <i>mapName</i>.
+ * @param parent The parent element to search for children
+ * @param config The configuration to put the elements found
+ * @param mapName The name of the map as a key to put into the config
+ * @param elementName The elements to look for
+ */
+ private static void bindMap(Element parent, Configuration config, String mapName, String elementName) {
PropertyMap map = new PropertyMap(mapName);
- for (Object child : parent.getChildren(mapName)) {
+ for (Object child : parent.getChildren(elementName)) {
Element childElement = (Element) child;
String name = childElement.getAttributeValue("name");
map.put(new PropertySimple(name, childElement.getText()));
@@ -415,29 +381,6 @@ public class DatasourceConfigurationEditor {
}
}
- /**
- * Bid the special XA datasource elements
- * @param parent
- * @param config
- */
- private static void bindXASpecialElements(Element parent, Configuration config) {
-
- List<Element> xaProps = parent.getChildren(XA_DATASOURCE_PROPERTY);
-
- for (String[] pair: XA_SPECIALS) {
- String prop = pair[0]; // Property in the configuration
- String name = pair[1]; // value of the name attribute
-
- for (Element elem : xaProps ) {
- if (elem.getAttribute("name").getValue().equals(name)) {
- config.put(new PropertySimple(prop,elem.getText()));
- }
- }
- }
-
- }
-
-
private static Element findDatasourceElement(Element root, String name) {
for (Object child : root.getChildren()) {
Element childElement = (Element) child;
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DeploymentUtility.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DeploymentUtility.java
index 60d2467..d915ff0 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DeploymentUtility.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/DeploymentUtility.java
@@ -114,6 +114,8 @@ public class DeploymentUtility {
return null;
}
+/* The next code block is already executed within getDeploymentInformations()
+ so no point in repeating here
try {
EmsOperation operation = getListDeployedOperation(connection);
@@ -128,6 +130,7 @@ public class DeploymentUtility {
return null;
}
+*/
// ask our connection object to create an ObjectName for us as a java.lang.Object - we don't want to import ObjectName ourselves
Object ourObjectName = connection.buildObjectName(objectName);
@@ -307,7 +310,7 @@ public class DeploymentUtility {
name = (lastSlashIndex == lastIndex) ? "/" : name.substring(lastSlashIndex + 1);
}
}
-
+
return webModule;
}
@@ -480,4 +483,4 @@ public class DeploymentUtility {
String vhost;
String contextRoot;
}
-}
\ No newline at end of file
+}
diff --git a/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
index b49112f..b3ea3f5 100644
--- a/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
@@ -132,7 +132,7 @@
<c:simple-property name="snapshotAdditionalFilesRecursive" summary="true" type="boolean" default="true" description="If true, the snapshot will include files located in subdirectories under the additional files directory."/>
</c:map-property>
</c:list-property>
- </c:group>
+ </c:group>
<c:group name="advanced" displayName="Advanced" hiddenByDefault="true">
<c:simple-property name="type" description="The type of the connection."
@@ -150,9 +150,9 @@
<c:integer-constraint minimum="60"/>
</c:constraint>
</c:simple-property>
-
- <c:simple-property name="childJmxServerName" displayName="JBoss AS JVM Name" default="JVM"
- readOnly="true" required="false"
+
+ <c:simple-property name="childJmxServerName" displayName="JBoss AS JVM Name" default="JVM"
+ readOnly="true" required="false"
description="The name of the JBoss AS JVM resource."/>
</c:group>
</plugin-configuration>
@@ -208,15 +208,15 @@
defaultInterval="300000" defaultOn="true" category="utilization" units="bytes"/>
<metric property="jboss:service=TransactionManager:TransactionCount" displayName="Total Transactions" measurementType="trendsup"
- defaultInterval="300000" defaultOn="true" category="utilization"
+ defaultInterval="300000" defaultOn="true" category="utilization"
description="Total number of transactions since last restart"/>
<metric property="jboss:service=TransactionManager:CommitCount" displayName="Transactions Committed" displayType="summary" measurementType="trendsup"
- defaultInterval="600000" defaultOn="true" category="utilization"
+ defaultInterval="600000" defaultOn="true" category="utilization"
description="Number of transactions commited since last restart"/>
<metric property="jboss:service=TransactionManager:RollbackCount" displayName="Transactions Rolledback" measurementType="trendsup"
- defaultInterval="600000" defaultOn="true" category="utilization"
+ defaultInterval="600000" defaultOn="true" category="utilization"
description="Number of transactions commited since last restart"/>
<event name="logEntry" description="an entry in a log file"/>
@@ -248,13 +248,13 @@
<![CDATA[
<h3>Binding to IP addresses</h3>
- <p>When starting JBossAS instances that need to be monitored using remote JMX (i.e. JNP), it is necessary for
- the <tt>java.rmi.server.hostname</tt> System property to be set to the same value as the server's JNP
- address (which is set to the <tt>jboss.bind.address</tt> System property by default). Due to bugs in JBossAS
- (for more information please see <a href="http://jira.jboss.com/jira/browse/JBAS-4736">JBAS-4736</a> and
+ <p>When starting JBossAS instances that need to be monitored using remote JMX (i.e. JNP), it is necessary for
+ the <tt>java.rmi.server.hostname</tt> System property to be set to the same value as the server's JNP
+ address (which is set to the <tt>jboss.bind.address</tt> System property by default). Due to bugs in JBossAS
+ (for more information please see <a href="http://jira.jboss.com/jira/browse/JBAS-4736">JBAS-4736</a> and
<a href="http://jira.jboss.com/jira/browse/JBAS-4955">JBAS-4955</a>),
- <tt>java.rmi.server.hostname</tt> will default to <tt>127.0.0.1</tt>, unless JBossAS is started using
- <tt>-b</tt>, in which case <tt>java.rmi.server.hostname</tt> will default to the bind address specified
+ <tt>java.rmi.server.hostname</tt> will default to <tt>127.0.0.1</tt>, unless JBossAS is started using
+ <tt>-b</tt>, in which case <tt>java.rmi.server.hostname</tt> will default to the bind address specified
as the argument to <tt>-b</tt>.</p>
<p>Therefore, you must start your JBossAS instances by using either <tt>-b</tt>:</p>
@@ -263,7 +263,7 @@
run -b 12.34.56.78 ...
</pre></code>
- <p>or by explicitly specifying a value for <tt>java.rmi.server.hostname</tt> via <tt>-D</tt> or
+ <p>or by explicitly specifying a value for <tt>java.rmi.server.hostname</tt> via <tt>-D</tt> or
<tt>-P</tt>, e.g.:</p>
<code><pre>
@@ -274,7 +274,7 @@
<div class="note">
Using <tt>-b</tt> is the recommended way to specify the bind address, since, in addition to setting
- <tt>jboss.bind.address</tt> and <tt>java.rmi.server.hostname</tt>, it will also set other JGroups-related
+ <tt>jboss.bind.address</tt> and <tt>java.rmi.server.hostname</tt>, it will also set other JGroups-related
System properties to the specified address.
</div>
@@ -452,11 +452,11 @@
</c:simple-property>
<c:simple-property name="jndi-name" readOnly="true" displayName="JNDI Name"
description="The JNDI name under which the DataSource wrapper will be bound."/>
- <c:simple-property name="driver-class"
- description="The fully qualified name of the JDBC driver or datasource class"/>
+ <c:simple-property name="driver-class" required="false"
+ description="The fully qualified name of the JDBC driver or datasource class. Not used for XA-Datasources"/>
<!-- xa-datasource-class -->
- <c:simple-property name="connection-url" displayName="Connection Url"
- description="The JDBC driver connection URL string"/>
+ <c:simple-property name="connection-url" displayName="Connection Url" required="false"
+ description="The JDBC driver connection URL string. Needed for Tx and Non-Tx datasources"/>
<c:simple-property name="user-name" required="false"/>
<c:simple-property name="password" type="password" required="false"/>
@@ -501,6 +501,7 @@
<c:simple-property name="track-statements" type="boolean" required="false"
description="Whether to check for unclosed statements when a connection is returned to the pool and result sets are closed when a statement is closed/returned to the prepared statement cache. The default is Yes, but no warnings."/>
+ <c:simple-property name="xa-datasource-class" required="false" description="The datasource class for XA connections."/>
<c:map-property name="connection-property" required="false"/>
<!-- xa-datasource-property -->
@@ -558,7 +559,7 @@
<c:simple-property name="descriptionTemplate" default="A JCA Connection Factory"/>
<c:simple-property name="name" type="string" description="The name of this Connection Factory"/>
</plugin-configuration>
-
+
<metric property="AvailableConnectionCount" measurementType="dynamic" displayType="summary"
displayName="Available Connection Count" description="Number of available connections."
defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
@@ -587,8 +588,8 @@
defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
<metric property="MinSize" measurementType="dynamic" displayType="detail" displayName="Min Size"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
-
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
<resource-configuration>
<c:group name="connection" displayName="Connection Information">
@@ -913,7 +914,7 @@
</c:group>
</resource-configuration>
-
+
</service>
<service name="JBossMQ"
@@ -2068,7 +2069,7 @@
class="EJB2BeanComponent"
discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
description="An EJB 1.x or 2.x Stateful Session Bean">
-
+
<plugin-configuration>
<c:simple-property name="objectName" readOnly="true"
default="jboss.management.local:name=%name%,J2EEServer=Local,J2EEApplication=%j2eeApplication%,EJBModule=%ejbJar%,j2eeType=StatefulSessionBean"/>
@@ -2101,14 +2102,14 @@
description="The number of pooled instances of this EJB 1.x or 2.x Stateful Session Bean in the passivated state"
property="{stats.passiveCount.current}"
displayType="summary"/>
-
+
<!-- default interval == 600000 ms == 10 min -->
<metric property="MethodInvocationTime" dataType="calltime" units="milliseconds"
defaultOn="false" defaultInterval="600000" destinationType="Method Name"
description="the minimum, maximum, and average invocation times for each of the methods exposed by this EJB"/>
</service>
-
+
<service name="Entity EJB"
subCategory="Applications"
class="org.rhq.plugins.jmx.MBeanResourceComponent"
@@ -2616,4 +2617,3 @@
</server>
</plugin>
-
\ No newline at end of file
commit e2ce9cec97165bcafa6f138ae642fcbe1484112b
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Mon Jun 21 12:08:01 2010 +0200
Remove Override-Annotation on implemented interfaces, as those are not jdk5 compatible.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
index 41e3f13..13e5ec7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
@@ -107,7 +107,6 @@ public class SearchBar extends SimplePanel {
searchButton = DOM.getElementById(searchButtonId);
Event.addNativePreviewHandler(new NativePreviewHandler() {
- @Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
if (event.getNativeEvent().getEventTarget().equals(searchButton)
&& event.getTypeInt() == Event.ONMOUSEDOWN) {
@@ -314,7 +313,6 @@ public class SearchBar extends SimplePanel {
* Event Handlers
*/
class AutoCompletePatternFieldEventHandler implements KeyPressHandler, FocusHandler, BlurHandler {
- @Override
public void onKeyPress(KeyPressEvent event) {
// hide pattern field/label, turn off star
if (event.getCharCode() == KeyCodes.KEY_ENTER) {
@@ -335,7 +333,6 @@ public class SearchBar extends SimplePanel {
}
}
- @Override
public void onFocus(FocusEvent event) {
// clear default search text if necessary
if (autoCompletePatternField.getText().equals(welcomeMessage)) {
@@ -345,7 +342,6 @@ public class SearchBar extends SimplePanel {
savedSearchesPanel.hide();
}
- @Override
public void onBlur(BlurEvent event) {
if (autoCompletePatternField.getText().equals("")) {
autoCompletePatternField.setValue(welcomeMessage, true);
@@ -355,7 +351,6 @@ public class SearchBar extends SimplePanel {
}
class PatternNameFieldEventHandler implements KeyPressHandler, ClickHandler, BlurHandler {
- @Override
public void onKeyPress(KeyPressEvent event) {
if (event.getCharCode() == KeyCodes.KEY_ENTER) {
SearchLogger.debug("key press pattern name field");
@@ -363,14 +358,12 @@ public class SearchBar extends SimplePanel {
}
}
- @Override
public void onClick(ClickEvent event) {
if (patternNameField.getText().equals(DEFAULT_PATTERN_NAME)) {
patternNameField.setValue("", false);
}
}
- @Override
public void onBlur(BlurEvent event) {
lastNameFieldBlurTime = System.currentTimeMillis();
turnNameFieldIntoLabel();
@@ -378,18 +371,16 @@ public class SearchBar extends SimplePanel {
}
class PatternNameLabelEventHandler implements ClickHandler {
- @Override
public void onClick(ClickEvent event) {
turnNameLabelIntoField();
}
}
class StarImageEventHandler implements ClickHandler, MouseOverHandler, MouseOutHandler {
- @Override
public void onClick(ClickEvent event) {
long diff = System.currentTimeMillis() - lastNameFieldBlurTime;
if (Math.abs(diff) < 750) {
- /*
+ /*
* This event propagation is annoying. If the threshold is set too low, then both
* the name field blur event and this star image click event fire...but the blur
* event fires first, which turns the star white. Then a click on a white star
@@ -416,7 +407,6 @@ public class SearchBar extends SimplePanel {
}
}
- @Override
public void onMouseOver(MouseOverEvent event) {
if (starImage.getUrl().endsWith(STAR_OFF_URL)) {
starImage.setUrl(STAR_ACTIVE_URL);
@@ -424,7 +414,6 @@ public class SearchBar extends SimplePanel {
}
}
- @Override
public void onMouseOut(MouseOutEvent event) {
if (starImage.getUrl().endsWith(STAR_ACTIVE_URL) && !patternNameField.isVisible()) {
starImage.setUrl(STAR_OFF_URL);
@@ -433,7 +422,6 @@ public class SearchBar extends SimplePanel {
}
class ArrowImageEventHandler implements ClickHandler {
- @Override
public void onClick(ClickEvent event) {
savedSearches.updateModel();
int left = autoCompletePatternField.getAbsoluteLeft();
@@ -445,12 +433,10 @@ public class SearchBar extends SimplePanel {
}
class SavedSearchesEventHandler implements CloseHandler<PopupPanel>, PatternSelectionHandler {
- @Override
public void onClose(CloseEvent<PopupPanel> event) {
arrowImage.setUrl(ARROW_WHITE_URL);
}
- @Override
public void handleSelection(int rowIndex, int columnIndex, String patternName) {
if (columnIndex == 1) {
savedSearchManager.removePatternByName(patternName);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
index fcbee84..5d38d16 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
@@ -65,13 +65,11 @@ public class SavedSearchManager {
.getSessionSubject());
searchService.createSavedSearch(newSavedSearch, new AsyncCallback<Integer>() {
- @Override
public void onFailure(Throwable caught) {
SearchLogger.debug("Error: created saved search [" + name + "] with pattern [" + pattern + "]: "
+ caught.getMessage());
}
- @Override
public void onSuccess(Integer result) {
newSavedSearch.setId(result);
savedSearches.put(name, newSavedSearch);
@@ -81,13 +79,11 @@ public class SavedSearchManager {
} else { // update case
searchService.updateSavedSearch(savedSearch, new AsyncCallback<Void>() {
- @Override
public void onFailure(Throwable caught) {
SearchLogger.debug("Error: updating saved search [" + name + "] with pattern [" + pattern + "]: "
+ caught.getMessage());
}
- @Override
public void onSuccess(Void result) {
SavedSearch savedSearch = savedSearches.remove(name);
savedSearch.setPattern(pattern);
@@ -112,12 +108,10 @@ public class SavedSearchManager {
}
searchService.deleteSavedSearch(savedSearch.getId(), new AsyncCallback<Void>() {
- @Override
public void onFailure(Throwable caught) {
SearchLogger.debug("Error: removing saved search [" + name + "]: " + caught.getMessage());
}
- @Override
public void onSuccess(Void result) {
savedSearches.remove(name);
}
@@ -133,14 +127,12 @@ public class SavedSearchManager {
savedSearches.put(newName, savedSearch);
searchService.updateSavedSearch(savedSearch, new AsyncCallback<Void>() {
- @Override
public void onFailure(Throwable caught) {
savedSearch.setName(oldName); // revive old name because server-side change failed
SearchLogger.debug("Error: renaming saved search from [" + oldName + "] to [" + newName + "]: "
+ caught.getMessage());
}
- @Override
public void onSuccess(Void result) {
// do nothing, reference was already renamed in-band
}
@@ -158,7 +150,6 @@ public class SavedSearchManager {
criteria.addFilterSearchSubsystem(searchBar.getSearchSubsystem());
searchService.findSavedSearchesByCriteria(criteria, new AsyncCallback<List<SavedSearch>>() {
- @Override
public void onSuccess(List<SavedSearch> result) {
try {
savedSearches.clear();
@@ -177,7 +168,6 @@ public class SavedSearchManager {
}
}
- @Override
public void onFailure(Throwable caught) {
try {
SearchLogger.debug("Error: loading saved searches: " + caught.getMessage());
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java
index d6d133a..4e75b52 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java
@@ -153,7 +153,6 @@ public class SuggestTextBox extends TextBox {
}
class SuggestTextBoxEventHandler implements KeyUpHandler, FocusHandler {
- @Override
public void onKeyUp(KeyUpEvent event) {
int keyCode = event.getNativeKeyCode();
handleKeyCode(keyCode);
@@ -164,7 +163,6 @@ public class SuggestTextBox extends TextBox {
}
}
- @Override
public void onFocus(FocusEvent event) {
if (getText().equals(searchBar.getWelcomeMessage())) {
setText("");
@@ -175,12 +173,10 @@ public class SuggestTextBox extends TextBox {
}
class SuggestionResultsListBoxEventHandler implements ChangeHandler, ClickHandler {
- @Override
public void onChange(ChangeEvent event) {
complete();
}
- @Override
public void onClick(ClickEvent event) {
complete();
}
@@ -262,13 +258,11 @@ public class SuggestTextBox extends TextBox {
this.keyCode = keyCode;
}
- @Override
public void onFailure(Throwable caught) {
choices.setErrorMessage(caught.getMessage());
commonHandler();
}
- @Override
public void onSuccess(List<SearchSuggestion> result) {
choices.setSearchSuggestions(result);
commonHandler();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
index 5848f0f..a5d95af 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
@@ -157,12 +157,10 @@ public class SuggestTextBox_v2 extends TextBox {
this.suggestion = suggestion;
}
- @Override
public String getDisplayString() {
return suggestion.getLabel();
}
- @Override
public String getReplacementString() {
return suggestion.getValue();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
index b64d88d..9f6fa8d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
@@ -124,7 +124,6 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
this.suggestion = suggestion;
}
- @Override
public void execute() {
complete(suggestion, currentCursorPosition);
}
@@ -203,7 +202,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
}
public void onKeyDown(KeyDownEvent event) {
- /*
+ /*
* Make sure that the menu is actually showing. These
* keystrokes are only relevant when choosing a suggestion.
*/
@@ -310,7 +309,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
}
/*
- * TextBox methods
+ * TextBox methods
*/
public void setText(String text) {
box.setText(text);
@@ -341,7 +340,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
}
/*
- * SuggestBox methods
+ * SuggestBox methods
*/
public void showSuggestionList() {
if (isAttached()) {
@@ -359,7 +358,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
/**
* Get the number of suggestions that are currently showing.
- *
+ *
* @return the number of suggestions currently showing, 0 if there are none
*/
int getSuggestionCount() {
@@ -412,7 +411,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
/**
* Returns the index of the menu item that is currently selected.
- *
+ *
* @return returns the selected item
*/
public int getSelectedItemIndex() {
@@ -672,12 +671,10 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
this.suggestion = suggestion;
}
- @Override
public String getDisplayString() {
return suggestion.getLabel();
}
- @Override
public String getReplacementString() {
return suggestion.getValue();
}
@@ -687,13 +684,11 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
}
}
- @Override
public HandlerRegistration addFocusHandler(FocusHandler handler) {
// TODO Auto-generated method stub
return null;
}
- @Override
public HandlerRegistration addBlurHandler(BlurHandler handler) {
// TODO Auto-generated method stub
return null;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java
index b896698..55b81ce 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SearchGWTServiceImpl.java
@@ -37,29 +37,24 @@ public class SearchGWTServiceImpl extends AbstractGWTServiceImpl implements Sear
private SavedSearchManagerLocal savedSearchManager = LookupUtil.getSavedSearchManager();
- @Override
public List<SearchSuggestion> getSuggestions(SearchSubsystem searchSubsystem, String expression, int caretPosition) {
SearchAssistManager searchAssistManager = new SearchAssistManager(getSessionSubject(), searchSubsystem);
List<SearchSuggestion> results = searchAssistManager.getSuggestions(expression, caretPosition);
return results;
}
- @Override
public int createSavedSearch(SavedSearch savedSearch) {
return savedSearchManager.createSavedSearch(getSessionSubject(), savedSearch);
}
- @Override
public void updateSavedSearch(SavedSearch savedSearch) {
savedSearchManager.updateSavedSearch(getSessionSubject(), savedSearch);
}
- @Override
public void deleteSavedSearch(int savedSearchId) {
savedSearchManager.deleteSavedSearch(getSessionSubject(), savedSearchId);
}
- @Override
public List<SavedSearch> findSavedSearchesByCriteria(SavedSearchCriteria criteria) {
return SerialUtility.prepare(savedSearchManager.findSavedSearchesByCriteria(getSessionSubject(), criteria),
"SearchService.findRolesByCriteria");
commit 3451f18821633fbab336ffe64d8a000e8fe3b98f
Author: hudson auto <wnstb(a)yahoo.com>
Date: Fri Jun 18 17:31:52 2010 -0400
[maven-release-plugin] prepare for next development iteration
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 6d440ef..eda9133 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index dbd8dd6..bc7965b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 1077987..2cf950b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 751726e..ee81a94 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 78d1f23..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index f6fadb5..a51f92b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 84dd23f..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 96cbc8e..e0ced84 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0df3808..0911918 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 558b9a2..d47d4c8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index ba389df..e1ce7ef 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index a570e19..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index c721f21..7739177 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index 9e92634..eeb7e81 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 47cb583..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index cee7efe..bc41dc5 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index f917e15..d9f1c1c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index c569283..8942239 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 88ef26e..8b9da9c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 6a09d32..611eb9d 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 643d41e..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index 3068b31..df05645 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 6cd8f92..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dfd74c1..958177d 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index f01ec85..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index a3e6434..783942c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index bdef75c..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index c3fc4fa..3b0dbb8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 5e0a013..33966bd 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 57e79e7..605267f 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 1feb631..910b617 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index a4d9ed6..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index c2acfe1..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index aee0070..3fd11e8 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 6956e3c..bf15866 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 633ff8f..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index b05532d..dd5bc18 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 988e2e3..c0973f3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index b9f3d0c..a62fee8 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 8a0c7c9..3193539 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index bf7fe01..e69bfbc 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index 466b99a..ca33bb7 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index b743122..af75153 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 97c50f4..09839b8 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 8abb60d..73f405e 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 ce9b430..4c44f10 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 86a21ef..0033d1b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 b83824c..61965f2 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 b8bba65..7451668 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index a53f3ad..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index ab30954..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 8b6a170..2b16f4a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 9a96ab0..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 3a96e6d..a6cba32 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 8bcdcea..9c7cc74 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 2dce331..ebdd3da 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 3fd87f6..06c8981 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 7ecbbad..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index cadb656..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 8df64c1..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index 031c90d..d056f74 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index ba37942..28dc9b1 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 762f318..a0721a9 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index e17c9d8..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7006ed8..c37598e 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 851c129..cc160c9 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index f2682e9..b4f9208 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 48651cb..963223b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 1e8011a..d920440 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 6ee0662..d5aaad5 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 7d98f84..30889f7 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 05ac956..b79645d 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 1c68b9b..f7cf265 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 35fd599..acb08ef 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index eddd3ed..7dd0fde 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 5d79625..65fa7b8 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 7e17c2b..853c020 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 ceb58be..a0ade77 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 54536d9..b9ed2b3 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 f276b7d..b3846fa 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 f1aa8f9..443e524 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 6bc1bfa..ac9885a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index e488d56..d0c9053 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 37d84af..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 75a1aff..1acdb0f 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 4e78da5..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 87ba78d..97b83b0 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 4873dae..85d6105 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1e95ca3..283ab6a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index daf3133..5a4466c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index b0c26a5..a190dcd 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 98333bb..8f4e675 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index d0d0d63..0d41574 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7189f74..7719b14 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index fdb421d..2d9d715 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 9c38247..3579496 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 7932012..41df1b8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 03e2df8..205d5b0 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index cab4269..e299efa 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 4f886fd..b3d5e87 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 9a28ce8..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 07130df..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 88ccd55..ca7c648 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit c89b1c35517eaa92138310b75a9645b7651ae1ac
Author: hudson auto <wnstb(a)yahoo.com>
Date: Fri Jun 18 17:30:42 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_GA_QA
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..6d440ef 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..dbd8dd6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..1077987 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..751726e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..78d1f23 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..f6fadb5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..84dd23f 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..96cbc8e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..0df3808 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..558b9a2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..ba389df 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..a570e19 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..c721f21 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..9e92634 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..47cb583 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..cee7efe 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..f917e15 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..c569283 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..88ef26e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 611eb9d..6a09d32 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..643d41e 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..3068b31 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..6cd8f92 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 958177d..dfd74c1 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..f01ec85 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..a3e6434 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..bdef75c 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..c3fc4fa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..5e0a013 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..57e79e7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..1feb631 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..a4d9ed6 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..c2acfe1 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6ae155a..aee0070 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -1,13 +1,11 @@
-<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">
+<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>
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..6956e3c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..633ff8f 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index dd5bc18..b05532d 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index c0973f3..988e2e3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index a62fee8..b9f3d0c 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 3193539..8a0c7c9 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index e69bfbc..bf7fe01 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index ca33bb7..466b99a 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index af75153..b743122 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 09839b8..97c50f4 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..8abb60d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 4c44f10..ce9b430 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 0033d1b..86a21ef 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 61965f2..b83824c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 7451668..b8bba65 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..a53f3ad 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..ab30954 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..8b6a170 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..9a96ab0 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..3a96e6d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 9c7cc74..8bcdcea 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 ebdd3da..2dce331 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..3fd87f6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..7ecbbad 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..cadb656 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..8df64c1 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index d056f74..031c90d 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 28dc9b1..ba37942 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..762f318 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..e17c9d8 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..7006ed8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..851c129 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..f2682e9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..48651cb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..1e8011a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..6ee0662 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..7d98f84 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..05ac956 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..1c68b9b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..35fd599 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..eddd3ed 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 65fa7b8..5d79625 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..7e17c2b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 a0ade77..ceb58be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..54536d9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 b3846fa..f276b7d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..f1aa8f9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..6bc1bfa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..e488d56 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..37d84af 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..75a1aff 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..4e78da5 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..87ba78d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..4873dae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1e95ca3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..daf3133 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..b0c26a5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..98333bb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..d0d0d63 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..7189f74 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..fdb421d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..9c38247 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..7932012 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..03e2df8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..cab4269 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 b3d5e87..4f886fd 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..9a28ce8 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..07130df 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index ca7c648..88ccd55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 6c39598a9d21108ee2ab7fbd08d305ec2e848f7d
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Jun 18 16:03:09 2010 -0400
fix some problems causing the ant script to be invoked multiple times
add unit test - but the one assert is commented out so the build doesn't fail - we're fixing that problem currently
diff --git a/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java b/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
index f030cf0..51098ea 100644
--- a/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
+++ b/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
@@ -56,7 +56,6 @@ import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.system.SystemInfoFactory;
import org.rhq.core.util.stream.StreamUtil;
import org.rhq.core.util.updater.DeployDifferences;
-import org.rhq.core.util.updater.Deployer;
import org.rhq.core.util.updater.DeploymentsMetadata;
/**
@@ -114,7 +113,6 @@ public class AntBundlePluginComponent implements ResourceComponent, BundleFacet
Properties antProps = createAntProperties(request);
// TODO: Eventually the phase to be executed should be passed in by the PC when it calls us.
// TODO: Invoke STOP phase.
- antProps.setProperty(DeployPropertyNames.DEPLOY_PHASE, "INSTALL");
// TODO: Invoke START phase.
List<BuildListener> buildListeners = new ArrayList();
@@ -125,17 +123,14 @@ public class AntBundlePluginComponent implements ResourceComponent, BundleFacet
buildListeners.add(auditor);
// Parse and execute the Ant script.
- executeDeploymentPhase(recipeFile, antProps, buildListeners,
- DeploymentPhase.STOP);
+ executeDeploymentPhase(recipeFile, antProps, buildListeners, DeploymentPhase.STOP);
String deployDirString = bundleDeployment.getDestination().getDeployDir();
File deployDir = new File(deployDirString);
DeploymentsMetadata deployMetadata = new DeploymentsMetadata(deployDir);
- DeploymentPhase installPhase = (deployMetadata.isManaged()) ? DeploymentPhase.UPGRADE :
- DeploymentPhase.INSTALL;
- BundleAntProject project = executeDeploymentPhase(recipeFile, antProps, buildListeners,
- installPhase);
- executeDeploymentPhase(recipeFile, antProps, buildListeners,
- DeploymentPhase.START);
+ DeploymentPhase installPhase = (deployMetadata.isManaged()) ? DeploymentPhase.UPGRADE
+ : DeploymentPhase.INSTALL;
+ BundleAntProject project = executeDeploymentPhase(recipeFile, antProps, buildListeners, installPhase);
+ executeDeploymentPhase(recipeFile, antProps, buildListeners, DeploymentPhase.START);
// Send the diffs to the Server so it can store them as an entry in the deployment history.
BundleManagerProvider bundleManagerProvider = request.getBundleManagerProvider();
@@ -165,8 +160,10 @@ public class AntBundlePluginComponent implements ResourceComponent, BundleFacet
return result;
}
- private BundleAntProject executeDeploymentPhase(File recipeFile, Properties antProps, List<BuildListener> buildListeners, DeploymentPhase stop) throws InvalidBuildFileException {
+ private BundleAntProject executeDeploymentPhase(File recipeFile, Properties antProps,
+ List<BuildListener> buildListeners, DeploymentPhase phase) throws InvalidBuildFileException {
AntLauncher antLauncher = new AntLauncher();
+ antProps.setProperty(DeployPropertyNames.DEPLOY_PHASE, phase.name());
BundleAntProject project = antLauncher.executeBundleDeployFile(recipeFile, antProps, buildListeners);
return project;
}
diff --git a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
index 2a59e86..699ce1c 100644
--- a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
+++ b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
@@ -58,6 +58,8 @@ import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.system.SystemInfoFactory;
import org.rhq.core.util.file.FileUtil;
import org.rhq.core.util.stream.StreamUtil;
+import org.rhq.core.util.updater.DeploymentProperties;
+import org.rhq.core.util.updater.DeploymentsMetadata;
@Test
public class AntBundlePluginComponentTest {
@@ -101,9 +103,89 @@ public class AntBundlePluginComponentTest {
}
/**
+ * Test deployment of an RHQ bundle recipe with archive file and raw file
+ */
+ public void testAntBundleTwo() throws Exception {
+ ResourceType resourceType = new ResourceType("testSimpleBundle2Type", "plugin", ResourceCategory.SERVER, null);
+ BundleType bundleType = new BundleType("testSimpleBundle2BType", resourceType);
+ Repo repo = new Repo("test-bundle-two");
+ PackageType packageType = new PackageType("test-bundle-two", resourceType);
+ Bundle bundle = new Bundle("test-bundle-two", bundleType, repo, packageType);
+ BundleVersion bundleVersion = new BundleVersion("test-bundle-two", "2.5", bundle,
+ getRecipeFromFile("test-bundle-two.xml"));
+ BundleDestination destination = new BundleDestination(bundle, "testSimpleBundle2Dest", new ResourceGroup(
+ "testSimpleBundle2Group"), this.destDir.getAbsolutePath());
+
+ Configuration config = new Configuration();
+ String customPropName = "custom.prop";
+ String customPropValue = "ABC";
+ String onePropName = "one.prop";
+ String onePropValue = "111";
+ config.put(new PropertySimple(customPropName, customPropValue));
+ config.put(new PropertySimple(onePropName, onePropValue));
+
+ BundleDeployment deployment = new BundleDeployment();
+ deployment.setId(123);
+ deployment.setName("test bundle 2 deployment name");
+ deployment.setBundleVersion(bundleVersion);
+ deployment.setConfiguration(config);
+ deployment.setDestination(destination);
+
+ // copy the test archive file to the bundle files dir
+ FileUtil.copyFile(new File("src/test/resources/test-bundle-two-archive.zip"), new File(this.bundleFilesDir,
+ "test-bundle-two-archive.zip"));
+
+ // create test.properties file in the bundle files dir
+ File file1 = new File(this.bundleFilesDir, "test.properties");
+ Properties props = new Properties();
+ props.setProperty(customPropName, "@@" + customPropName + "@@");
+ FileOutputStream outputStream = new FileOutputStream(file1);
+ props.store(outputStream, "test.properties comment");
+ outputStream.close();
+
+ BundleDeployRequest request = new BundleDeployRequest();
+ request.setBundleFilesLocation(this.bundleFilesDir);
+ request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
+ request.setBundleManagerProvider(new MockBundleManagerProvider());
+
+ BundleDeployResult results = plugin.deployBundle(request);
+
+ assertResultsSuccess(results);
+
+ // test that the prop was replaced in raw file test.properties
+ Properties realizedProps = new Properties();
+ realizedProps.load(new FileInputStream(new File(this.destDir, "config/test.properties")));
+ assert customPropValue.equals(realizedProps.getProperty(customPropName)) : "didn't replace prop";
+
+ // test that the archive was extracted properly. These are the files in the archive:
+ // zero-file.txt (content: "zero")
+ // one/one-file.txt (content: "@@one.prop(a)@") <-- recipe says this is to be replaced
+ // two/two-file.txt (content: "@@two.prop(a)@") <-- recipe does not say to replace this
+ File zeroFile = new File(this.destDir, "zero-file.txt");
+ File oneFile = new File(this.destDir, "one/one-file.txt");
+ File twoFile = new File(this.destDir, "two/two-file.txt");
+ assert zeroFile.exists() : "zero file missing";
+ assert oneFile.exists() : "one file missing";
+ assert twoFile.exists() : "two file missing";
+ assert readFile(zeroFile).startsWith("zero");
+ assert readFile(oneFile).startsWith(onePropValue);
+ assert readFile(twoFile).startsWith("@@two.prop(a)@");
+
+ DeploymentsMetadata metadata = new DeploymentsMetadata(this.destDir);
+ DeploymentProperties deploymentProps = metadata.getDeploymentProperties(deployment.getId());
+ assert deploymentProps.getDeploymentId() == deployment.getId();
+ assert deploymentProps.getBundleName().equals(bundle.getName());
+ assert deploymentProps.getBundleVersion().equals(bundleVersion.getVersion());
+ DeploymentProperties currentProps = metadata.getCurrentDeploymentProperties();
+ assert deploymentProps.equals(currentProps);
+ DeploymentProperties previousProps = metadata.getPreviousDeploymentProperties(deployment.getId());
+ // TODO: uncomment once we fix the problem that ant launcher invokes the deploy multiple times
+ //assert previousProps == null : "There should not be any previous deployment metadata";
+ }
+
+ /**
* Test deployment of an RHQ bundle recipe.
*/
- @Test
public void testAntBundle() throws Exception {
ResourceType resourceType = new ResourceType("testSimpleBundle", "plugin", ResourceCategory.SERVER, null);
BundleType bundleType = new BundleType("testSimpleBundle", resourceType);
@@ -171,6 +253,10 @@ public class AntBundlePluginComponentTest {
return new String(contents);
}
+ private String readFile(File file) throws Exception {
+ return new String(StreamUtil.slurp(new FileInputStream(file)));
+ }
+
private class MockBundleManagerProvider implements BundleManagerProvider {
public void auditDeployment(BundleResourceDeployment deployment, String action, String info,
BundleResourceDeploymentHistory.Category category, BundleResourceDeploymentHistory.Status status,
diff --git a/modules/plugins/ant-bundle/src/test/resources/test-bundle-two-archive.zip b/modules/plugins/ant-bundle/src/test/resources/test-bundle-two-archive.zip
new file mode 100644
index 0000000..bbbf938
Binary files /dev/null and b/modules/plugins/ant-bundle/src/test/resources/test-bundle-two-archive.zip differ
diff --git a/modules/plugins/ant-bundle/src/test/resources/test-bundle-two.xml b/modules/plugins/ant-bundle/src/test/resources/test-bundle-two.xml
new file mode 100644
index 0000000..1120855
--- /dev/null
+++ b/modules/plugins/ant-bundle/src/test/resources/test-bundle-two.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+
+<project name="test-bundle-two-recipe" default="main" xmlns:rhq="antlib:org.rhq.bundle">
+
+ <echo>test-bundle-2 basedir=${basedir}</echo>
+
+ <property name="propname1" value="one.prop" />
+
+ <rhq:bundle name="test-bundle-two" version="2.5" description="test bundle two description">
+
+ <rhq:input-property name="${propname1}" />
+ <rhq:input-property name="custom.prop" />
+
+ <rhq:deployment-unit name="dunit">
+ <rhq:file name="test.properties" destinationFile="config/test.properties" replace="true"/>
+ <rhq:archive name="test-bundle-two-archive.zip">
+ <rhq:replace>
+ <rhq:fileset>
+ <include name="one/**"/>
+ </rhq:fileset>
+ </rhq:replace>
+ </rhq:archive>
+ </rhq:deployment-unit>
+
+ </rhq:bundle>
+
+ <target name="main"/>
+
+</project>
\ No newline at end of file
commit 5c42a5df4284b33a0c4ad78507e437a2d5d91b47
Merge: f595c48... 26c8541...
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Jun 18 15:24:02 2010 -0400
Merge branch 'bugfixes' into release-3.0.0
Conflicts:
release.sh
commit f595c483fcd288a1f796822742ede7aff4fb9742
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 18 12:52:41 2010 -0400
BZ-586503: fix for listing MeasurementDataComposites for (auto)groups w/1000+ members
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
index 5a9ae94..761449a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
@@ -18,7 +18,12 @@
*/
package org.rhq.enterprise.gui.coregui.client.gwt;
-import org.rhq.core.domain.auth.Subject;
+import java.util.List;
+import java.util.Set;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
@@ -27,26 +32,19 @@ import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowCo
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
-
-import java.util.List;
-import java.util.Set;
-
/**
* @author Greg Hinkle
*/
@RemoteServiceRelativePath("MeasurementDataGWTService")
public interface MeasurementDataGWTService extends RemoteService {
-
List<MeasurementDataTrait> findCurrentTraitsForResource(int resourceId, DisplayType displayType);
Set<MeasurementData> findLiveData(int resourceId, int[] definitionIds);
- List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId,
- int[] definitionIds, long beginTime, long endTime, int numPoints);
-
+ List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId, int[] definitionIds,
+ long beginTime, long endTime, int numPoints);
- PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end, PageControl pageControl);
+ PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end,
+ PageControl pageControl);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
index d57f5ac..0712c75 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
@@ -18,7 +18,9 @@
*/
package org.rhq.enterprise.gui.coregui.server.gwt;
-import org.rhq.core.domain.auth.Subject;
+import java.util.List;
+import java.util.Set;
+
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
@@ -32,9 +34,6 @@ import org.rhq.enterprise.server.measurement.CallTimeDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
-import java.util.List;
-import java.util.Set;
-
/**
* @author Greg Hinkle
*/
@@ -44,29 +43,24 @@ public class MeasurementDataGWTServiceImpl extends AbstractGWTServiceImpl implem
private CallTimeDataManagerLocal callTimeDataManager = LookupUtil.getCallTimeDataManager();
public List<MeasurementDataTrait> findCurrentTraitsForResource(int resourceId, DisplayType displayType) {
- return SerialUtility.prepare(
- dataManager.findCurrentTraitsForResource(getSessionSubject(), resourceId, displayType),
- "MeasurementDataService.findCurrentTraitsForResource");
+ return SerialUtility.prepare(dataManager.findCurrentTraitsForResource(getSessionSubject(), resourceId,
+ displayType), "MeasurementDataService.findCurrentTraitsForResource");
}
-
public Set<MeasurementData> findLiveData(int resourceId, int[] definitionIds) {
- return SerialUtility.prepare(
- dataManager.findLiveData(getSessionSubject(), resourceId, definitionIds),
- "MeasurementDataService.findLiveData");
+ return SerialUtility.prepare(dataManager.findLiveData(getSessionSubject(), resourceId, definitionIds),
+ "MeasurementDataService.findLiveData");
}
-
- public List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId, int[] definitionIds, long beginTime, long endTime, int numPoints) {
- return SerialUtility.prepare(
- dataManager.findDataForResource(
- getSessionSubject(), resourceId, definitionIds, beginTime, endTime, numPoints),
- "MeasurementDataService.findDataForResource");
+ public List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(int resourceId, int[] definitionIds,
+ long beginTime, long endTime, int numPoints) {
+ return SerialUtility.prepare(dataManager.findDataForResource(getSessionSubject(), resourceId, definitionIds,
+ beginTime, endTime, numPoints), "MeasurementDataService.findDataForResource");
}
- public PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end, PageControl pageControl) {
- return SerialUtility.prepare(
- callTimeDataManager.findCallTimeDataForResource(getSessionSubject(), scheduleId, start, end, pageControl),
- "MeasurementDataService.findCallTimeDataForResource");
+ public PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end,
+ PageControl pageControl) {
+ return SerialUtility.prepare(callTimeDataManager.findCallTimeDataForResource(getSessionSubject(), scheduleId,
+ start, end, pageControl), "MeasurementDataService.findCallTimeDataForResource");
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/servlet/HighLowChartServlet.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/servlet/HighLowChartServlet.java
index ffdfee5..a68baca 100755
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/servlet/HighLowChartServlet.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/servlet/HighLowChartServlet.java
@@ -40,6 +40,7 @@ import org.rhq.enterprise.gui.legacy.DefaultConstants;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementPreferences;
@@ -150,42 +151,16 @@ public class HighLowChartServlet extends ChartServlet implements SingleThreadMod
long endTime = rangePreferences.end;
List<MeasurementDataNumericHighLowComposite> dataPoints = null;
- if (scheduleId > 0) // single resource
- {
+ int resourceId = -1;
+ if (scheduleId > 0) {
MeasurementSchedule schedule = scheduleManager.getScheduleById(subject, scheduleId);
-
- if (schedule != null) {
- if (log.isDebugEnabled())
- log.debug("Plotting a high-low chart data for metric " + schedule.getDefinition().getName()
- + " on resource " + schedule.getResource().getName() + "...");
- dataPoints = dataManager.findDataForResource(subject, schedule.getResource().getId(),
- new int[] { schedule.getDefinition().getId() }, beginTime, endTime, NUMBER_OF_DATA_POINTS).get(0);
- } else {
- log.debug("Passed scheduleId " + scheduleId + " has no schedule attached, ignoring");
- return;
- }
+ resourceId = schedule.getResource().getId();
+ definitionId = schedule.getDefinition().getId();
}
- /*
- * Now look at compatible groups and autogroups
- *
- */
- else if ((groupId > 0) && (definitionId > 0)) // compatible group
- {
- dataPoints = dataManager.findDataForCompatibleGroup(subject, groupId, definitionId, beginTime, endTime,
- NUMBER_OF_DATA_POINTS, true).get(0);
- } else if ((parentId > 0) && (childTypeId > 0) && (definitionId > 0)) // autogroup
- {
- dataPoints = dataManager.findDataForAutoGroup(subject, parentId, childTypeId, definitionId, beginTime,
- endTime, NUMBER_OF_DATA_POINTS, true).get(0);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("No valid input found for HighLowChart: [schedId=" + scheduleId + ", defId=" + definitionId
- + ", groupId=" + groupId + ", parentId=" + parentId + ", childTypeId=" + childTypeId + "]");
- }
-
- return;
- }
+ EntityContext context = new EntityContext(resourceId, groupId, parentId, childTypeId);
+ dataPoints = dataManager.findDataForContext(subject, context, definitionId, beginTime, endTime,
+ NUMBER_OF_DATA_POINTS).get(0);
List<HighLowMetricValue> chartDataPoints = new ArrayList<HighLowMetricValue>(dataPoints.size());
for (MeasurementDataNumericHighLowComposite dataPoint : dataPoints) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java
index 57a3cab..89bedc1 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java
@@ -67,7 +67,6 @@ import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowCo
import org.rhq.core.domain.resource.Agent;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.group.GroupCategory;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.OrderingField;
import org.rhq.core.domain.util.PageOrdering;
@@ -82,6 +81,7 @@ import org.rhq.enterprise.server.alert.engine.AlertConditionCacheManagerLocal;
import org.rhq.enterprise.server.alert.engine.AlertConditionCacheStats;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.jaxb.adapter.MeasurementDataNumericHighLowCompositeAdapter;
import org.rhq.enterprise.server.measurement.instrumentation.MeasurementMonitor;
@@ -327,53 +327,6 @@ public class MeasurementDataManagerBean implements MeasurementDataManagerLocal,
}
/**
- * Return a List of List<MesurementDataNumeric..> where each nested list contains the data for one of the passed
- * resource ids
- */
- public List<List<MeasurementDataNumericHighLowComposite>> findDataForSiblingResources(Subject subject,
- int[] resourceIds, int measurementDefinitionId, long beginTime, long endTime, int numberOfDataPoints) {
- return MeasurementDataManagerUtility.getInstance(rhqDs).getMeasurementDataForSiblingResources(beginTime,
- endTime, resourceIds, measurementDefinitionId);
- }
-
- private List<List<MeasurementDataNumericHighLowComposite>> findDataAggregatesForSiblingResources(Subject subject,
- int[] resourceIds, int measurementDefinitionId, long beginTime, long endTime, int numDataPoints) {
-
- return MeasurementDataManagerUtility.getInstance(rhqDs).getMeasurementDataAggregatesForSiblingResources(
- beginTime, endTime, resourceIds, measurementDefinitionId, numDataPoints);
- }
-
- public List<List<MeasurementDataNumericHighLowComposite>> findDataForAutoGroup(Subject subject,
- int autoGroupParentResourceId, int autoGroupChildResourceTypeId, int measurementDefinitionId, long beginTime,
- long endTime, int numberOfDataPoints, boolean aggregateOverAutoGroup) {
- if (authorizationManager.canViewResource(subject, autoGroupParentResourceId) == false) {
- throw new PermissionException("User[" + subject.getName()
- + "] does not have permission to view measurement data for autogroup[resourceId="
- + autoGroupParentResourceId + ", typeId=" + autoGroupChildResourceTypeId + "]");
- }
-
- List<Resource> resources = resourceGroupManager.findResourcesForAutoGroup(subject, autoGroupParentResourceId,
- autoGroupChildResourceTypeId);
- int[] resourceIds = new int[resources.size()];
- int i = 0;
- for (Resource res : resources) {
- resourceIds[i] = res.getId();
- i++;
- }
-
- List<List<MeasurementDataNumericHighLowComposite>> ret;
- if (aggregateOverAutoGroup) {
- ret = findDataAggregatesForSiblingResources(subject, resourceIds, measurementDefinitionId, beginTime,
- endTime, numberOfDataPoints);
- } else {
- ret = findDataForSiblingResources(subject, resourceIds, measurementDefinitionId, beginTime, endTime,
- numberOfDataPoints);
- }
-
- return ret;
- }
-
- /**
* Return a map of <resource id, List<MetricDisplaySummary>>, where the list contains the
* {@link MetricDisplaySummary} for the (enabled) schedules of the resource
*
@@ -651,7 +604,7 @@ public class MeasurementDataManagerBean implements MeasurementDataManagerLocal,
@Nullable
public MeasurementDataNumeric getCurrentNumericForSchedule(int scheduleId) {
- return MeasurementDataManagerUtility.getInstance(rhqDs).getLatestValueForSchedule(scheduleId);
+ return getConnectedUtilityInstance().getLatestValueForSchedule(scheduleId);
}
private void notifyAlertConditionCacheManager(String callingMethod, MeasurementData[] data) {
@@ -679,8 +632,8 @@ public class MeasurementDataManagerBean implements MeasurementDataManagerLocal,
throw new IllegalArgumentException("Start date " + startTime + " is not before " + endTime);
}
- MeasurementDataManagerUtility utility = MeasurementDataManagerUtility.getInstance(rhqDs);
- MeasurementAggregate aggregate = utility.getAggregateByScheduleId(startTime, endTime, schedule.getId());
+ MeasurementAggregate aggregate = getConnectedUtilityInstance().getAggregateByScheduleId(startTime, endTime,
+ schedule.getId());
return aggregate;
}
@@ -702,9 +655,8 @@ public class MeasurementDataManagerBean implements MeasurementDataManagerLocal,
throw new IllegalArgumentException("Start date " + startTime + " is not before " + endTime);
}
- MeasurementDataManagerUtility utility = MeasurementDataManagerUtility.getInstance(rhqDs);
- MeasurementAggregate aggregate = utility.getAggregateByGroupAndDefinition(startTime, endTime, groupId,
- definitionId);
+ MeasurementAggregate aggregate = getConnectedUtilityInstance().getAggregateByGroupAndDefinition(startTime,
+ endTime, groupId, definitionId);
return aggregate;
}
@@ -762,43 +714,55 @@ public class MeasurementDataManagerBean implements MeasurementDataManagerLocal,
public @XmlJavaTypeAdapter(MeasurementDataNumericHighLowCompositeAdapter.class)
List<List<MeasurementDataNumericHighLowComposite>> findDataForCompatibleGroup(Subject subject, int groupId,
- int definitionId, long beginTime, long endTime, int numPoints, boolean groupAggregateOnly) {
- if (authorizationManager.canViewGroup(subject, groupId) == false) {
- throw new PermissionException("User[" + subject.getName()
- + "] does not have permission to view measurement data for resourceGroup[id=" + groupId + "]");
- }
-
- ResourceGroup group = resourceGroupManager.getResourceGroupById(subject, groupId, GroupCategory.COMPATIBLE);
- Set<Resource> resources = group.getExplicitResources();
+ int definitionId, long beginTime, long endTime, int numPoints) {
- int[] resourceIds = new int[resources.size()];
- int i = 0;
- for (Resource res : resources) {
- resourceIds[i] = res.getId();
- i++;
- }
+ List<List<MeasurementDataNumericHighLowComposite>> ret = findDataForContext(subject, EntityContext
+ .forGroup(groupId), definitionId, beginTime, endTime, numPoints);
+ return ret;
+ }
- List<List<MeasurementDataNumericHighLowComposite>> ret;
+ public List<List<MeasurementDataNumericHighLowComposite>> findDataForContext(Subject subject,
+ EntityContext context, int definitionId, long beginTime, long endTime, int numDataPoints) {
- if (groupAggregateOnly) {
- ret = findDataAggregatesForSiblingResources(subject, resourceIds, definitionId, beginTime, endTime,
- numPoints);
- } else {
- ret = findDataForSiblingResources(subject, resourceIds, definitionId, beginTime, endTime, numPoints);
+ if (context.category == EntityContext.Category.Resource) {
+ if (authorizationManager.canViewResource(subject, context.resourceId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement data for resource[id=" + context.resourceId + "]");
+ }
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ if (authorizationManager.canViewGroup(subject, context.groupId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement data for resourceGroup[id=" + context.groupId
+ + "]");
+ }
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ if (authorizationManager.canViewAutoGroup(subject, context.parentResourceId, context.resourceTypeId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement data for autoGroup[parentResourceId="
+ + context.parentResourceId + ", resourceTypeId=" + context.resourceTypeId + "]");
+ }
}
- return ret;
+ List<List<MeasurementDataNumericHighLowComposite>> results = getConnectedUtilityInstance()
+ .getMeasurementDataAggregatesForContext(beginTime, endTime, context, definitionId, numDataPoints);
+ return results;
}
public List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(Subject subject, int resourceId,
int[] definitionIds, long beginTime, long endTime, int numDataPoints) {
+
if (authorizationManager.canViewResource(subject, resourceId) == false) {
throw new PermissionException("User[" + subject.getName()
+ "] does not have permission to view measurement data for resource[id=" + resourceId + "]");
}
- return MeasurementDataManagerUtility.getInstance(rhqDs).getMeasurementDataForResource(beginTime, endTime,
- resourceId, definitionIds, numDataPoints);
+ List<List<MeasurementDataNumericHighLowComposite>> results = new ArrayList<List<MeasurementDataNumericHighLowComposite>>();
+ EntityContext context = EntityContext.forResource(resourceId);
+ for (int nextDefinitionId : definitionIds) {
+ results.addAll(getConnectedUtilityInstance().getMeasurementDataAggregatesForContext(beginTime, endTime,
+ context, nextDefinitionId, numDataPoints));
+ }
+ return results;
}
@SuppressWarnings("unchecked")
@@ -858,4 +822,8 @@ public class MeasurementDataManagerBean implements MeasurementDataManagerLocal,
return result;
}
+
+ private MeasurementDataManagerUtility getConnectedUtilityInstance() {
+ return MeasurementDataManagerUtility.getInstance(rhqDs);
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerLocal.java
index 0fb4e2f..de557d0 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerLocal.java
@@ -37,6 +37,7 @@ import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowCo
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.uibean.MetricDisplaySummary;
/**
@@ -54,42 +55,6 @@ public interface MeasurementDataManagerLocal {
void addTraitData(Set<MeasurementDataTrait> data);
/**
- * Returns a list of numeric data point lists for the given measurement definition - one per specified resource.
- *
- * @param subject
- * @param resourceIds
- * @param measurementDefinitionId measurement definition id for a numeric metric associated with the given sibling
- * resources
- * @param beginTime
- * @param endTime
- * @param numberOfdataPoints
- *
- * @return
- */
- List<List<MeasurementDataNumericHighLowComposite>> findDataForSiblingResources(Subject subject, int[] resourceIds,
- int measurementDefinitionId, long beginTime, long endTime, int numberOfdataPoints);
-
- /**
- * Returns a list of numeric data point lists for the given auto group - one per specified measurement definition.
- * The data points represent the average min/avg/max values of the members of the group.
- *
- * @param subject
- * @param autoGroupParentResourceId
- * @param autoGroupChildResourceTypeId
- * @param measurementDefinitionId measurement definition id of numeric metrics associated with the given auto
- * group
- * @param beginTime
- * @param endTime
- * @param numberOfDataPoints
- * @param aggregateOverAutoGroup TODO
- *
- * @return
- */
- List<List<MeasurementDataNumericHighLowComposite>> findDataForAutoGroup(Subject subject,
- int autoGroupParentResourceId, int autoGroupChildResourceTypeId, int measurementDefinitionId, long beginTime,
- long endTime, int numberOfDataPoints, boolean aggregateOverAutoGroup);
-
- /**
* Return the current trait value for the passed schedule
*
* @param scheduleId id of a MeasurementSchedule that 'points' to a Trait
@@ -145,6 +110,9 @@ public interface MeasurementDataManagerLocal {
public Map<Integer, List<MetricDisplaySummary>> findNarrowedMetricDisplaySummariesForResourcesAndParent(
Subject subject, int resourceTypeId, int parentId, List<Integer> resourceIds, long begin, long end);
+ public List<List<MeasurementDataNumericHighLowComposite>> findDataForContext(Subject subject,
+ EntityContext context, int definitionId, long beginTime, long endTime, int numDataPoints);
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
@@ -201,12 +169,11 @@ public interface MeasurementDataManagerLocal {
* @param beginTime
* @param endTime
* @param numberOfDataPoints
- * @param aggregateOverGroup TODO
*
* @return
*/
List<List<MeasurementDataNumericHighLowComposite>> findDataForCompatibleGroup(Subject subject, int groupId,
- int definitionId, long beginTime, long endTime, int numPoints, boolean groupAggregateOnly);
+ int definitionId, long beginTime, long endTime, int numPoints);
List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(Subject subject, int resourceId,
int[] definitionIds, long beginTime, long endTime, int numPoints);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
index 6ae188d..6549d2c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote.java
@@ -73,8 +73,7 @@ public interface MeasurementDataManagerRemote {
@WebParam(name = "definitionId") int definitionId, //
@WebParam(name = "beginTime") long beginTime, //
@WebParam(name = "endTime") long endTime, //
- @WebParam(name = "numPoints") int numPoints,//
- @WebParam(name = "groupAggregateOnly") boolean groupAggregateOnly);
+ @WebParam(name = "numPoints") int numPoints);
@WebMethod
@XmlJavaTypeAdapter(MeasurementDataNumericHighLowCompositeAdapter.class)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
index 13603b6..a553d8b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
@@ -20,7 +20,6 @@ package org.rhq.enterprise.server.measurement.util;
import java.lang.reflect.Array;
import java.sql.Connection;
-import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -28,7 +27,6 @@ import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -59,6 +57,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
* time. This is an irrelevant quirk.
*
* @author Greg Hinkle
+ * @author Joseph Marques
*/
public class MeasurementDataManagerUtility {
private static final Log LOG = LogFactory.getLog(MeasurementDataManagerUtility.class);
@@ -107,12 +106,6 @@ public class MeasurementDataManagerUtility {
return util;
}
- public static MeasurementDataManagerUtility getInstance(Connection connection) {
- MeasurementDataManagerUtility util = new MeasurementDataManagerUtility();
- util.connection = connection;
- return util;
- }
-
public static String getTable(long time) {
return TABLE_PREFIX + nf.format(getTableIndex(time));
}
@@ -236,149 +229,43 @@ public class MeasurementDataManagerUtility {
}
}
- public List<List<MeasurementDataNumericHighLowComposite>> getMeasurementDataForResource(long beginTime,
- long endTime, int resourceId, int[] measurementDefinitionIds) throws MeasurementNotFoundException {
-
- // use default number of data points
- return getMeasurementDataForResource(beginTime, endTime, resourceId, measurementDefinitionIds, 0);
- }
-
- public List<List<MeasurementDataNumericHighLowComposite>> getMeasurementDataForResource(long beginTime,
- long endTime, int resourceId, int[] measurementDefinitionIds, int numDataPoints)
+ public List<List<MeasurementDataNumericHighLowComposite>> getMeasurementDataAggregatesForContext(long beginTime,
+ long endTime, EntityContext context, int measurementDefinitionId, int numDataPoints)
throws MeasurementNotFoundException {
String otherTable = ", RHQ_MEASUREMENT_SCHED s ";
- String conditions = " AND d.schedule_id = s.id" + " AND s.resource_id = ? \n" + " AND s.definition = ? \n";
-
- PreparedStatement ps = null;
- ResultSet rs = null;
- Connection myConnection = null;
- List<List<MeasurementDataNumericHighLowComposite>> data = new ArrayList<List<MeasurementDataNumericHighLowComposite>>();
-
- try {
- myConnection = getConnection();
- for (int measurementDefinitionId : measurementDefinitionIds) {
- ps = null;
- rs = null;
- try {
- ps = getFullQuery(myConnection, beginTime, endTime, numDataPoints, otherTable, conditions,
- resourceId, measurementDefinitionId);
- rs = ps.executeQuery();
-
- List<MeasurementDataNumericHighLowComposite> compositeList = new ArrayList<MeasurementDataNumericHighLowComposite>();
- while (rs.next()) {
- long timestamp = rs.getLong(1);
- double value = rs.getDouble(2);
- if (rs.wasNull()) {
- value = Double.NaN;
- }
-
- double peak = rs.getDouble(3);
- if (rs.wasNull()) {
- peak = Double.NaN;
- }
-
- double low = rs.getDouble(4);
- if (rs.wasNull()) {
- low = Double.NaN;
- }
-
- MeasurementDataNumericHighLowComposite next = new MeasurementDataNumericHighLowComposite(
- timestamp, value, peak, low);
- compositeList.add(next);
- }
-
- data.add(compositeList);
- } finally {
- JDBCUtil.safeClose(ps, rs);
- }
- }
- } catch (SQLException e) {
- throw new MeasurementNotFoundException(e);
- } finally {
- JDBCUtil.safeClose(myConnection);
- connection = null; // the close above invalidates the member
- }
- return data;
- }
-
- public List<List<MeasurementDataNumericHighLowComposite>> getMeasurementDataForSiblingResources(long beginTime,
- long endTime, int[] resourceIds, int measurementDefinitionId) throws MeasurementNotFoundException {
-
- // use default numDataPoints
- return getMeasurementDataForSiblingResources(beginTime, endTime, resourceIds, measurementDefinitionId, 0);
-
- }
-
- public List<List<MeasurementDataNumericHighLowComposite>> getMeasurementDataForSiblingResources(long beginTime,
- long endTime, int[] resourceIds, int measurementDefinitionId, int numDataPoints)
- throws MeasurementNotFoundException {
- String otherTable = ", RHQ_MEASUREMENT_SCHED s ";
-
- String conditions = " AND d.schedule_id = s.id" + " AND s.resource_id = ? \n" + " AND s.definition = ? \n";
-
- PreparedStatement ps = null;
- ResultSet rs = null;
- Connection myConnection = null;
- List<List<MeasurementDataNumericHighLowComposite>> data = new ArrayList<List<MeasurementDataNumericHighLowComposite>>();
- for (int resourceId : resourceIds) {
- try {
- myConnection = getConnection();
- ps = getFullQuery(myConnection, beginTime, endTime, numDataPoints, otherTable, conditions, resourceId,
- measurementDefinitionId);
- rs = ps.executeQuery();
-
- List<MeasurementDataNumericHighLowComposite> compositeList = new ArrayList<MeasurementDataNumericHighLowComposite>();
- while (rs.next()) {
- long timestamp = rs.getLong(1);
- double value = rs.getDouble(2);
- if (rs.wasNull()) {
- value = Double.NaN;
- }
-
- double peak = rs.getDouble(3);
- if (rs.wasNull()) {
- peak = Double.NaN;
- }
-
- double low = rs.getDouble(4);
- if (rs.wasNull()) {
- low = Double.NaN;
- }
-
- MeasurementDataNumericHighLowComposite next = new MeasurementDataNumericHighLowComposite(timestamp,
- value, peak, low);
- compositeList.add(next);
- }
+ Object[] bindParams = null;
+ String scheduleSubQuery = null;
+ if (context.category == EntityContext.Category.Resource) {
+ scheduleSubQuery = "" //
+ + "SELECT innerSchedule.id \n" //
+ + " FROM rhq_measurement_sched innerSchedule \n" //
+ + " WHERE innerSchedule.resource_id = ? \n";
+ bindParams = new Object[] { context.getResourceId() };
+
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ scheduleSubQuery = "" //
+ + "SELECT innerSchedule.id \n" //
+ + " FROM rhq_measurement_sched innerSchedule \n" //
+ + " JOIN rhq_resource_group_res_exp_map groupMap \n" //
+ + " ON innerSchedule.resource_id = groupMap.resource_id \n" //
+ + " WHERE groupMap.resource_group_id = ? \n";
+ bindParams = new Object[] { context.getGroupId() };
+
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ scheduleSubQuery = "" //
+ + "SELECT innerSchedule.id \n" //
+ + " FROM rhq_measurement_sched innerSchedule \n" //
+ + " JOIN rhq_resource innerRes \n"//
+ + " ON innerSchedule.resource_id = innerRes.id \n"//
+ + " WHERE innerRes.parent_resource_id = ? \n"//
+ + " AND innerRes.resource_type_id = ? \n";
+ bindParams = new Object[] { context.getParentResourceId(), context.getResourceTypeId() };
- data.add(compositeList);
- } catch (SQLException e) {
- throw new MeasurementNotFoundException(e);
- } finally {
- JDBCUtil.safeClose(myConnection, ps, rs);
- connection = null; // the close above invalidates the member
- }
}
- return data;
- }
-
- public List<List<MeasurementDataNumericHighLowComposite>> getMeasurementDataAggregatesForSiblingResources(
- long beginTime, long endTime, int[] resourceIds, int measurementDefinitionId)
- throws MeasurementNotFoundException {
-
- // use default number of data points
- return getMeasurementDataAggregatesForSiblingResources(beginTime, endTime, resourceIds,
- measurementDefinitionId, 0);
- }
-
- public List<List<MeasurementDataNumericHighLowComposite>> getMeasurementDataAggregatesForSiblingResources(
- long beginTime, long endTime, int[] resourceIds, int measurementDefinitionId, int numDataPoints)
- throws MeasurementNotFoundException {
- String otherTable = ", RHQ_MEASUREMENT_SCHED s ";
-
- String conditions = " AND d.schedule_id = s.id" + " AND s.resource_id IN ( "
- + JDBCUtil.generateInBinds(resourceIds.length) + ") \n" + " AND s.definition = ? \n";
+ String conditions = " AND d.schedule_id = s.id" + " AND s.id IN ( " + scheduleSubQuery + ") \n"
+ + " AND s.definition = ? \n";
PreparedStatement ps = null;
ResultSet rs = null;
@@ -386,30 +273,13 @@ public class MeasurementDataManagerUtility {
List<List<MeasurementDataNumericHighLowComposite>> data = new ArrayList<List<MeasurementDataNumericHighLowComposite>>();
try {
myConnection = getConnection();
- ps = getFullQuery(myConnection, beginTime, endTime, numDataPoints, otherTable, conditions, resourceIds,
- measurementDefinitionId);
+ ps = getFullQuery("getMeasurementDataAggregatesForContext", myConnection, beginTime, endTime,
+ numDataPoints, otherTable, conditions, bindParams, measurementDefinitionId);
rs = ps.executeQuery();
List<MeasurementDataNumericHighLowComposite> compositeList = new ArrayList<MeasurementDataNumericHighLowComposite>();
while (rs.next()) {
- long timestamp = rs.getLong(1);
- double value = rs.getDouble(2);
- if (rs.wasNull()) {
- value = Double.NaN;
- }
-
- double peak = rs.getDouble(3);
- if (rs.wasNull()) {
- peak = Double.NaN;
- }
-
- double low = rs.getDouble(4);
- if (rs.wasNull()) {
- low = Double.NaN;
- }
-
- MeasurementDataNumericHighLowComposite next = new MeasurementDataNumericHighLowComposite(timestamp,
- value, peak, low);
+ MeasurementDataNumericHighLowComposite next = fillHighLowCompositeFromResultSet(rs);
compositeList.add(next);
}
@@ -433,7 +303,8 @@ public class MeasurementDataManagerUtility {
myConnection = getConnection();
String condition = " AND d.schedule_id = ?\n";
- ps = getFullQuery(myConnection, beginTime, endTime, 1, "", condition, scheduleId);
+ ps = getFullQuery("getAggregateByScheduleId", myConnection, beginTime, endTime, 1, "", condition,
+ scheduleId);
rs = ps.executeQuery();
if (rs.next()) {
@@ -465,7 +336,8 @@ public class MeasurementDataManagerUtility {
+ " AND imp_map.resource_group_id = ? \n" //
+ " AND m_sched.definition = ? ) \n";
- ps = getFullQuery(myConnection, beginTime, endTime, 1, "", condition, groupId, definitionId);
+ ps = getFullQuery("getAggregateByGroupAndDefinition", myConnection, beginTime, endTime, 1, "", condition,
+ groupId, definitionId);
rs = ps.executeQuery();
if (rs.next()) {
@@ -482,32 +354,23 @@ public class MeasurementDataManagerUtility {
}
}
- /**
- * @param rs
- *
- * @return
- *
- * @throws SQLException
- */
- private MeasurementAggregate fillAggregateFromResultSet(ResultSet rs) throws SQLException {
- /*
- * ResultSet.getDouble() will return 0.0 for a SQL null so we need to explicitly check for null and set the
- * value to NaN accordingly
- */
- Double min = rs.getDouble(4);
- if (rs.wasNull()) {
- min = Double.NaN;
- }
+ //
- Double avg = rs.getDouble(2);
- if (rs.wasNull()) {
- avg = Double.NaN;
- }
+ private MeasurementDataNumericHighLowComposite fillHighLowCompositeFromResultSet(ResultSet rs) throws SQLException {
+ long timestamp = rs.getLong(1);
+ double value = getDoubleOrNanFromResultSet(rs, 2);
+ double peak = getDoubleOrNanFromResultSet(rs, 3);
+ double low = getDoubleOrNanFromResultSet(rs, 4);
- Double max = rs.getDouble(3);
- if (rs.wasNull()) {
- max = Double.NaN;
- }
+ MeasurementDataNumericHighLowComposite highLowComposite = new MeasurementDataNumericHighLowComposite(timestamp,
+ value, peak, low);
+ return highLowComposite;
+ }
+
+ private MeasurementAggregate fillAggregateFromResultSet(ResultSet rs) throws SQLException {
+ Double min = getDoubleOrNanFromResultSet(rs, 4);
+ Double avg = getDoubleOrNanFromResultSet(rs, 2);
+ Double max = getDoubleOrNanFromResultSet(rs, 3);
MeasurementAggregate measurementAggregate = new MeasurementAggregate(min, avg, max);
return measurementAggregate;
@@ -554,7 +417,7 @@ public class MeasurementDataManagerUtility {
condition = " AND d.schedule_id IN ( " + scheduleSubQuery + " )\n";
myConnection = getConnection();
- ps = getFullQuery(myConnection, beginTime, endTime, 1, "", condition, bindParams);
+ ps = getFullQuery("getAggregateByContext", myConnection, beginTime, endTime, 1, "", condition, bindParams);
rs = ps.executeQuery();
if (rs.next()) {
@@ -609,10 +472,13 @@ public class MeasurementDataManagerUtility {
return null;
}
- private PreparedStatement getFullQuery(Connection connection, long beginTime, long endTime, int numDataPoints,
- String otherTables, String conditions, Object... bindParameters) throws SQLException {
+ private PreparedStatement getFullQuery(String methodName, Connection connection, long beginTime, long endTime,
+ int numDataPoints, String otherTables, String conditions, Object... bindParameters) throws SQLException {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("getFullQuery for " + methodName);
+ }
- // ensure valid number of data points
+ // ensure valid number of data points
numDataPoints = (numDataPoints <= 0) ? DEFAULT_NUM_DATA_POINTS : numDataPoints;
long interval = (endTime - beginTime) / numDataPoints;
@@ -649,7 +515,7 @@ public class MeasurementDataManagerUtility {
}
int i = 1;
- for (String table : tables) {
+ for (int tableIndex = 0; tableIndex < tables.length; tableIndex++) {
ps.setLong(i++, beginTime);
ps.setLong(i++, interval); // 2) interval
ps.setInt(i++, numDataPoints); // 3) points
@@ -671,9 +537,10 @@ public class MeasurementDataManagerUtility {
}
for (int x = 0; x < length; x++) {
- ps.setObject(i++, Array.get(param, x));
+ Object bindValue = Array.get(param, x);
+ ps.setObject(i++, bindValue);
if (LOG.isDebugEnabled()) {
- fullSql.replace(fullSql.indexOf("?"), fullSql.indexOf("?") + 1, String.valueOf(param));
+ fullSql.replace(fullSql.indexOf("?"), fullSql.indexOf("?") + 1, String.valueOf(bindValue));
}
}
} else {
@@ -700,10 +567,11 @@ public class MeasurementDataManagerUtility {
}
public static String getTableString(String table, String valuesClause, String otherTables, String conditions) {
- return " (SELECT beginTS as timestamp, value \n"
- + " FROM (select ? + (? * i) as beginTS, i from RHQ_numbers where i < ?) n,\n" + " " + table
- + " d " + otherTables + " \n" + " WHERE time_stamp BETWEEN beginTS AND (beginTS + ?)\n" + " "
- + conditions + " ) \n";
+ return " (SELECT beginTS as timestamp, value \n" //
+ + " FROM (select ? + (? * i) as beginTS, i from RHQ_numbers where i < ?) n,\n" //
+ + " " + table + " d " + otherTables + " \n" //
+ + " WHERE time_stamp BETWEEN beginTS AND (beginTS + ?)\n" //
+ + " " + conditions + " ) \n";
}
public long getPurge1h() {
@@ -726,68 +594,8 @@ public class MeasurementDataManagerUtility {
return purgeAlert;
}
- public static void main(String[] args) throws Exception {
- System.out.println(getNextRotationTime());
- // Class.forName("org.postgresql.Driver");
- // Connection c = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432","jon","jon");
-
- Class.forName("oracle.jdbc.driver.OracleDriver");
- String db = "jdbc:oracle:thin:@192.168.1.5:1521:xe";
-
- System.out.println("=============getAggregateByScheduleId=================================================");
- Connection c = DriverManager.getConnection(db, "jon", "jon");
- long now = System.currentTimeMillis();
- long start = now - (1000L * 60 * 60 * 22);
- MeasurementAggregate ag = getInstance(c).getAggregateByScheduleId(start, now, 1);
- System.out.println(ag);
-
- System.out
- .println("=============getMeasurementDataForResource=================================================");
- c = DriverManager.getConnection(db, "jon", "jon");
- List<List<MeasurementDataNumericHighLowComposite>> data = getInstance(c).getMeasurementDataForResource(start,
- now, 50, new int[] { 166 });
- System.out.println(data);
-
- System.out
- .println("===========getMeasurementDataForSiblingResources===================================================");
- c = DriverManager.getConnection(db, "jon", "jon");
- data = getInstance(c).getMeasurementDataForSiblingResources(start, now, new int[] { 50 }, 166);
- System.out.println(data);
-
- System.out
- .println("=============getMeasurementDataAggregatesForSiblingResources=================================================");
- c = DriverManager.getConnection(db, "jon", "jon");
- data = getInstance(c).getMeasurementDataAggregatesForSiblingResources(start, now, new int[] { 50 }, 166);
- System.out.println(data);
-
- // Date d = new Date(0);
- // System.out.println("Table for time " + d + " (" + d.getTime() + "): " + getTable(d.getTime()) + " Dead: " + getDeadTable(d.getTime()));
- //
- // d = new Date();
- // System.out.println("Table for time " + d + " (" + d.getTime() + "): " + getTable(d.getTime()) + " Dead: " + getDeadTable(d.getTime()));
- //
- // for (int i = 0; i < (24 * 7); i++)
- // {
- // d = new Date(d.getTime() + (1000L * 60 * 60));
- // System.out.println("Table for time " + d + " (" + d.getTime() + "): " + getTable(d.getTime()) + " Dead: " + getDeadTable(d.getTime()));
- // }
-
- /* System.out.println("-----------");
- * for (int i = 0; i < 100; i++) {
- *
- * long time = TimingVoodoo.roundDownTime(now - (1000L * 60 *60 * i), 1000L * 60 * 60); System.out.println("Table
- * for " + new Date(time) + " is " + getTable(time)); System.out.println("Table for " + new Date(time-1) + " is
- * " + getTable(time-1));
- *
- * }*/
-
- String[] ts = getTables(now - (1000L * 60 * 60 * 8), now);
- System.out.println(Arrays.toString(ts));
- System.out.println("NOW: " + getTable(now));
- }
-
public static long getRawTimePeriodStart(long end) {
- long now = System.currentTimeMillis();
+ //long now = System.currentTimeMillis();
return (end - RAW_PURGE);
}
@@ -807,4 +615,12 @@ public class MeasurementDataManagerUtility {
return datasource.getConnection();
}
}
+
+ private static double getDoubleOrNanFromResultSet(ResultSet rs, int index) throws SQLException {
+ double value = rs.getDouble(index);
+ if (rs.wasNull()) {
+ value = Double.NaN;
+ }
+ return value;
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index 2892d58..98a4519 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -752,9 +752,9 @@ public class WebservicesManagerBean implements WebservicesRemote {
}
public List<List<MeasurementDataNumericHighLowComposite>> findDataForCompatibleGroup(Subject subject, int groupId,
- int definitionId, long beginTime, long endTime, int numPoints, boolean groupAggregateOnly) {
+ int definitionId, long beginTime, long endTime, int numPoints) {
return measurementDataManager.findDataForCompatibleGroup(subject, groupId, definitionId, beginTime, endTime,
- numPoints, groupAggregateOnly);
+ numPoints);
}
public List<List<MeasurementDataNumericHighLowComposite>> findDataForResource(Subject subject, int resourceId,
commit 664449cc6d56e7c715b545765732ff0c85cc3422
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Jun 18 12:04:00 2010 -0400
add some more asserts in test to make sure replace true,false works
diff --git a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
index bd191be..2a59e86 100644
--- a/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
+++ b/modules/plugins/ant-bundle/src/test/java/org/rhq/plugins/ant/AntBundlePluginComponentTest.java
@@ -23,6 +23,7 @@
package org.rhq.plugins.ant;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
@@ -59,14 +60,20 @@ import org.rhq.core.util.file.FileUtil;
import org.rhq.core.util.stream.StreamUtil;
@Test
-public class AntBundlePluginComponentTest {
+public class AntBundlePluginComponentTest {
private AntBundlePluginComponent plugin;
private File tmpDir;
+ private File bundleFilesDir;
+ private File destDir;
@BeforeClass
- public void initTempDir() throws Exception {
- this.tmpDir = new File("target/antbundletest");
+ public void initDirs() throws Exception {
+ this.tmpDir = new File("target/antbundletest/tmp");
FileUtil.purge(this.tmpDir, true);
+ this.bundleFilesDir = new File("target/antbundletest/bundlefiles");
+ FileUtil.purge(this.bundleFilesDir, true);
+ this.destDir = new File("target/antbundletest/destination");
+ FileUtil.purge(this.destDir, true);
}
@BeforeMethod
@@ -74,6 +81,9 @@ public class AntBundlePluginComponentTest {
if (!this.tmpDir.mkdirs()) {
throw new IllegalStateException("Failed to create temp dir '" + this.tmpDir + "'.");
}
+ if (!this.bundleFilesDir.mkdirs()) {
+ throw new IllegalStateException("Failed to create bundle files dir '" + this.bundleFilesDir + "'.");
+ }
this.plugin = new AntBundlePluginComponent();
ResourceType type = new ResourceType("antBundleTestType", "antBundleTestPlugin", ResourceCategory.SERVER, null);
Resource resource = new Resource("antBundleTestKey", "antBundleTestName", type);
@@ -84,8 +94,10 @@ public class AntBundlePluginComponentTest {
}
@AfterMethod(alwaysRun = true)
- public void cleanTmpDir() {
+ public void cleanDirs() {
FileUtil.purge(this.tmpDir, true);
+ FileUtil.purge(this.bundleFilesDir, true);
+ FileUtil.purge(this.destDir, true);
}
/**
@@ -101,10 +113,11 @@ public class AntBundlePluginComponentTest {
BundleVersion bundleVersion = new BundleVersion("testSimpleBundle", "1.0", bundle,
getRecipeFromFile("test-bundle.xml"));
BundleDestination destination = new BundleDestination(bundle, "testSimpleBundle", new ResourceGroup(
- "testSimpleBundle"), "/tmp/rhq-testAntBundle");
+ "testSimpleBundle"), this.destDir.getAbsolutePath());
Configuration config = new Configuration();
- config.put(new PropertySimple("custom.prop1", "ABC123"));
+ String realPropValue = "ABC123";
+ config.put(new PropertySimple("custom.prop1", realPropValue));
BundleDeployment deployment = new BundleDeployment();
deployment.setName("test bundle deployment name");
@@ -113,28 +126,42 @@ public class AntBundlePluginComponentTest {
deployment.setDestination(destination);
// create test file
- File file1 = new File(tmpDir, "test.properties");
+ File file1 = new File(this.bundleFilesDir, "test.properties");
Properties props = new Properties();
props.setProperty("custom.prop1", "@@custom.prop1(a)@");
FileOutputStream outputStream = new FileOutputStream(file1);
- props.store(outputStream, "blah");
+ props.store(outputStream, "replace");
+ outputStream.close();
+
+ // create noreplace test file
+ File noreplacefile = new File(this.bundleFilesDir, "noreplace.properties");
+ outputStream = new FileOutputStream(noreplacefile);
+ props.store(outputStream, "noreplace");
outputStream.close();
BundleDeployRequest request = new BundleDeployRequest();
- request.setBundleFilesLocation(tmpDir);
+ request.setBundleFilesLocation(this.bundleFilesDir);
request.setResourceDeployment(new BundleResourceDeployment(deployment, null));
request.setBundleManagerProvider(new MockBundleManagerProvider());
BundleDeployResult results = plugin.deployBundle(request);
assertResultsSuccess(results);
- // TODO: Check that custom.prop1 got replaced.
+
+ // test that the prop was replaced in test.properties
+ Properties realizedProps = new Properties();
+ realizedProps.load(new FileInputStream(new File(this.destDir, "config/test.properties")));
+ assert realPropValue.equals(realizedProps.getProperty("custom.prop1")) : "didn't replace prop";
+
+ // test that the prop was not replaced in noreplace.properties
+ Properties notrealizedProps = new Properties();
+ notrealizedProps.load(new FileInputStream(new File(this.destDir, "config/noreplace.properties")));
+ assert "@@custom.prop1(a)@".equals(notrealizedProps.getProperty("custom.prop1")) : "replaced prop when it shouldn't";
}
private void assertResultsSuccess(BundleDeployResult results) {
- if (results.getErrorMessage() != null) {
- assert false : "Failed to process bundle: [" + results.getErrorMessage() + "]";
- }
+ assert (results.getErrorMessage() == null) : "Failed to process bundle: [" + results.getErrorMessage() + "]";
+ assert results.isSuccess() : "Failed to process bundle!: [" + results.getErrorMessage() + "]";
}
private String getRecipeFromFile(String filename) {
diff --git a/modules/plugins/ant-bundle/src/test/resources/test-bundle.xml b/modules/plugins/ant-bundle/src/test/resources/test-bundle.xml
index f51fae3..96e7a14 100644
--- a/modules/plugins/ant-bundle/src/test/resources/test-bundle.xml
+++ b/modules/plugins/ant-bundle/src/test/resources/test-bundle.xml
@@ -24,6 +24,7 @@
<rhq:deployment-unit name="doodibittydoo">
<rhq:file name="test.properties" destinationFile="config/test.properties" replace="true"/>
+ <rhq:file name="noreplace.properties" destinationFile="config/noreplace.properties"/>
</rhq:deployment-unit>
</rhq:bundle>
commit d889202845b428795c5a40a7f180bd890818238a
Merge: df088ae... 80edbde...
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:47:49 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
Conflicts:
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
diff --cc modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
index 6dbf695,d4164f8..7cd7fdd
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
@@@ -182,20 -174,13 +174,17 @@@ public class ResourceGWTServiceImpl ext
// ConfigurationUtility.normalizeConfiguration(pluginConfig, pluginConfigDefinition);
}
-
- resourceFactoryManager.createResource(getSessionSubject(),
- parentResourceId, newResourceTypeId, newResourceName, pluginConfig, newResourceConfiguration);
+ resourceFactoryManager.createResource(getSessionSubject(), parentResourceId, newResourceTypeId,
+ newResourceName, pluginConfig, newResourceConfiguration);
}
-
-
public Map<Resource, List<Resource>> getQueuedPlatformsAndServers(HashSet<InventoryStatus> statuses, PageControl pc) {
- return SerialUtility.prepare(discoveryBoss.getQueuedPlatformsAndServers(getSessionSubject(), EnumSet
- .copyOf(statuses), pc), "ResoruceService.getQueuedPlatformsAndServers");
+ return SerialUtility.prepare(
+ discoveryBoss.getQueuedPlatformsAndServers(
+ getSessionSubject(),
+ EnumSet.copyOf(statuses),
+ pc),
+ "ResourceService.getQueuedPlatformsAndServers");
}
public void importResources(Integer[] resourceIds) {
commit df088ae4184f2af42b9e47b9182595fbeff0af41
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:35:08 2010 -0400
Migrated more icons from portal-war
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/DEBUG_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/DEBUG_16.png
new file mode 100644
index 0000000..c52bd6e
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/DEBUG_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/ERROR_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/ERROR_16.png
new file mode 100644
index 0000000..8182778
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/ERROR_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/FATAL_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/FATAL_16.png
new file mode 100644
index 0000000..7211593
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/FATAL_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/INFO_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/INFO_16.png
new file mode 100644
index 0000000..bfca8ca
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/INFO_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/WARNING_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/WARNING_16.png
new file mode 100644
index 0000000..f766722
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/event/WARNING_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_16.png
new file mode 100644
index 0000000..d7fb74d
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_24.png
new file mode 100644
index 0000000..19fcc4a
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_down_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_16.png
new file mode 100644
index 0000000..8d898fd
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_24.png
new file mode 100644
index 0000000..ef195ef
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_up_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_warning_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_warning_24.png
new file mode 100644
index 0000000..7026b71
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Cluster_warning_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_16.png
new file mode 100644
index 0000000..b3cbd5d
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_24.png
new file mode 100644
index 0000000..9df7528
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_down_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_16.png
new file mode 100644
index 0000000..e982a0e
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_24.png
new file mode 100644
index 0000000..a4fd9c5
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_up_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_warning_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_warning_24.png
new file mode 100644
index 0000000..e24e4bf
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Group_warning_24.png differ
commit 21e9f51c713180fa85863e74689688571f67547f
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:34:15 2010 -0400
UI cleanup and tweaks
new table header hiding
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
index 76e104c..4721467 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
@@ -70,7 +70,7 @@ public class BreadcrumbTrailPane extends HTMLPane {
// path.append(breadcrumb.getName());
if (!firstBC) {
- content.append(" > ");
+ content.append("<img src=\"images/header/breadcrumb_space.png\" style=\"vertical-align: middle;\" width=\"28\" height=\"28\"/>");
} else {
firstBC = false;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Footer.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Footer.java
index ca88567..0cc21e5 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Footer.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Footer.java
@@ -113,6 +113,7 @@ public class Footer extends ToolStrip {
public void refresh() {
AlertCriteria alertCriteria = new AlertCriteria();
+ alertCriteria.setPaging(1,1);
// last eight hours
alertCriteria.addFilterStartTime(System.currentTimeMillis() - (1000L * 60 * 60 * 8));
@@ -134,7 +135,7 @@ public class Footer extends ToolStrip {
} else {
- setContents(alerts.size() + " recent alerts");
+ setContents(alerts.getTotalSize() + " recent alerts");
setIcon("subsystems/alert/Alert_HIGH_16.png");
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
index adf12c5..9240e83 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertsView.java
@@ -55,7 +55,7 @@ import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
* @author Ian Springer
* @author Heiko W. Rupp
*/
-public class AlertsView extends VLayout {
+public class AlertsView extends Table {
private static final String TITLE = "Alerts";
private static final SortSpecifier[] SORT_SPECIFIERS = new SortSpecifier[]{
@@ -65,7 +65,6 @@ public class AlertsView extends VLayout {
private static final String DELETE_CONFIRM_MESSAGE = "Are you sure you want to delete the selected alert(s)?";
- private Table table;
private AlertDataSource dataSource;
private HTMLFlow detailsContent;
private DynamicForm detailsTable;
@@ -83,6 +82,11 @@ public class AlertsView extends VLayout {
}
public AlertsView(Criteria criteria, String[] excludedFieldNames) {
+ super(TITLE, criteria, SORT_SPECIFIERS, excludedFieldNames);
+
+ this.dataSource = new AlertDataSource();
+
+ setDataSource(this.dataSource);
this.criteria = criteria;
this.excludedFieldNames = excludedFieldNames;
showDetails = false;
@@ -92,79 +96,62 @@ public class AlertsView extends VLayout {
@Override
protected void onInit() {
super.onInit();
- setWidth100();
- setHeight100();
- setMembersMargin(20);
- }
- @Override
- protected void onDraw() {
- super.onDraw();
-
- if (table == null) {
- this.table = new Table(TITLE, criteria, SORT_SPECIFIERS, excludedFieldNames);
-
-
- // Add the list table as the top half of the view.
- //Criteria criteria = new Criteria(AlertCriteria.);
- this.table.setHeight("50%");
- ListGrid listGrid = this.table.getListGrid();
- this.dataSource = new AlertDataSource();
- this.table.setDataSource(this.dataSource);
- listGrid.getField("name").setWidth("15%");
- listGrid.getField("conditionText").setWidth("30%");
- listGrid.getField("conditionValue").setWidth("10%");
- listGrid.getField("resourceName").setWidth("20%");
+ // Add the list table as the top half of the view.
+ //Criteria criteria = new Criteria(AlertCriteria.);
+ ListGrid listGrid = getListGrid();
+ listGrid.getField("name").setWidth("15%");
+ listGrid.getField("conditionText").setWidth("30%");
+ listGrid.getField("conditionValue").setWidth("10%");
+ listGrid.getField("resourceName").setWidth("20%");
// listGrid.getField("recoveryInfo").setWidth("20%");
- listGrid.getField("priority").setWidth("7%");
- listGrid.getField("ctime").setWidth("13%");
- listGrid.getField("ack").setWidth("5%");
+ listGrid.getField("priority").setWidth("7%");
+ listGrid.getField("ctime").setWidth("13%");
+ listGrid.getField("ack").setWidth("5%");
- listGrid.getField("resourceName").setCellFormatter(new CellFormatter() {
- public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
- return "<a href=\"#Resource/" + listGridRecord.getAttribute("resourceId") + "\">" + o + "</a>";
- }
- });
+ listGrid.getField("resourceName").setCellFormatter(new CellFormatter() {
+ public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
+ return "<a href=\"#Resource/" + listGridRecord.getAttribute("resourceId") + "\">" + o + "</a>";
+ }
+ });
- this.table.addTableAction("Delete", Table.SelectionEnablement.ANY, DELETE_CONFIRM_MESSAGE, new TableAction() {
- public void executeAction(ListGridRecord[] selection) {
- AlertsView.this.dataSource.deleteAlerts(AlertsView.this);
- }
- });
- this.table.addTableAction("Acknowledge", Table.SelectionEnablement.ANY, null, new TableAction() {
- public void executeAction(ListGridRecord[] selection) {
- AlertsView.this.dataSource.acknowledgeAlerts(AlertsView.this);
+ addTableAction("Delete", Table.SelectionEnablement.ANY, DELETE_CONFIRM_MESSAGE, new TableAction() {
+ public void executeAction(ListGridRecord[] selection) {
+ AlertsView.this.dataSource.deleteAlerts(AlertsView.this);
+ }
+ });
+ addTableAction("Acknowledge", Table.SelectionEnablement.ANY, null, new TableAction() {
+ public void executeAction(ListGridRecord[] selection) {
+ AlertsView.this.dataSource.acknowledgeAlerts(AlertsView.this);
+ }
+ });
+
+ if (showDetails) {
+ listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
+ public void onSelectionChanged(SelectionEvent event) {
+ ListGridRecord[] selectedRecords = AlertsView.this.getListGrid().getSelection();
+ String contents;
+ if (selectedRecords.length == 1) {
+ ListGridRecord record = selectedRecords[0];
+
+ // Clean out existing details and provide new ones
+ for (int i = 1; i <= getChildren().length; i++)
+ getChildren()[1].destroy();
+
+ addMember(getDetailsTabSet(record));
+
+ } else {
+ // Clean out existing details and show the "nothing selected message"
+ for (int i = 1; i <= getChildren().length; i++)
+ getChildren()[1].destroy();
+ addMember(getNoAlertSelectedMessage());
+ }
}
});
-
- if (showDetails) {
- listGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
- public void onSelectionChanged(SelectionEvent event) {
- ListGridRecord[] selectedRecords = AlertsView.this.table.getListGrid().getSelection();
- String contents;
- if (selectedRecords.length == 1) {
- ListGridRecord record = selectedRecords[0];
-
- // Clean out existing details and provide new ones
- for (int i = 1; i <= getChildren().length; i++)
- getChildren()[1].destroy();
-
- addMember(getDetailsTabSet(record));
-
- } else {
- // Clean out existing details and show the "nothing selected message"
- for (int i = 1; i <= getChildren().length; i++)
- getChildren()[1].destroy();
- addMember(getNoAlertSelectedMessage());
- }
- }
- });
- }
-
- addMember(this.table);
}
+
// // Add the details panel as the bottom half of the view.
// // Default is the "nothing selected" message
// addMember(getNoAlertSelectedMessage());
@@ -296,18 +283,14 @@ public class AlertsView extends VLayout {
return null;
}
- ListGrid getListGrid() {
- return this.table.getListGrid();
- }
-
public void refresh() {
- this.table.getListGrid().invalidateCache();
+ this.getListGrid().invalidateCache();
//this.table.getListGrid().markForRedraw();
}
public void refresh(Criteria criteria) {
- this.table.refresh(criteria);
+ this.refresh(criteria);
//this.table.getListGrid().markForRedraw();
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java
index 84a2a1f..ef24e7a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/BundleTopView.java
@@ -18,6 +18,7 @@
*/
package org.rhq.enterprise.gui.coregui.client.bundle;
+import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.types.VisibilityMode;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.layout.HLayout;
@@ -47,6 +48,7 @@ public class BundleTopView extends HLayout implements BookmarkableView {
private BundleView bundleView;
public BundleTopView() {
+ setOverflow(Overflow.AUTO);
setWidth100();
setHeight100();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
index 329bbab..24a3425 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
@@ -69,6 +69,7 @@ public class Table extends VLayout {
private String headerIcon;
+ private boolean showHeader = true;
private boolean showFooter = true;
/**
@@ -186,28 +187,32 @@ public class Table extends VLayout {
removeMembers(getMembers());
+ if (showHeader) {
- titleLayout = new HLayout();
- titleLayout.setAutoHeight();
- titleLayout.setAlign(VerticalAlignment.BOTTOM);
+ titleLayout = new HLayout();
+ titleLayout.setAutoHeight();
+ titleLayout.setAlign(VerticalAlignment.BOTTOM);
- if (headerIcon != null) {
- Img img = new Img(headerIcon,24, 24);
- img.setPadding(4);
- titleLayout.addMember(img);
- }
+ if (headerIcon != null) {
+ Img img = new Img(headerIcon, 24, 24);
+ img.setPadding(4);
+ titleLayout.addMember(img);
+ }
- titleLayout.addMember(title);
+ titleLayout.addMember(title);
- if (titleComponent != null) {
- titleLayout.addMember(new LayoutSpacer());
- titleLayout.addMember(titleComponent);
+ if (titleComponent != null) {
+ titleLayout.addMember(new LayoutSpacer());
+ titleLayout.addMember(titleComponent);
+ }
+
+ addMember(titleLayout);
}
- addMember(titleLayout);
addMember(listGrid);
if (showFooter) {
+ footer.removeMembers(footer.getMembers());
for (final TableActionInfo tableAction : tableActions) {
IButton button = new IButton(tableAction.title);
@@ -272,6 +277,18 @@ public class Table extends VLayout {
}
}
+ protected void setListGrid(ListGrid listGrid) {
+ this.listGrid = listGrid;
+ }
+
+ public boolean isShowHeader() {
+ return showHeader;
+ }
+
+ public void setShowHeader(boolean showHeader) {
+ this.showHeader = showHeader;
+ }
+
public boolean isShowFooter() {
return showFooter;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
index a166177..9e183fb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/report/tag/TagCloudView.java
@@ -45,6 +45,15 @@ public class TagCloudView extends VLayout {
private String selectedTag;
+ private boolean simple = false;
+
+ public TagCloudView() {
+ }
+
+ public TagCloudView(boolean simple) {
+ this.simple = simple;
+ }
+
@Override
protected void onDraw() {
super.onDraw();
@@ -72,7 +81,9 @@ public class TagCloudView extends VLayout {
this.tags = tags;
- addMember(new HeaderLabel("Tag Cloud"));
+ if (!simple) {
+ addMember(new HeaderLabel("Tag Cloud"));
+ }
long max = 0;
long total = 0;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
index 31dd771..6dbf695 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
@@ -195,7 +195,7 @@ public class ResourceGWTServiceImpl extends AbstractGWTServiceImpl implements Re
getSessionSubject(),
EnumSet.copyOf(statuses),
pc),
- "ResoruceService.getQueuedPlatformsAndServers");
+ "ResourceService.getQueuedPlatformsAndServers");
}
public void importResources(Integer[] resourceIds) {
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
index 40274c1..d565834 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
+++ b/modules/enterprise/gui/coregui/src/main/webapp/CoreGUI.css
@@ -31,7 +31,6 @@ a, a:link, a:visited, a:hover {
color: #4A5D75 !important;
font-weight: bold !important;
text-decoration: none !important;
-
}
a:hover {
@@ -121,6 +120,7 @@ a:hover {
font-weight: bold;
text-decoration: none;
color: #363636;
+ height: 28px;
}
.SectionHeader {
@@ -302,8 +302,8 @@ a:hover {
}
.menuButton, .menuButtonOver, .menuButtonDown, .menuButtonDisabled, .menuButtonSelected, .menuButtonSelectedDown, .menuButtonSelectedOver, .menuButtonSelectedDisabled {
- border: none;
- font-weight: bold;
+ border: none !important;
+ font-weight: bold !important;
}
@@ -344,4 +344,4 @@ a:hover {
background-color: lightblue;
padding: 5px;
border: 1px solid darkblue;
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/alert/Flag_blue_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/alert/Flag_blue_24.png
new file mode 100644
index 0000000..3082360
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/subsystems/alert/Flag_blue_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_16.png
index 69a4d9f..78f04e5 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_16.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_24.png
index 660e4b8..6872eb6 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_24.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_down_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_16.png
new file mode 100644
index 0000000..202dfe1
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_24.png
new file mode 100644
index 0000000..dd365db
Binary files /dev/null and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_unknown_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_16.png
index 132e4ce..6a5286f 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_16.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_24.png
index 83da6ad..3a56b8d 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_24.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Server_up_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_16.png
index d09143b..9240927 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_16.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_24.png
index 24b1d98..bdc8532 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_24.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_down_24.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_16.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_16.png
index bbebc5c..0ef05e9 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_16.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_16.png differ
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_24.png b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_24.png
index 7df5599..6babc43 100644
Binary files a/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_24.png and b/modules/enterprise/gui/coregui/src/main/webapp/images/types/Service_up_24.png differ
commit 29d24bb6fe1df362c33d8bc7d9c890f8c3cdd489
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:33:00 2010 -0400
Dashboard, measurement schedule and event data access to gwt
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/DashboardGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/DashboardGWTServiceImpl.java
new file mode 100644
index 0000000..1d28f7d
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/DashboardGWTServiceImpl.java
@@ -0,0 +1,59 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.server.gwt;
+
+import java.util.List;
+
+import org.rhq.core.domain.dashboard.Dashboard;
+import org.rhq.enterprise.gui.coregui.client.gwt.DashboardGWTService;
+import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
+import org.rhq.enterprise.server.dashboard.DashboardManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * @author Greg Hinkle
+ */
+public class DashboardGWTServiceImpl extends AbstractGWTServiceImpl implements DashboardGWTService {
+
+ private DashboardManagerLocal dashboardManager = LookupUtil.getDashboardManagerLocal();
+
+
+ public List<Dashboard> findDashboardsForSubject() {
+ return SerialUtility.prepare(dashboardManager.findDashboardsForSubject(getSessionSubject()),
+ "DashboardManager.findDashboardsForSubject");
+ }
+
+ public List<Dashboard> findSharedDashboards() {
+ return SerialUtility.prepare(dashboardManager.findSharedDashboards(getSessionSubject()),
+ "DashboardManager.findSharedDashboards");
+ }
+
+ public Dashboard storeDashboard(Dashboard dashboard) {
+ return SerialUtility.prepare(dashboardManager.storeDashboard(getSessionSubject(),dashboard),
+ "DashboardManager.storeDashboard");
+ }
+
+ public void removeDashboard(int dashboardId) {
+ dashboardManager.removeDashboard(getSessionSubject(), dashboardId);
+ }
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/EventGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/EventGWTServiceImpl.java
new file mode 100644
index 0000000..cdfd2cb
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/EventGWTServiceImpl.java
@@ -0,0 +1,65 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.server.gwt;
+
+import org.rhq.core.domain.criteria.EventCriteria;
+import org.rhq.core.domain.event.Event;
+import org.rhq.core.domain.event.EventSeverity;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.gwt.EventGWTService;
+import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
+import org.rhq.enterprise.server.event.EventManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * @author Greg Hinkle
+ */
+public class EventGWTServiceImpl extends AbstractGWTServiceImpl implements EventGWTService {
+
+ private EventManagerLocal eventManager = LookupUtil.getEventManager();
+
+
+ public EventSeverity[] getSeverityBuckets(int resourceId, long begin, long end, int numBuckets) {
+ return SerialUtility.prepare(
+ eventManager.getSeverityBuckets(getSessionSubject(), resourceId, begin, end, numBuckets),
+ "EventService.getSeverityBuckets");
+ }
+
+ public EventSeverity[] getSeverityBucketsForAutoGroup(int parentResourceId, int resourceTypeId, long begin, long end, int numBuckets) {
+ return SerialUtility.prepare(
+ eventManager.getSeverityBucketsForAutoGroup(getSessionSubject(), parentResourceId, resourceTypeId, begin, end, numBuckets),
+ "EventService.getSeverityBucketsForAutoGroup");
+ }
+
+ public EventSeverity[] getSeverityBucketsForCompGroup(int resourceGroupId, long begin, long end, int numBuckets) {
+ return SerialUtility.prepare(
+ eventManager.getSeverityBucketsForCompGroup(getSessionSubject(), resourceGroupId, begin, end, numBuckets),
+ "EventService.getSeverityBucketsForCompGroup");
+ }
+
+ public PageList<Event> findEventsByCriteria(EventCriteria criteria) {
+ return SerialUtility.prepare(
+ eventManager.findEventsByCriteria(getSessionSubject(), criteria),
+ "EventService.findEventsByCriteria");
+ }
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
index d57f5ac..d2c9cae 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/MeasurementDataGWTServiceImpl.java
@@ -19,9 +19,13 @@
package org.rhq.enterprise.gui.coregui.server.gwt;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
+import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
+import org.rhq.core.domain.measurement.MeasurementDefinition;
+import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.calltime.CallTimeDataComposite;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.domain.util.PageControl;
@@ -30,6 +34,8 @@ import org.rhq.enterprise.gui.coregui.client.gwt.MeasurementDataGWTService;
import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
import org.rhq.enterprise.server.measurement.CallTimeDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
+import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
+import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
import java.util.List;
@@ -43,6 +49,10 @@ public class MeasurementDataGWTServiceImpl extends AbstractGWTServiceImpl implem
private MeasurementDataManagerLocal dataManager = LookupUtil.getMeasurementDataManager();
private CallTimeDataManagerLocal callTimeDataManager = LookupUtil.getCallTimeDataManager();
+ private MeasurementScheduleManagerLocal scheduleManager = LookupUtil.getMeasurementScheduleManager();
+ private MeasurementDefinitionManagerLocal definitionManager = LookupUtil.getMeasurementDefinitionManager();
+
+
public List<MeasurementDataTrait> findCurrentTraitsForResource(int resourceId, DisplayType displayType) {
return SerialUtility.prepare(
dataManager.findCurrentTraitsForResource(getSessionSubject(), resourceId, displayType),
@@ -69,4 +79,17 @@ public class MeasurementDataGWTServiceImpl extends AbstractGWTServiceImpl implem
callTimeDataManager.findCallTimeDataForResource(getSessionSubject(), scheduleId, start, end, pageControl),
"MeasurementDataService.findCallTimeDataForResource");
}
+
+
+ public PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(MeasurementDefinitionCriteria criteria) {
+ return SerialUtility.prepare(
+ definitionManager.findMeasurementDefinitionsByCriteria(getSessionSubject(), criteria),
+ "MeasurementDataService.findMeasurementDefinintionsByCriteria");
+ }
+
+ public PageList<MeasurementSchedule> findMeasurementSchedulesByCriteria(MeasurementScheduleCriteria criteria) {
+ return SerialUtility.prepare(
+ scheduleManager.findSchedulesByCriteria(getSessionSubject(), criteria),
+ "MeasurementDataService.findMeasurementSchedulesByCriteria");
+ }
}
commit 46a8b0db212a254fa1a014f8dd16ada0aea63acc
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:32:11 2010 -0400
Portlet API refactoring
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletFactory.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletFactory.java
index 2e5dcd5..7d208f1 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletFactory.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletFactory.java
@@ -24,17 +24,19 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.Canvas;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.queue.AutodiscoveryPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.resource.FavoriteResourcesPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.resource.graph.GraphPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.alerts.RecentAlertsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.imported.RecentlyAddedView;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.platform.PlatformPortletView;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.summary.InventorySummaryView;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.summary.TagCloudPortlet;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.util.MashupPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.util.MessagePortlet;
/**
* @author Greg Hinkle
@@ -59,19 +61,23 @@ public class PortletFactory {
registeredPortlets.put(GraphPortlet.KEY, GraphPortlet.Factory.INSTANCE);
registeredPortlets.put(TagCloudPortlet.KEY, TagCloudPortlet.Factory.INSTANCE);
+
+ registeredPortlets.put(FavoriteResourcesPortlet.KEY, FavoriteResourcesPortlet.Factory.INSTANCE);
+
+ registeredPortlets.put(MashupPortlet.KEY, MashupPortlet.Factory.INSTANCE);
+ registeredPortlets.put(MessagePortlet.KEY, MessagePortlet.Factory.INSTANCE);
}
- public static Canvas buildPortlet(StoredPortlet storedPortlet) {
+ public static Portlet buildPortlet(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
PortletViewFactory viewFactory = registeredPortlets.get(storedPortlet.getPortletKey());
Canvas canvas = null;
- PortletView view = viewFactory.getInstance();
- view.configure(storedPortlet);
- canvas = (Canvas) view;
+ Portlet view = viewFactory.getInstance();
+ view.configure(portletWindow, storedPortlet);
- return canvas;
+ return view;
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
index 8425ad5..65c237a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
@@ -21,20 +21,26 @@ package org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.queue
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.form.DynamicForm;
-import org.rhq.enterprise.gui.coregui.client.dashboard.PortletView;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.discovery.ResourceAutodiscoveryView;
/**
* @author Greg Hinkle
*/
-public class AutodiscoveryPortlet extends ResourceAutodiscoveryView implements PortletView {
+public class AutodiscoveryPortlet extends ResourceAutodiscoveryView implements Portlet {
public static final String KEY = "Discovery Queue";
- public void configure(StoredPortlet storedPortlet) {
+ public AutodiscoveryPortlet() {
+ super(true);
+ }
+
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
// TODO: Implement this method.
}
@@ -43,13 +49,14 @@ public class AutodiscoveryPortlet extends ResourceAutodiscoveryView implements P
"for monitoring and management or to ingnore them from further action.");
}
- public Canvas getSettingsCanvas() {
+ public DynamicForm getCustomSettingsForm() {
return null; // TODO: Implement this method.
}
- public static final class Factory implements PortletViewFactory {
+ public static final class Factory implements PortletViewFactory {
public static PortletViewFactory INSTANCE = new Factory();
- public final PortletView getInstance() {
+
+ public final Portlet getInstance() {
return GWT.create(AutodiscoveryPortlet.class);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformPortletView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformPortletView.java
index c956e88..eb14394 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformPortletView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/platform/PlatformPortletView.java
@@ -28,14 +28,15 @@ import com.smartgwt.client.types.Autofit;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.Img;
+import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout;
-import com.smartgwt.client.widgets.layout.VLayout;
import org.rhq.core.domain.criteria.ResourceTypeCriteria;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.measurement.MeasurementConverterClient;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
@@ -46,10 +47,9 @@ import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.components.HeaderLabel;
-import org.rhq.enterprise.gui.coregui.client.dashboard.PortletView;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.MeasurementDataGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceTypeGWTServiceAsync;
@@ -57,25 +57,30 @@ import org.rhq.enterprise.gui.coregui.client.gwt.ResourceTypeGWTServiceAsync;
/**
* @author Greg Hinkle
*/
-public class PlatformPortletView extends VLayout implements PortletView {
+public class PlatformPortletView extends ListGrid implements Portlet {
private MeasurementDataGWTServiceAsync measurementService = GWTServiceLookup.getMeasurementDataService();
private ResourceTypeGWTServiceAsync typeService = GWTServiceLookup.getResourceTypeGWTService();
- private PlatformListGrid listGrid;
-
private HashMap<Integer, ResourceType> types = new HashMap<Integer, ResourceType>();
private HashMap<Integer, PlatformMetricDefinitions> platformMetricDefinitionsHashMap = new HashMap<Integer, PlatformMetricDefinitions>();
public static final String KEY = "Platforms Summary";
public PlatformPortletView() {
+ setShowRecordComponents(true);
+ setShowRecordComponentsByCell(true);
+
+ setDataSource(new PlatformMetricDataSource(this));
+ setInitialCriteria(new Criteria("category", ResourceCategory.PLATFORM.name()));
prefetch();
+
}
+
private void prefetch() {
ResourceTypeCriteria typeCriteria = new ResourceTypeCriteria();
@@ -99,14 +104,9 @@ public class PlatformPortletView extends VLayout implements PortletView {
private void buildUI() {
- addMember(new HeaderLabel("Platforms"));
-
- listGrid = new PlatformListGrid();
- listGrid.setDataSource(new PlatformMetricDataSource(this));
- listGrid.setInitialCriteria(new Criteria("category", ResourceCategory.PLATFORM.name()));
- listGrid.setAutoFetchData(true);
- listGrid.setUseAllDataSourceFields(true);
- listGrid.setAutoFitData(Autofit.HORIZONTAL);
+ setAutoFetchData(true);
+ setUseAllDataSourceFields(true);
+ setAutoFitData(Autofit.HORIZONTAL);
ListGridField nameField = new ListGridField("name", "Name", 250);
nameField.setCellFormatter(new CellFormatter() {
@@ -114,17 +114,16 @@ public class PlatformPortletView extends VLayout implements PortletView {
return "<a href=\"#Resource/" + listGridRecord.getAttribute("id") + "\">" + o + "</a>";
}
});
- listGrid.setFields(nameField);
+ setFields(nameField);
- addMember(listGrid);
- listGrid.getField("icon").setWidth(25);
+ getField("icon").setWidth(25);
- listGrid.hideField("id");
- listGrid.hideField("description");
- listGrid.hideField("pluginName");
- listGrid.hideField("category");
- listGrid.hideField("currentAvailability");
+ hideField("id");
+ hideField("description");
+ hideField("pluginName");
+ hideField("category");
+ hideField("currentAvailability");
}
@@ -157,8 +156,8 @@ public class PlatformPortletView extends VLayout implements PortletView {
record.setAttribute("memory", percent);
*/
- listGrid.setSortField(1);
- listGrid.refreshFields();
+ setSortField(1);
+ refreshFields();
markForRedraw();
}
});
@@ -198,7 +197,7 @@ public class PlatformPortletView extends VLayout implements PortletView {
return null;
}
- public void configure(StoredPortlet storedPortlet) {
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
// TODO: Implement this method.
}
@@ -206,89 +205,81 @@ public class PlatformPortletView extends VLayout implements PortletView {
return new HTMLFlow("This portlet displays information about platforms in inventory.");
}
- public Canvas getSettingsCanvas() {
+ public DynamicForm getCustomSettingsForm() {
return null; // TODO: Implement this method.
}
- private static class PlatformListGrid extends ListGrid {
-
- private PlatformListGrid() {
- setShowRecordComponents(true);
- setShowRecordComponentsByCell(true);
- }
+ @Override
+ protected Canvas createRecordComponent(ListGridRecord listGridRecord, Integer colNum) {
- @Override
- protected Canvas createRecordComponent(ListGridRecord listGridRecord, Integer colNum) {
+ String fieldName = this.getFieldName(colNum);
- String fieldName = this.getFieldName(colNum);
+ try {
+ if (fieldName.equals("cpu")) {
+ if (listGridRecord.getAttribute(CPUMetric.Idle.property) != null) {
+ HLayout bar = new HLayout();
+ bar.setHeight(18);
+ bar.setWidth100();
- try {
- if (fieldName.equals("cpu")) {
- if (listGridRecord.getAttribute(CPUMetric.Idle.property) != null) {
- HLayout bar = new HLayout();
- bar.setHeight(18);
- bar.setWidth100();
+ double value = listGridRecord.getAttributeAsDouble(CPUMetric.Idle.property);
+ value = 1 - value;
- double value = listGridRecord.getAttributeAsDouble(CPUMetric.Idle.property);
- value = 1 - value;
+ HTMLFlow text = new HTMLFlow(MeasurementConverterClient.format(value, MeasurementUnits.PERCENTAGE, true));
+ text.setAutoWidth();
+ bar.addMember(text);
- HTMLFlow text = new HTMLFlow(MeasurementConverterClient.format(value, MeasurementUnits.PERCENTAGE, true));
- text.setAutoWidth();
- bar.addMember(text);
+ Img first = new Img("availBar/up.png");
+ first.setHeight(18);
+ first.setWidth((value * 100) + "%");
+ bar.addMember(first);
- Img first = new Img("availBar/up.png");
- first.setHeight(18);
- first.setWidth((value * 100) + "%");
- bar.addMember(first);
+ Img second = new Img("availBar/unknown.png");
+ second.setHeight(18);
+ second.setWidth((100 - (value * 100)) + "%");
+ bar.addMember(second);
- Img second = new Img("availBar/unknown.png");
- second.setHeight(18);
- second.setWidth((100 - (value * 100)) + "%");
- bar.addMember(second);
-
-
- return bar;
- }
+ return bar;
+ }
- } else if (fieldName.equals("memory")) {
- if (listGridRecord.getAttribute(MemoryMetric.Total.property) != null) {
- HLayout bar = new HLayout();
- bar.setHeight(18);
- bar.setWidth100();
- double total = listGridRecord.getAttributeAsDouble(MemoryMetric.Total.property);
- double value = listGridRecord.getAttributeAsDouble(MemoryMetric.Used.property);
- double percent = value / total;
+ } else if (fieldName.equals("memory")) {
+ if (listGridRecord.getAttribute(MemoryMetric.Total.property) != null) {
+ HLayout bar = new HLayout();
+ bar.setHeight(18);
+ bar.setWidth100();
- HTMLFlow text = new HTMLFlow(MeasurementConverterClient.format(percent, MeasurementUnits.PERCENTAGE, true));
- text.setAutoWidth();
- bar.addMember(text);
+ double total = listGridRecord.getAttributeAsDouble(MemoryMetric.Total.property);
+ double value = listGridRecord.getAttributeAsDouble(MemoryMetric.Used.property);
+ double percent = value / total;
- Img first = new Img("availBar/up.png");
- first.setHeight(18);
- first.setWidth((percent * 100) + "%");
- bar.addMember(first);
+ HTMLFlow text = new HTMLFlow(MeasurementConverterClient.format(percent, MeasurementUnits.PERCENTAGE, true));
+ text.setAutoWidth();
+ bar.addMember(text);
- Img second = new Img("availBar/unknown.png");
- second.setHeight(18);
- second.setWidth((100 - (percent * 100)) + "%");
- bar.addMember(second);
+ Img first = new Img("availBar/up.png");
+ first.setHeight(18);
+ first.setWidth((percent * 100) + "%");
+ bar.addMember(first);
+ Img second = new Img("availBar/unknown.png");
+ second.setHeight(18);
+ second.setWidth((100 - (percent * 100)) + "%");
+ bar.addMember(second);
- return bar;
- }
+ return bar;
}
- return null;
- } catch (Exception e) {
- // expected until first data loaded
- return null;
}
+ return null;
+ } catch (Exception e) {
+ // expected until first data loaded
+ return null;
}
+
}
@@ -357,7 +348,7 @@ public class PlatformPortletView extends VLayout implements PortletView {
public static final class Factory implements PortletViewFactory {
public static PortletViewFactory INSTANCE = new Factory();
- public final PortletView getInstance() {
+ public final Portlet getInstance() {
return GWT.create(PlatformPortletView.class);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
index b3a302c..6cb001b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
@@ -21,20 +21,27 @@ package org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.alerts;
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.alert.AlertsView;
-import org.rhq.enterprise.gui.coregui.client.dashboard.PortletView;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
/**
* @author Greg Hinkle
*/
-public class RecentAlertsPortlet extends AlertsView implements PortletView {
+public class RecentAlertsPortlet extends AlertsView implements Portlet {
public static final String KEY = "Recent Alerts";
- public void configure(StoredPortlet storedPortlet) {
+ public RecentAlertsPortlet() {
+ setShowHeader(false);
+ setShowFooter(false);
+ }
+
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
// TODO: Implement this method.
}
@@ -42,14 +49,14 @@ public class RecentAlertsPortlet extends AlertsView implements PortletView {
return new HTMLFlow("Displays recent alerts fired on resources visible to the current user login.");
}
- public Canvas getSettingsCanvas() {
+ public DynamicForm getCustomSettingsForm() {
return null; // TODO: Implement this method.
}
public static final class Factory implements PortletViewFactory {
public static PortletViewFactory INSTANCE = new Factory();
- public final PortletView getInstance() {
+ public final Portlet getInstance() {
return GWT.create(RecentAlertsPortlet.class);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedView.java
index c3a825a..08b611c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedView.java
@@ -26,22 +26,28 @@ package org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.imported
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.grid.CellFormatter;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.tree.TreeGrid;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.components.HeaderLabel;
-import org.rhq.enterprise.gui.coregui.client.dashboard.PortletView;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
-public class RecentlyAddedView extends VLayout implements PortletView {
+public class RecentlyAddedView extends VLayout implements Portlet {
public static final String KEY = "Recently Added Portlet";
+ private boolean simple = true;
+
+ public RecentlyAddedView() {
+ }
@Override
protected void onInit() {
@@ -66,13 +72,15 @@ public class RecentlyAddedView extends VLayout implements PortletView {
treeGrid.setFields(resourceNameField, timestampField);
- addMember(new HeaderLabel("Recently Added Resources"));
+ if (!simple) {
+ addMember(new HeaderLabel("Recently Added Resources"));
+ }
addMember(treeGrid);
}
- public void configure(StoredPortlet storedPortlet) {
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
}
@@ -80,14 +88,14 @@ public class RecentlyAddedView extends VLayout implements PortletView {
return new HTMLFlow("This portlet displays resources that have recently been imported into the inventory.");
}
- public Canvas getSettingsCanvas() {
+ public DynamicForm getCustomSettingsForm() {
return null;
}
public static final class Factory implements PortletViewFactory {
public static PortletViewFactory INSTANCE = new Factory();
- public final PortletView getInstance() {
+ public final Portlet getInstance() {
return GWT.create(RecentlyAddedView.class);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryView.java
index f3c8354..2a1a341 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryView.java
@@ -32,23 +32,23 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.FormItem;
-import com.smartgwt.client.widgets.form.fields.HeaderItem;
import com.smartgwt.client.widgets.form.fields.LinkItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
import com.smartgwt.client.widgets.layout.VLayout;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.resource.InventorySummary;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.dashboard.PortletView;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceBossGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.InventoryView;
-public class InventorySummaryView extends VLayout implements PortletView {
+public class InventorySummaryView extends VLayout implements Portlet {
private ResourceBossGWTServiceAsync resourceBossService = GWTServiceLookup.getResourceBossService();
@@ -65,9 +65,9 @@ public class InventorySummaryView extends VLayout implements PortletView {
form = new DynamicForm();
List<FormItem> formItems = new ArrayList<FormItem>();
- HeaderItem headerItem = new HeaderItem("header");
- headerItem.setValue("Inventory Summary");
- formItems.add(headerItem);
+// HeaderItem headerItem = new HeaderItem("header");
+// headerItem.setValue("Inventory Summary");
+// formItems.add(headerItem);
StaticTextItem platformTotal = createSummaryRow("platformTotal", "Platform Total",
summary.getPlatformCount());
@@ -118,7 +118,7 @@ public class InventorySummaryView extends VLayout implements PortletView {
return item;
}
- public void configure(StoredPortlet storedPortlet) {
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
// TODO: Implement this method.
}
@@ -126,13 +126,13 @@ public class InventorySummaryView extends VLayout implements PortletView {
return null; // TODO: Implement this method.
}
- public Canvas getSettingsCanvas() {
+ public DynamicForm getCustomSettingsForm() {
return null; // TODO: Implement this method.
}
public static final class Factory implements PortletViewFactory {
public static PortletViewFactory INSTANCE = new Factory();
- public final PortletView getInstance() {
+ public final Portlet getInstance() {
return GWT.create(InventorySummaryView.class);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java
index 7f21a81..8521be4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/TagCloudPortlet.java
@@ -24,42 +24,38 @@ package org.rhq.enterprise.gui.coregui.client.dashboard.portlets.summary;
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.layout.VLayout;
+import com.smartgwt.client.widgets.HTMLFlow;
-import org.rhq.enterprise.gui.coregui.client.dashboard.PortletView;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import org.rhq.enterprise.gui.coregui.client.report.tag.TagCloudView;
/**
* @author Greg Hinkle
*/
-public class TagCloudPortlet extends VLayout implements PortletView {
+public class TagCloudPortlet extends TagCloudView implements Portlet {
public static final String KEY = "TagCloud";
- @Override
- protected void onInit() {
- super.onInit();
- addMember(new TagCloudView());
+ public TagCloudPortlet() {
+ super(true);
}
- public void configure(StoredPortlet storedPortlet) {
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
// TODO: Implement this method.
}
public Canvas getHelpCanvas() {
- return null; // TODO: Implement this method.
- }
-
- public Canvas getSettingsCanvas() {
- return null; // TODO: Implement this method.
+ return new HTMLFlow("The <b>Tag Cloud</b> portlet displays the relative tag counts in the system visible " +
+ "to the current user.");
}
public static final class Factory implements PortletViewFactory {
public static PortletViewFactory INSTANCE = new Factory();
- public final PortletView getInstance() {
+ public final Portlet getInstance() {
return GWT.create(TagCloudPortlet.class);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MessagePortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MessagePortlet.java
new file mode 100644
index 0000000..429e6d7
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MessagePortlet.java
@@ -0,0 +1,79 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard.portlets.util;
+
+import com.google.gwt.core.client.GWT;
+import com.smartgwt.client.types.ContentsType;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.HTMLPane;
+
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
+import org.rhq.core.domain.configuration.definition.PropertySimpleType;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.ConfigurablePortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
+
+/**
+ * @author Greg Hinkle
+ */
+public class MessagePortlet extends HTMLPane implements ConfigurablePortlet {
+
+ public static final String KEY = "Message";
+
+ public MessagePortlet() {
+ setContentsType(ContentsType.PAGE);
+ }
+
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
+ String contents = storedPortlet.getConfiguration().getSimpleValue("message",null);
+ if (contents != null) {
+ setContents(contents);
+ } else {
+ setContents("<i>Message not yet configured, click the settings button to setup this portlet.");
+ }
+ }
+
+ public Canvas getHelpCanvas() {
+ return new HTMLFlow("This portlet can display an HTML message on the dashboard.");
+ }
+
+ public ConfigurationDefinition getConfigurationDefinition() {
+ ConfigurationDefinition definition = new ConfigurationDefinition("MessagePortlet Configuration", "The configuration settings for the message portlet.");
+
+ definition.put(new PropertyDefinitionSimple("message", "Message", true, PropertySimpleType.LONG_STRING));
+
+ return definition;
+ }
+
+ public static final class Factory implements PortletViewFactory {
+ public static PortletViewFactory INSTANCE = new Factory();
+
+ public final Portlet getInstance() {
+ return GWT.create(MessagePortlet.class);
+ }
+ }
+}
\ No newline at end of file
commit 5fa7f5c59365fe16ef81421ae25480260f25fdcb
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:31:34 2010 -0400
new mashup portlet to include external content
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MashupPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MashupPortlet.java
new file mode 100644
index 0000000..e4d4bef
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/util/MashupPortlet.java
@@ -0,0 +1,87 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard.portlets.util;
+
+import com.google.gwt.core.client.GWT;
+import com.smartgwt.client.types.ContentsType;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.HTMLPane;
+
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
+import org.rhq.core.domain.configuration.definition.PropertySimpleType;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.ConfigurablePortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
+
+/**
+ * @author Greg Hinkle
+ */
+public class MashupPortlet extends HTMLPane implements ConfigurablePortlet {
+
+ public static final String KEY = "Mashup";
+
+ public MashupPortlet() {
+ setContentsType(ContentsType.PAGE);
+
+ }
+
+ @Override
+ public void transformHTML(String s) {
+ super.transformHTML(s);
+
+
+ }
+
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
+ String url = storedPortlet.getConfiguration().getSimpleValue("address",null);
+ if (url != null) {
+ setContentsURL(url);
+ } else {
+ setContents("<i>Page address not yet configured, click the settings button to setup this portlet.");
+ }
+ }
+
+ public Canvas getHelpCanvas() {
+ return new HTMLFlow("This portlet can include a web page via an HTTP request into an iframe on the dashboard.");
+ }
+
+ public ConfigurationDefinition getConfigurationDefinition() {
+ ConfigurationDefinition definition = new ConfigurationDefinition("MashupPorlet Configuration", "The configuration settings for the mashup portlet.");
+
+ definition.put(new PropertyDefinitionSimple("address", "Web Address", true, PropertySimpleType.STRING));
+
+ return definition;
+ }
+
+ public static final class Factory implements PortletViewFactory {
+ public static PortletViewFactory INSTANCE = new Factory();
+
+ public final Portlet getInstance() {
+ return GWT.create(MashupPortlet.class);
+ }
+ }
+}
commit 22f982b78e76227052e09e818f8cbe6883871b61
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:31:16 2010 -0400
new favorite resources portlet
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
new file mode 100644
index 0000000..99fc8f6
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
@@ -0,0 +1,103 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard.portlets.inventory.resource;
+
+import java.util.Set;
+
+import com.google.gwt.core.client.GWT;
+import com.smartgwt.client.data.Criteria;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.grid.events.FieldStateChangedEvent;
+import com.smartgwt.client.widgets.grid.events.FieldStateChangedHandler;
+
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSearchView;
+
+/**
+ * @author Greg Hinkle
+ */
+public class FavoriteResourcesPortlet extends ResourceSearchView implements Portlet {
+
+ public static final String KEY = "Favorite Resources";
+
+ public static final String CFG_TABLE_PREFS = "tablePreferences";
+
+ private DashboardPortlet storedPortlet;
+ private PortletWindow portletWindow;
+
+ public FavoriteResourcesPortlet() {
+ setShowHeader(false);
+ setShowFooter(false);
+
+ Set<Integer> favoriteIds = CoreGUI.getUserPreferences().getFavoriteResources();
+
+ Integer[] favArray = favoriteIds.toArray(new Integer[favoriteIds.size()]);
+
+
+ Criteria criteria = new Criteria();
+ criteria.addCriteria("resourceIds", favArray );
+
+ refresh(criteria);
+
+ getListGrid().addFieldStateChangedHandler(new FieldStateChangedHandler() {
+ public void onFieldStateChanged(FieldStateChangedEvent fieldStateChangedEvent) {
+ String state = getListGrid().getViewState();
+
+ storedPortlet.getConfiguration().put(new PropertySimple(CFG_TABLE_PREFS,state));
+ portletWindow.save();
+ }
+ });
+ }
+
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
+ this.portletWindow = portletWindow;
+ this.storedPortlet = storedPortlet;
+
+ if (storedPortlet.getConfiguration().getSimple(CFG_TABLE_PREFS) != null) {
+ String state = storedPortlet.getConfiguration().getSimple(CFG_TABLE_PREFS).getStringValue();
+ getListGrid().setViewState(state);
+ }
+
+
+ }
+
+ public Canvas getHelpCanvas() {
+ return new HTMLFlow("This portlet displays your favorite resources");
+ }
+
+
+ public static final class Factory implements PortletViewFactory {
+ public static PortletViewFactory INSTANCE = new Factory();
+
+ public final Portlet getInstance() {
+ return GWT.create(FavoriteResourcesPortlet.class);
+ }
+ }
+
+}
commit 9c6dcaae76a6e860e488c72f74f18da83bc0f24c
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:31:05 2010 -0400
Configurable graph portlet
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/graph/GraphPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/graph/GraphPortlet.java
index 425cd42..b540699 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/graph/GraphPortlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/graph/GraphPortlet.java
@@ -19,41 +19,137 @@
package org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.resource.graph;
import com.google.gwt.core.client.GWT;
+import com.smartgwt.client.data.Criteria;
+import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.events.SubmitValuesEvent;
+import com.smartgwt.client.widgets.form.events.SubmitValuesHandler;
+import com.smartgwt.client.widgets.form.fields.SelectItem;
+import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
-import org.rhq.enterprise.gui.coregui.client.dashboard.PortletView;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
+import org.rhq.core.domain.configuration.definition.PropertySimpleType;
+import org.rhq.enterprise.gui.coregui.client.components.lookup.ResourceLookupComboBoxItem;
+import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.ResourceScheduledMetricDatasource;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.SmallGraphView;
/**
* @author Greg Hinkle
*/
-public class GraphPortlet extends SmallGraphView implements PortletView {
+public class GraphPortlet extends SmallGraphView implements CustomSettingsPortlet {
public static final String KEY = "Resource Graph";
- public GraphPortlet() {
+ PortletWindow portletWindow;
+ DashboardPortlet storedPortlet;
+ public GraphPortlet() {
+ setOverflow(Overflow.HIDDEN);
}
- public void configure(StoredPortlet storedPortlet) {
- setResourceId(Integer.parseInt(storedPortlet.getProperties().get("resourceId")));
- setDefinitionId(Integer.parseInt(storedPortlet.getProperties().get("definitionId")));
+ public void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet) {
+ this.portletWindow = portletWindow;
+ this.storedPortlet = storedPortlet;
+ if (storedPortlet.getConfiguration().getSimple("resourceId") != null) {
+ setResourceId(storedPortlet.getConfiguration().getSimple("resourceId").getIntegerValue());
+ setDefinitionId(storedPortlet.getConfiguration().getSimple("definitionId").getIntegerValue());
+ }
}
public Canvas getHelpCanvas() {
- return null; // TODO: Implement this method.
+ return new HTMLFlow("<h3>Graph Portlet</h3>This Portlet supports the graphing of a resource metric.");
+ }
+
+ public ConfigurationDefinition getConfigurationDefinition() {
+ ConfigurationDefinition def = new ConfigurationDefinition("Graph Config", "Configuration of the graph portlet");
+ def.put(new PropertyDefinitionSimple("resourceId", "The resource to graph", true, PropertySimpleType.INTEGER));
+ def.put(new PropertyDefinitionSimple("definitionId", "The metric definition id to graph", true, PropertySimpleType.INTEGER));
+
+ return def;
}
- public Canvas getSettingsCanvas() {
- return null; // TODO: Implement this method.
+
+
+ @Override
+ protected void onDraw() {
+ removeMembers(getMembers());
+ if (storedPortlet.getConfiguration().getSimple("resourceId") != null) {
+ super.onDraw();
+ } else {
+ addMember(new Label("This graph is unconfigured, click the settings button to configure."));
+ }
+ }
+
+ public DynamicForm getCustomSettingsForm() {
+ final DynamicForm form = new DynamicForm();
+
+
+ final ResourceLookupComboBoxItem resourceLookupComboBoxItem = new ResourceLookupComboBoxItem("resourceId", "Resource");
+ resourceLookupComboBoxItem.setWidth(300);
+
+ final SelectItem metric = new SelectItem("definitionId", "Metric") {
+ @Override
+ protected Criteria getPickListFilterCriteria() {
+ Criteria criteria = new Criteria();
+
+ if (resourceLookupComboBoxItem.getValue() != null) {
+ int resourceId = (Integer) resourceLookupComboBoxItem.getValue();
+ criteria.addCriteria("resourceId", resourceId);
+ }
+ return criteria;
+ }
+ };
+
+ metric.setWidth(300);
+ metric.setValueField("id");
+ metric.setDisplayField("displayName");
+ metric.setOptionDataSource(new ResourceScheduledMetricDatasource());
+
+
+ resourceLookupComboBoxItem.addChangedHandler(new com.smartgwt.client.widgets.form.fields.events.ChangedHandler() {
+ public void onChanged(ChangedEvent
+ event) {
+
+ if (form.getValue("resourceId") instanceof Integer) {
+ metric.fetchData();
+ form.clearValue("defininitionId");
+ }
+ }
+ });
+
+ if (storedPortlet.getConfiguration().getSimple("resourceId") != null) {
+ form.setValue("resourceId", storedPortlet.getConfiguration().getSimple("resourceId").getIntegerValue());
+ form.setValue("definitionId", storedPortlet.getConfiguration().getSimple("definitionId").getIntegerValue());
+ }
+
+ form.setFields(resourceLookupComboBoxItem, metric);
+
+ form.addSubmitValuesHandler(new SubmitValuesHandler() {
+ public void onSubmitValues(SubmitValuesEvent submitValuesEvent) {
+ storedPortlet.getConfiguration().put(new PropertySimple("resourceId", form.getValue("resourceId")));
+ storedPortlet.getConfiguration().put(new PropertySimple("definitionId", form.getValue("definitionId")));
+
+ }
+ });
+
+ return form;
}
public static final class Factory implements PortletViewFactory {
public static PortletViewFactory INSTANCE = new Factory();
- public final PortletView getInstance() {
+ public final Portlet getInstance() {
return GWT.create(GraphPortlet.class);
}
}
commit feeeb2d38f8a0e00455f61782f8c5bfe542c6688
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:30:49 2010 -0400
New Dashboard persistence implementation utilities
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardManager.java
new file mode 100644
index 0000000..bf53761
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardManager.java
@@ -0,0 +1,58 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard.store;
+
+import java.util.HashSet;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+import org.rhq.core.domain.dashboard.Dashboard;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.gwt.DashboardGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+
+/**
+ * @author Greg Hinkle
+ */
+public class DashboardManager {
+
+
+ private static DashboardGWTServiceAsync dashboardService = GWTServiceLookup.getDashboardService();
+
+
+ public static void storeDashboard(final Dashboard dashboard) {
+
+ dashboardService.storeDashboard(dashboard, new AsyncCallback<Dashboard>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to store dashboard to server " + dashboard.getName() ,caught);
+ }
+
+ public void onSuccess(Dashboard result) {
+ CoreGUI.getMessageCenter().notify(new Message("Saved dashboard " + result.getName(), Message.Severity.Info));
+ }
+ });
+
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardStore.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardStore.java
deleted file mode 100644
index 1067359..0000000
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/DashboardStore.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.coregui.client.dashboard.store;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.util.preferences.UserPreferences;
-
-/**
- * @author Greg Hinkle
- */
-public class DashboardStore {
-
- public static final String STORE_KEY = ".dashboards";
-
- private UserPreferences preferences;
-
-
- private HashSet<StoredDashboard> storedDashboards = new HashSet<StoredDashboard>();
-
-
- public DashboardStore() {
-
- preferences = CoreGUI.getUserPreferences();
- load();
-
- }
-
-
- public void load() {
-// Set<Integer> dashboardIds = preferences.getPreferenceAsIntegerSet(STORE_KEY);
-
-
- }
-
-
- public Set<StoredDashboard> getStoredDashboards() {
- return storedDashboards;
- }
-}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredDashboard.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredDashboard.java
deleted file mode 100644
index f6a9999..0000000
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredDashboard.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.coregui.client.dashboard.store;
-
-import java.util.ArrayList;
-
-/**
- * @author Greg Hinkle
- */
-public class StoredDashboard {
-
- public static final String STORE_KEY = ".dashboard.";
- private String id;
-
- private String name;
-
- private int columns;
-
- private String[] columnWidths;
-
- private ArrayList<ArrayList<StoredPortlet>> portlets = new ArrayList<ArrayList<StoredPortlet>>();
-
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public int getColumns() {
- return columns;
- }
-
-
- public ArrayList<ArrayList<StoredPortlet>> getPortlets() {
- return portlets;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void setColumns(int columns) {
- this.columns = columns;
- }
-
-
- public String[] getColumnWidths() {
- return columnWidths;
- }
-
- public void setColumnWidths(String... columnWidths) {
- this.columnWidths = columnWidths;
- }
-}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredPortlet.java
deleted file mode 100644
index e684f42..0000000
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/store/StoredPortlet.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.coregui.client.dashboard.store;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Greg Hinkle
- */
-public class StoredPortlet {
-
- public static final String STORE_KEY = ".dashboardPortlet.";
- private String id;
-
-
- private String portletKey;
- private String name;
-
- private int column;
- private int index;
-
- private int height = 300;
-
- private Map<String,String> properties = new HashMap<String, String>();
-
-
- public StoredPortlet() {
- }
-
- public StoredPortlet(String name, String portletKey, int height) {
- this.name = name;
- this.portletKey = portletKey;
- this.height = height;
- }
-
- public String getId() {
- return id;
- }
-
- public String getPortletKey() {
- return portletKey;
- }
-
- public String getName() {
- return name;
- }
-
- public int getColumn() {
- return column;
- }
-
- public int getIndex() {
- return index;
- }
-
- public int getHeight() {
- return height;
- }
-
- public Map<String, String> getProperties() {
- return properties;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public void setPortletKey(String portletKey) {
- this.portletKey = portletKey;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void setColumn(int column) {
- this.column = column;
- }
-
- public void setIndex(int index) {
- this.index = index;
- }
-
- public void setHeight(int height) {
- this.height = height;
- }
-
- public void setProperty(String name, String value) {
- properties.put(name, value);
- }
-
-}
commit 3598a98701f39ff3d0772c1327375b039dba4216
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:30:17 2010 -0400
New Dashboard persistence implementation
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/ConfigurablePortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/ConfigurablePortlet.java
new file mode 100644
index 0000000..e96f720
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/ConfigurablePortlet.java
@@ -0,0 +1,34 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard;
+
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+
+/**
+ * @author Greg Hinkle
+ */
+public interface ConfigurablePortlet extends Portlet {
+
+ ConfigurationDefinition getConfigurationDefinition();
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/CustomSettingsPortlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/CustomSettingsPortlet.java
new file mode 100644
index 0000000..db5b211
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/CustomSettingsPortlet.java
@@ -0,0 +1,34 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard;
+
+import com.smartgwt.client.widgets.form.DynamicForm;
+
+/**
+ * @author Greg Hinkle
+ */
+public interface CustomSettingsPortlet extends Portlet {
+
+ DynamicForm getCustomSettingsForm();
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
index 65099f7..6563552 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardView.java
@@ -18,52 +18,68 @@
*/
package org.rhq.enterprise.gui.coregui.client.dashboard;
-import java.util.ArrayList;
+import java.util.HashSet;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.widgets.AnimationCallback;
import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.events.ClickEvent;
-import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.ButtonItem;
import com.smartgwt.client.widgets.form.fields.CanvasItem;
+import com.smartgwt.client.widgets.form.fields.ColorPickerItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
+import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
+import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import com.smartgwt.client.widgets.layout.LayoutSpacer;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.menu.IMenuButton;
import com.smartgwt.client.widgets.menu.Menu;
-import com.smartgwt.client.widgets.menu.MenuButton;
import com.smartgwt.client.widgets.menu.MenuItem;
import com.smartgwt.client.widgets.menu.events.ItemClickEvent;
import com.smartgwt.client.widgets.menu.events.ItemClickHandler;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredDashboard;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.dashboard.Dashboard;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message;
/**
* @author Greg Hinkle
*/
public class DashboardView extends VLayout {
- StoredDashboard storedDashboard;
+ private DashboardsView dashboardsView;
+ private Dashboard storedDashboard;
boolean editMode = false;
PortalLayout portalLayout;
- DynamicForm form;
+ DynamicForm editForm;
IMenuButton addPortlet;
+ HashSet<PortletWindow> portlets = new HashSet<PortletWindow>();
- public DashboardView(StoredDashboard storedDashboard) {
+
+ public DashboardView(DashboardsView dashboardsView, Dashboard storedDashboard) {
+ this.dashboardsView = dashboardsView;
this.storedDashboard = storedDashboard;
setOverflow(Overflow.AUTO);
setPadding(5);
}
+ @Override
+ protected void onInit() {
+ super.onInit();
+ buildEditForm();
+ }
+
public void redraw() {
for (Canvas c : getChildren()) {
- c.destroy();
+ c.removeFromParent();
}
buildPortlets();
@@ -79,8 +95,9 @@ public class DashboardView extends VLayout {
setWidth100();
setHeight100();
+ setBackgroundColor(storedDashboard.getConfiguration().getSimpleValue(Dashboard.CFG_BACKGROUND, "white"));
- portalLayout = new PortalLayout(storedDashboard.getColumns());
+ portalLayout = new PortalLayout(this, storedDashboard.getColumns());
portalLayout.setWidth100();
portalLayout.setHeight100();
@@ -88,13 +105,31 @@ public class DashboardView extends VLayout {
loadPortlets();
- form = new DynamicForm();
- form.setAutoWidth();
- form.setNumCols(7);
+ addMember(editForm);
+ editForm.hide();
+ addMember(portalLayout);
+
+ }
+
+
+ private DynamicForm buildEditForm() {
+ editForm = new DynamicForm();
+ editForm.setAutoWidth();
+ editForm.setNumCols(9);
+
+ TextItem nameItem = new TextItem("name","Dashboard Name");
+ nameItem.setValue(storedDashboard.getName());
+ nameItem.addChangedHandler(new ChangedHandler() {
+ public void onChanged(ChangedEvent changedEvent) {
+ storedDashboard.setName((String) changedEvent.getValue());
+ save();
+ dashboardsView.updateNames();
+ }
+ });
final StaticTextItem numColItem = new StaticTextItem();
numColItem.setTitle("Columns");
- numColItem.setValue(portalLayout.getMembers().length);
+ numColItem.setValue(storedDashboard.getColumns());
ButtonItem addColumn = new ButtonItem("addColumn", "Add Column");
// addColumn.setIcon("silk/application_side_expand.png");
@@ -106,8 +141,9 @@ public class DashboardView extends VLayout {
addColumn.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
portalLayout.addMember(new PortalColumn());
- numColItem.setValue(portalLayout.getMembers().length);
-
+ numColItem.setValue(storedDashboard.getColumns() + 1);
+ storedDashboard.setColumns(storedDashboard.getColumns() + 1);
+ save();
}
});
@@ -127,22 +163,14 @@ public class DashboardView extends VLayout {
Canvas lastMember = canvases[numMembers - 1];
portalLayout.removeMember(lastMember);
numColItem.setValue(numMembers - 1);
+ storedDashboard.setColumns(storedDashboard.getColumns() - 1);
+ save();
}
-
+ save();
}
});
- final ButtonItem editButton = new ButtonItem("editable", editMode ? "View Mode" : "Edit Mode");
- editButton.setAutoFit(true);
- editButton.setStartRow(false);
- editButton.setEndRow(false);
- editButton.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
- public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent clickEvent) {
- editMode = !editMode;
- redraw();
- }
- });
Menu addPorletMenu = new Menu();
@@ -150,10 +178,8 @@ public class DashboardView extends VLayout {
addPorletMenu.addItem(new MenuItem(portletName));
}
-
addPortlet = new IMenuButton("Add Portlet", addPorletMenu);
-
// addPortlet = new ButtonItem("addPortlet", "Add Portlet");
addPortlet.setIcon("[skin]/images/actions/add.png");
addPortlet.setAutoFit(true);
@@ -171,81 +197,75 @@ public class DashboardView extends VLayout {
addCanvas.setStartRow(false);
addCanvas.setEndRow(false);
+ ColorPickerItem picker = new ColorPickerItem();
+
+ picker.setTitle("Background");
+ picker.addChangedHandler(new ChangedHandler() {
+ public void onChanged(ChangedEvent changedEvent) {
+ Object v = changedEvent.getValue();
+ System.out.println("color chagned to " + v);
+ setBackgroundColor(String.valueOf(v));
+ storedDashboard.getConfiguration().put(new PropertySimple(Dashboard.CFG_BACKGROUND,String.valueOf(v)));
+ save();
+ }
+ });
+ picker.setValue(storedDashboard.getConfiguration().getSimpleValue(Dashboard.CFG_BACKGROUND,"white"));
- if (editMode) {
- form.setItems(numColItem, addCanvas, addColumn, removeColumn, editButton);
- } else {
- form.setItems(editButton);
- }
- addMember(form);
- addMember(portalLayout);
+ editForm.setItems(nameItem, numColItem, addCanvas, picker, addColumn, removeColumn);
+ return editForm;
}
+
private void loadPortlets() {
int col = 0;
- for (ArrayList<StoredPortlet> column : storedDashboard.getPortlets()) {
+ for (int i = 0; i < storedDashboard.getColumns(); i++) {
- for (StoredPortlet storedPortlet : column) {
- Canvas portalCanvas = PortletFactory.buildPortlet(storedPortlet);
-
- final Portlet portlet = new Portlet(editMode);
- portlet.addItem(portalCanvas);
+ for (DashboardPortlet storedPortlet : storedDashboard.getPortlets(i)) {
+ final PortletWindow portlet = new PortletWindow(this, storedPortlet);
+ portlets.add(portlet);
portlet.setTitle(storedPortlet.getName());
portlet.setHeight(storedPortlet.getHeight());
portlet.setVisible(true);
-// newPortlet.setHelpClickHandler(handler);
-// newPortlet.setSettingsClickHandler(handler);
-
portalLayout.addPortlet(portlet, col);
}
col++;
}
-
-
}
private void addPortlet(String portletName) {
- final Portlet newPortlet = new Portlet(true);
+ DashboardPortlet storedPortlet = new DashboardPortlet(portletName, portletName, 250);
- StoredPortlet storedPortlet = new StoredPortlet(portletName, portletName, 250);
- Canvas canvas = PortletFactory.buildPortlet(storedPortlet);
+ final PortletWindow newPortlet = new PortletWindow(this, storedPortlet);
+ portlets.add(newPortlet);
- newPortlet.setTitle(portletName);
+ storedDashboard.addPortlet(storedPortlet, 0, 0);
- ClickHandler handler = new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- PortletSettingsWindow settingsWindow = new PortletSettingsWindow("Recently Added Resources");
- settingsWindow.show();
- }
- };
+ newPortlet.setTitle(portletName);
- newPortlet.addItem(canvas);
newPortlet.setHeight(350);
newPortlet.setVisible(false);
- newPortlet.setHelpClickHandler(handler);
- newPortlet.setSettingsClickHandler(handler);
- PortalColumn column = portalLayout.addPortlet(newPortlet);
+ PortalColumn column = portalLayout.addPortlet(newPortlet, 0);
// also insert a blank spacer element, which will trigger the built-in
// animateMembers layout animation
final LayoutSpacer placeHolder = new LayoutSpacer();
- placeHolder.setRect(newPortlet.getRect());
- column.addMember(placeHolder, 0); // add to top
+// placeHolder.setRect(newPortlet.getRect());
+ column.addMember(placeHolder); // add to top
// create an outline around the clicked button
final Canvas outline = new Canvas();
- outline.setLeft(form.getAbsoluteLeft() + addPortlet.getLeft());
- outline.setTop(form.getAbsoluteTop());
+ outline.setLeft(editForm.getAbsoluteLeft() + addPortlet.getLeft());
+ outline.setTop(editForm.getAbsoluteTop());
outline.setWidth(addPortlet.getWidth());
outline.setHeight(addPortlet.getHeight());
outline.setBorder("2px solid 8289A6");
@@ -262,5 +282,61 @@ public class DashboardView extends VLayout {
newPortlet.show();
}
}, 750);
+ save();
+ }
+
+ public void save() {
+ GWTServiceLookup.getDashboardService().storeDashboard(storedDashboard, new AsyncCallback<Dashboard>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to save dashboard to server", caught);
+ }
+
+ public void onSuccess(Dashboard result) {
+ CoreGUI.getMessageCenter().notify(new Message("Saved dashboard " + result.getName() + " to server", Message.Severity.Info));
+ storedDashboard = result;
+
+ updateConfigs(result);
+ }
+ });
+ }
+
+ private void updateConfigs(Dashboard result) {
+ for (PortletWindow portletWindow : portlets) {
+ for (DashboardPortlet portlet : result.getPortlets()) {
+ if (portletWindow.getDashboardPortlet().getId() == portlet.getId()) {
+ portletWindow.getDashboardPortlet().setConfiguration(portlet.getConfiguration());
+ }
+ }
+ }
+ }
+
+ public void delete() {
+ GWTServiceLookup.getDashboardService().removeDashboard(this.storedDashboard.getId(), new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("", caught);
+ }
+
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(new Message("Successfully deleted dashboard " + storedDashboard.getName(), Message.Severity.Info));
+ }
+ });
+ }
+
+ public void resize() {
+ portalLayout.resize();
+ }
+
+ public Dashboard getDashboard() {
+ return storedDashboard;
+ }
+
+ public void setEditMode(boolean editMode) {
+ this.editMode = editMode;
+ if (editMode) {
+ this.editForm.show();
+ } else {
+ this.editForm.hide();
+ }
+ markForRedraw();
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
index 1f3695b..37b0880 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/DashboardsView.java
@@ -1,51 +1,83 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2009 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.
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
*
* 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.
+ * GNU General Public License and the GNU Lesser 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.
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard;
-import java.util.ArrayList;
+import java.util.List;
+import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.util.BooleanCallback;
+import com.smartgwt.client.util.SC;
+import com.smartgwt.client.widgets.IButton;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.tab.Tab;
import com.smartgwt.client.widgets.tab.TabSet;
-
-import org.rhq.core.domain.resource.InventorySummary;
+import com.smartgwt.client.widgets.tab.events.CloseClickHandler;
+import com.smartgwt.client.widgets.tab.events.TabCloseClickEvent;
+import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
+import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
+
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.dashboard.Dashboard;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.queue.AutodiscoveryPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.inventory.resource.graph.GraphPortlet;
-import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.platform.PlatformPortletView;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.alerts.RecentAlertsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.imported.RecentlyAddedView;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.summary.InventorySummaryView;
import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.summary.TagCloudPortlet;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.DashboardStore;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredDashboard;
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.util.MashupPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.util.MessagePortlet;
+import org.rhq.enterprise.gui.coregui.client.gwt.DashboardGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
/**
* @author Greg Hinkle
*/
-public class DashboardsView extends VLayout {
+public class DashboardsView extends VLayout implements BookmarkableView {
private TabSet tabSet;
- private DashboardStore dashboardStore;
+ private IButton editButton;
+
+ private boolean editMode = false;
+
+ private List<Dashboard> dashboards;
+
+ private DashboardView selectedDashboardView;
+ private Dashboard selectedDashboard;
+
+ private DashboardGWTServiceAsync dashboardService = GWTServiceLookup.getDashboardService();
+
+ private String selectedTab;
public DashboardsView() {
setOverflow(Overflow.AUTO);
@@ -59,80 +91,216 @@ public class DashboardsView extends VLayout {
protected void onInit() {
super.onInit();
+ dashboardService.findDashboardsForSubject(new AsyncCallback<List<Dashboard>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load user dashboards", caught);
+ }
+
+ public void onSuccess(List<Dashboard> result) {
+ if (result.isEmpty()) {
+ result.add(getDefaultDashboard());
+ }
+ updateDashboards(result);
+ }
+ });
+ }
+
+ private void updateDashboards(List<Dashboard> dashboards) {
+ removeMembers(getMembers());
+ this.dashboards = dashboards;
+
+
tabSet = new TabSet();
+
tabSet.setWidth100();
tabSet.setHeight100();
- dashboardStore = new DashboardStore();
+ tabSet.setCanCloseTabs(true);
+
- dashboardStore.getStoredDashboards().add(getDefaultDashboard());
+ editButton = new IButton(editMode ? "View Mode" : "Edit Mode");
+ editButton.setAutoFit(true);
+ editButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ editMode = !editMode;
+ editButton.setTitle(editMode ? "View Mode" : "Edit Mode");
+ selectedDashboardView.setEditMode(editMode);
+ }
+ });
- for (StoredDashboard dashboard : dashboardStore.getStoredDashboards()) {
- DashboardView dashboardView = new DashboardView(dashboard);
+ final IButton newDashboardButton = new IButton("New Dashboard");
+ newDashboardButton.setAutoFit(true);
+ newDashboardButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ addNewDashboard();
+ }
+ });
+
+ HLayout buttons = new HLayout(5);
+ buttons.addMember(editButton);
+ buttons.addMember(newDashboardButton);
+
+ tabSet.setTabBarControls(buttons);
+
+
+ tabSet.addTabSelectedHandler(new TabSelectedHandler() {
+ public void onTabSelected(TabSelectedEvent tabSelectedEvent) {
+ History.newItem("Dashboard/" + tabSelectedEvent.getTab().getTitle(), false);
+ selectedDashboardView = (DashboardView) tabSelectedEvent.getTab().getPane();
+ selectedDashboard = selectedDashboardView.getDashboard();
+ selectedDashboardView.setEditMode(editMode);
+ }
+ });
+
+ for (Dashboard dashboard : dashboards) {
+ DashboardView dashboardView = new DashboardView(this, dashboard);
Tab tab = new Tab(dashboard.getName());
tab.setPane(dashboardView);
+ tab.setCanClose(true);
+
tabSet.addTab(tab);
+ if (dashboard.getName().equals(selectedTab)) {
+ tabSet.selectTab(tab);
+ }
}
+ tabSet.addCloseClickHandler(new CloseClickHandler() {
+ public void onCloseClick(final TabCloseClickEvent tabCloseClickEvent) {
+ final DashboardView dashboardView = (DashboardView) tabCloseClickEvent.getTab().getPane();
+ SC.ask("Are you sure you want to delete [" + tabCloseClickEvent.getTab().getTitle() + "]?", new BooleanCallback() {
+ public void execute(Boolean aBoolean) {
+ if (aBoolean) {
+ dashboardView.delete();
+ } else {
+ tabCloseClickEvent.cancel();
+ }
+ }
+ });
+ }
+ });
+
addMember(tabSet);
+
}
- protected StoredDashboard getDefaultDashboard() {
+ protected Dashboard getDefaultDashboard() {
- StoredDashboard dashboard = new StoredDashboard();
+ Dashboard dashboard = new Dashboard();
dashboard.setName("Default Dashboard");
dashboard.setColumns(2);
- dashboard.setColumnWidths("30%","70%");
+ dashboard.setColumnWidths("30%", "70%");
+ dashboard.getConfiguration().put(new PropertySimple(Dashboard.CFG_BACKGROUND,"#F1F2F3"));
- ArrayList<StoredPortlet> col1 = new ArrayList<StoredPortlet>();
- ArrayList<StoredPortlet> col2 = new ArrayList<StoredPortlet>();
+ DashboardPortlet summary = new DashboardPortlet("Inventory Summary", InventorySummaryView.KEY, 230);
+ dashboard.addPortlet(summary, 0, 0);
+ DashboardPortlet tagCloud = new DashboardPortlet("Tag Cloud", TagCloudPortlet.KEY, 200);
+ dashboard.addPortlet(tagCloud, 0, 1);
+ // Experimental
+// StoredPortlet platformSummary = new StoredPortlet("Platform Summary", PlatformPortletView.KEY, 300);
+// col2.add(platformSummary);
- StoredPortlet summary = new StoredPortlet("Inventory Summary", InventorySummaryView.KEY, 250);
- col1.add(summary);
+ DashboardPortlet welcome = new DashboardPortlet("Welcome To RHQ", MessagePortlet.KEY, 180);
+ welcome.getConfiguration().put(new PropertySimple("message","<h1>Welcome to RHQ</h1>\n" +
+ "<p>The RHQ project is an abstraction and plug-in based systems management suite that provides " +
+ "extensible and integrated systems management for multiple products and platforms across a set " +
+ "of core features. The project is designed with layered modules that provide a flexible " +
+ "architecture for deployment. It delivers a core user interface that delivers audited and " +
+ "historical management across an entire enterprise. A Server/Agent architecture provides " +
+ "remote management and plugins implement all specific support for managed products.</p>\n" +
+ "<p>This default dashboard can be edited by clicking the \"edit mode\" button above.</p>"));
+ dashboard.addPortlet(welcome, 1, 0);
+
+ DashboardPortlet news = new DashboardPortlet("RHQ News", MashupPortlet.KEY, 320);
+ news.getConfiguration().put(new PropertySimple("address", "http://rhq-project.org/display/RHQ/RHQ+News?decorator=popup"));
+ dashboard.addPortlet(news, 1, 1);
+//
+ DashboardPortlet discoveryQueue = new DashboardPortlet("Discovery Queue", AutodiscoveryPortlet.KEY, 250);
+ dashboard.addPortlet(discoveryQueue, 1, 2);
- StoredPortlet tagCloud = new StoredPortlet("Tag Cloud", TagCloudPortlet.KEY, 250);
- col1.add(tagCloud);
- StoredPortlet graph = new StoredPortlet("ghinkle (MAC OS X) CPU", GraphPortlet.KEY, 250);
- graph.setProperty("resourceId","10001");
- graph.setProperty("definitionId","10100");
- col1.add(graph);
+ DashboardPortlet recentAlerts = new DashboardPortlet("Recent Alerts", RecentAlertsPortlet.KEY, 250);
+ dashboard.addPortlet(recentAlerts, 1, 3);
- StoredPortlet graphTwo = new StoredPortlet("JBoss AS Txn / Min", GraphPortlet.KEY, 250);
- graphTwo.setProperty("resourceId","10003");
- graphTwo.setProperty("definitionId","10916");
- col1.add(graphTwo);
+ DashboardPortlet recentlyAdded = new DashboardPortlet("Recently Added Resources", RecentlyAddedView.KEY, 250);
+ dashboard.addPortlet(recentlyAdded, 1, 4);
+ return dashboard;
+ }
- // Experimental
-// StoredPortlet platformSummary = new StoredPortlet("Platform Summary", PlatformPortletView.KEY, 300);
-// col2.add(platformSummary);
-//
- StoredPortlet discoveryQueue = new StoredPortlet("Discovery Queue", AutodiscoveryPortlet.KEY, 250);
- col2.add(discoveryQueue);
- StoredPortlet recentAlerts = new StoredPortlet("Recent Alerts", RecentAlertsPortlet.KEY, 250);
- col2.add(recentAlerts);
+ public void addNewDashboard() {
- StoredPortlet recentlyAdded = new StoredPortlet("Recently Added Resources", RecentlyAddedView.KEY, 250);
- col2.add(recentlyAdded);
+ Dashboard dashboard = new Dashboard();
+ dashboard.setName("Dashboard");
+ int i = 1;
+ while (true) {
+ boolean exists = false;
+ for (Dashboard db : dashboards) {
+ if (("Dashboard " + i).equals(db.getName()))
+ exists = true;
+ }
+ if (!exists) {
+ break;
+ }
+ }
+ dashboard.setName("Dashboard " + i);
- dashboard.getPortlets().add(col1);
- dashboard.getPortlets().add(col2);
+ dashboard.setColumns(2);
+ dashboard.setColumnWidths("30%", "70%");
+ dashboardService.storeDashboard(dashboard, new AsyncCallback<Dashboard>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to add new dashboard", caught);
+ }
+ public void onSuccess(Dashboard result) {
+ DashboardView dashboardView = new DashboardView(DashboardsView.this, result);
- return dashboard;
+ Tab tab = new Tab(result.getName());
+ tab.setPane(dashboardView);
+ tab.setCanClose(true);
+
+ tabSet.addTab(tab);
+
+ tabSet.selectTab(tab);
+ editMode = true;
+ editButton.setTitle(editMode ? "View Mode" : "Edit Mode");
+ dashboardView.setEditMode(editMode);
+
+
+ }
+ });
+ }
+
+ public void updateNames() {
+ for (Tab t : tabSet.getTabs()) {
+ DashboardView view = (DashboardView) t.getPane();
+ t.setTitle(view.getDashboard().getName());
+ }
+ }
+
+
+
+ public void renderView(ViewPath viewPath) {
+ if (!viewPath.isEnd()) {
+ selectedTab = viewPath.getCurrent().getPath();
+ if (tabSet != null) {
+ tabSet.selectTab(selectedTab);
+ }
+ }
+ }
+ public Dashboard getDashboard() {
+ return selectedDashboard;
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/OldDashboardView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/OldDashboardView.java
deleted file mode 100644
index 2fc4826..0000000
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/OldDashboardView.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.coregui.client.dashboard;
-
-import com.google.gwt.user.client.Random;
-import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.AnimationCallback;
-import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.events.ClickEvent;
-import com.smartgwt.client.widgets.events.ClickHandler;
-import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.fields.ButtonItem;
-import com.smartgwt.client.widgets.form.fields.StaticTextItem;
-import com.smartgwt.client.widgets.layout.LayoutSpacer;
-import com.smartgwt.client.widgets.layout.VLayout;
-
-import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.imported.RecentlyAddedView;
-import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.platform.PlatformPortletView;
-import org.rhq.enterprise.gui.coregui.client.dashboard.portlets.summary.InventorySummaryView;
-import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.SmallGraphView;
-import org.rhq.enterprise.gui.coregui.client.inventory.resource.discovery.ResourceAutodiscoveryView;
-
-/**
- * @author Greg Hinkle
- */
-public class OldDashboardView extends VLayout {
-
-
- boolean editMode = false;
-
- PortalLayout portalLayout;
- DynamicForm form;
- ButtonItem addPortlet;
-
- public OldDashboardView() {
- setOverflow(Overflow.AUTO);
- setPadding(5);
- }
-
- public void redraw() {
- for (Canvas c : getChildren()) {
- c.destroy();
- }
-
- buildPortlets();
- }
-
- @Override
- protected void onDraw() {
- super.onDraw();
- buildPortlets();
- }
-
- public void buildPortlets() {
- setWidth100();
- setHeight100();
-
-
- portalLayout = new PortalLayout(2);
- portalLayout.setWidth100();
- portalLayout.setHeight100();
-
-
- Portlet summaryPortlet = new Portlet(editMode);
- summaryPortlet.setTitle("Inventory Summary");
- summaryPortlet.addItem(new InventorySummaryView());
- summaryPortlet.setHeight(300);
- portalLayout.addPortlet(summaryPortlet);
-
-
- Portlet platformsPortlet = new Portlet(editMode);
- platformsPortlet.setTitle("Platform Portlet");
- platformsPortlet.addItem(new PlatformPortletView());
- platformsPortlet.setHeight(300);
- portalLayout.addPortlet(platformsPortlet);
-
-
- Portlet adPortlet = new Portlet(editMode);
- adPortlet.setTitle("Auto Discovery Queue");
- adPortlet.addItem(new ResourceAutodiscoveryView(true));
- adPortlet.setHeight(250);
- portalLayout.addPortlet(adPortlet);
-
-
- // create portlets...
- for (int i = 1; i <= 2; i++) {
- Portlet portlet = new Portlet(editMode);
- portlet.setTitle("Portlet");
-
- // Label label = new Label();
- // label.setAlign(Alignment.CENTER);
- // label.setLayoutAlign(VerticalAlignment.CENTER);
- // label.setContents("Portlet contents");
- // label.setBackgroundColor(colors[Random.nextInt(colors.length - 1)]);
-
- portlet.addItem(new SmallGraphView());
- portlet.setHeight(400);
- portalLayout.addPortlet(portlet);
- }
-
- final VLayout vLayout = new VLayout(15);
-
- form = new DynamicForm();
- form.setAutoWidth();
- form.setNumCols(7);
-
- final StaticTextItem numColItem = new StaticTextItem();
- numColItem.setTitle("Columns");
- numColItem.setValue(portalLayout.getMembers().length);
-
- ButtonItem addColumn = new ButtonItem("addColumn", "Add Column");
-// addColumn.setIcon("silk/application_side_expand.png");
- addColumn.setAutoFit(true);
- addColumn.setStartRow(false);
- addColumn.setEndRow(false);
-
-
- addColumn.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
- public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
- portalLayout.addMember(new PortalColumn());
- numColItem.setValue(portalLayout.getMembers().length);
-
- }
- });
-
- ButtonItem removeColumn = new ButtonItem("removeColumn", "Remove Column");
-// removeColumn.setIcon("silk/application_side_contract.png");
- removeColumn.setAutoFit(true);
- removeColumn.setStartRow(false);
- removeColumn.setEndRow(false);
-
-
- removeColumn.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
- public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
-
- Canvas[] canvases = portalLayout.getMembers();
- int numMembers = canvases.length;
- if (numMembers > 0) {
- Canvas lastMember = canvases[numMembers - 1];
- portalLayout.removeMember(lastMember);
- numColItem.setValue(numMembers - 1);
- }
-
- }
- });
-
-
- final ButtonItem editButton = new ButtonItem("editable", editMode ? "View Mode" : "Edit Mode");
- editButton.setAutoFit(true);
- editButton.setStartRow(false);
- editButton.setEndRow(false);
- editButton.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
- public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent clickEvent) {
- editMode = !editMode;
- redraw();
- }
- });
-
- addPortlet = new ButtonItem("addPortlet", "Add Portlet");
- addPortlet.setIcon("[skin]/images/actions/add.png");
- addPortlet.setAutoFit(true);
-
- addPortlet.setStartRow(false);
- addPortlet.setEndRow(false);
- addPortlet.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
- public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
-
- addPortlet();
-
- }
- });
-
-
- if (editMode) {
- form.setItems(numColItem, addPortlet, addColumn, removeColumn, editButton);
- } else {
- form.setItems(editButton);
- }
- addMember(form);
- addMember(portalLayout);
-
- }
-
-
- private void addPortlet() {
- final Portlet newPortlet = new Portlet(true);
- newPortlet.setTitle("Portlet ");
-
-// Label label = new Label();
-// label.setAlign(Alignment.CENTER);
-// label.setLayoutAlign(VerticalAlignment.CENTER);
-// label.setContents("Portlet contents");
-// label.setBackgroundColor(colors[Random.nextInt(colors.length - 1)]);
-// newPortlet.addItem(label);
-
- int nextInt = Random.nextInt() % 3;
-
-// if (nextInt == 0) {
-// ResourceSearchView item = new ResourceSearchView();
-// newPortlet.addItem(item);
-//
-// } else if (nextInt == 1) {
-// newPortlet.addItem(new RolesView());
-// } else {
-// newPortlet.addItem(new SummaryCountsView());
-// }
-
- ClickHandler handler = new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- PortletSettingsWindow settingsWindow = new PortletSettingsWindow("Recently Added Resources");
- settingsWindow.show();
- }
- };
-
- newPortlet.addItem(new RecentlyAddedView());
- newPortlet.setHeight(350);
- newPortlet.setVisible(false);
- newPortlet.setHelpClickHandler(handler);
- newPortlet.setSettingsClickHandler(handler);
- PortalColumn column = portalLayout.addPortlet(newPortlet);
-
- // also insert a blank spacer element, which will trigger the built-in
- // animateMembers layout animation
- final LayoutSpacer placeHolder = new LayoutSpacer();
- placeHolder.setRect(newPortlet.getRect());
- column.addMember(placeHolder, 0); // add to top
-
- // create an outline around the clicked button
- final Canvas outline = new Canvas();
- outline.setLeft(form.getAbsoluteLeft() + addPortlet.getLeft());
- outline.setTop(form.getAbsoluteTop());
- outline.setWidth(addPortlet.getWidth());
- outline.setHeight(addPortlet.getHeight());
- outline.setBorder("2px solid 8289A6");
- outline.draw();
- outline.bringToFront();
-
- outline.animateRect(newPortlet.getPageLeft(), newPortlet.getPageTop(),
- newPortlet.getVisibleWidth(), newPortlet.getViewportHeight(),
- new AnimationCallback() {
- public void execute(boolean earlyFinish) {
- // callback at end of animation - destroy placeholder and outline; show the new portlet
- placeHolder.destroy();
- outline.destroy();
- newPortlet.show();
- }
- }, 750);
- }
-}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortalLayout.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortalLayout.java
index b1b7b38..0a5a1e6 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortalLayout.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortalLayout.java
@@ -1,41 +1,97 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2009 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.
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
*
* 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.
+ * GNU General Public License and the GNU Lesser 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.
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard;
+import com.smartgwt.client.util.EventHandler;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.events.DropEvent;
+import com.smartgwt.client.widgets.events.DropHandler;
import com.smartgwt.client.widgets.layout.HLayout;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+
/**
* @author Greg Hinkle
*/
public class PortalLayout extends HLayout {
- public PortalLayout(int numColumns) {
+
+ private DashboardView dashboardView;
+
+ public PortalLayout(DashboardView dashboardView, int numColumns) {
+
+ this.dashboardView = dashboardView;
+
setMembersMargin(6);
for (int i = 0; i < numColumns; i++) {
- PortalColumn column = new PortalColumn();
+ final PortalColumn column = new PortalColumn();
if (i == 0) {
column.setWidth("30%");
}
addMember(column);
+
+
+
+
+ final int columnNumber = i;
+ column.addDropHandler(new DropHandler() {
+ public void onDrop(DropEvent dropEvent) {
+
+ int dropPosition = column.getDropPosition();
+ int dropColumn = columnNumber;
+
+
+ Canvas target = EventHandler.getDragTarget();
+ ((PortletWindow) target).getDashboardPortlet().setIndex(dropPosition);
+ ((PortletWindow) target).getDashboardPortlet().setColumn(dropColumn);
+
+ int colNum = 0;
+ for (Canvas pcc : getMembers()) {
+
+ PortalColumn pc = (PortalColumn) pcc;
+
+
+ int i = 0;
+ for (Canvas c : pc.getMembers()) {
+ if (colNum == dropColumn && i == dropPosition) {
+ i++;
+ }
+
+ if (c instanceof PortletWindow) {
+ DashboardPortlet dp = ((PortletWindow) c).getDashboardPortlet();
+ dp.setIndex(i++);
+ }
+ }
+
+ colNum++;
+ }
+ save();
+ System.out.println("Rearranged column indexes");
+ }
+ });
}
}
- public PortalColumn addPortlet(Portlet portlet) {
+ public PortalColumn addPortlet(PortletWindow portlet) {
// find the column with the fewest portlets
int fewestPortlets = Integer.MAX_VALUE;
PortalColumn fewestPortletsColumn = null;
@@ -51,7 +107,7 @@ public class PortalLayout extends HLayout {
}
- public PortalColumn addPortlet(Portlet portlet, int column) {
+ public PortalColumn addPortlet(PortletWindow portlet, int column) {
PortalColumn fewestPortletsColumn = (PortalColumn) getMember(column);
fewestPortletsColumn.addMember(portlet);
@@ -59,4 +115,22 @@ public class PortalLayout extends HLayout {
return fewestPortletsColumn;
}
+ public void save() {
+ this.dashboardView.save();
+ }
+
+ public void resize() {
+ for (Canvas c : getMembers()) {
+ PortalColumn column = (PortalColumn) c;
+
+ for (Canvas p : column.getMembers()) {
+ if (p instanceof PortletWindow) {
+ PortletWindow portlet = (PortletWindow) p;
+
+ p.setWidth(column.getWidth());
+
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
index 4fe028c..78cf4d8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/Portlet.java
@@ -18,87 +18,23 @@
*/
package org.rhq.enterprise.gui.coregui.client.dashboard;
-import com.smartgwt.client.types.DragAppearance;
-import com.smartgwt.client.types.HeaderControls;
-import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.HeaderControl;
-import com.smartgwt.client.widgets.Window;
-import com.smartgwt.client.widgets.events.ClickEvent;
-import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.form.DynamicForm;
+
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
/**
* @author Greg Hinkle
*/
-public class Portlet extends Window {
-
- private static final ClickHandler NO_OP_HANDLER = new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- }
- };
-
- private ClickHandler settingsHandlerDelegate = NO_OP_HANDLER;
-
- private ClickHandler helpHandlerDelegate = NO_OP_HANDLER;
-
- private ClickHandler settingsHandler = new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- settingsHandlerDelegate.onClick(clickEvent);
- }
- };
-
- private ClickHandler helpHandler = new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- helpHandlerDelegate.onClick(clickEvent);
- }
- };
-
- public Portlet(boolean showFrame) {
-
- if (!showFrame) {
- setShowHeader(false);
- setShowEdges(false);
- } else {
- // customize the appearance and order of the controls in the window header
- setHeaderControls(
- HeaderControls.MINIMIZE_BUTTON,
- HeaderControls.HEADER_LABEL,
- new HeaderControl(HeaderControl.SETTINGS, settingsHandler),
- new HeaderControl(HeaderControl.HELP, helpHandler),
- HeaderControls.CLOSE_BUTTON
- );
-
- // show either a shadow, or translucency, when dragging a portlet
- // (could do both at the same time, but these are not visually compatible effects)
- // setShowDragShadow(true);
- setDragOpacity(30);
-
- // enable predefined component animation
- setAnimateMinimize(true);
-
- // Window is draggable with "outline" appearance by default.
- // "target" is the solid appearance.
- setDragAppearance(DragAppearance.TARGET);
- setCanDrop(true);
-
- setCanDragResize(true);
- setResizeFrom("B");
+public interface Portlet {
- }
+ void configure(PortletWindow portletWindow, DashboardPortlet storedPortlet);
- setShowShadow(false);
+ Canvas getHelpCanvas();
- // these settings enable the portlet to autosize its height only to fit its contents
- // (since width is determined from the containing layout, not the portlet contents)
-// setVPolicy(LayoutPolicy.NONE);
- setOverflow(Overflow.VISIBLE);
+// ConfigurationDefinition getConfigurationDefinition();
- }
- public void setSettingsClickHandler(ClickHandler handler) {
- settingsHandlerDelegate = handler;
- }
- public void setHelpClickHandler(ClickHandler handler) {
- helpHandlerDelegate = handler;
- }
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletHelpWindow.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletHelpWindow.java
new file mode 100644
index 0000000..6013893
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletHelpWindow.java
@@ -0,0 +1,100 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard;
+
+import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.LayoutPolicy;
+import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.IButton;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.Window;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.layout.HLayout;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+
+/**
+ * This is a window for displaying portlet settings. The window contains a form which in turn will contain the
+ * widgets for a portlet's settings. Those widgets will have to be passed to the window since the window is intended
+ * to support all portlets. The layout and sizing strategy for this window is to be as large as the widgets contained
+ * within it. And the form will stretch and resize as the window is resized. This flexible layout strategy is used
+ * since there are different settings (with different widgets) for different portlets which will in turn result in
+ * different sizes for the parent window.
+ *
+ * @author John Sanda
+ */
+public class PortletHelpWindow extends Window {
+
+ private DashboardPortlet storedPortlet;
+ private Portlet view;
+
+ public PortletHelpWindow(DashboardPortlet storedPortlet, Portlet view) {
+ this.storedPortlet = storedPortlet;
+ this.view = view;
+
+
+
+ setTitle(storedPortlet.getName() + " Help");
+ setOverflow(Overflow.VISIBLE);
+// setAutoSize(true);
+
+ setHeight(400);
+ setWidth(400);
+ setAutoCenter(true);
+ setCanDragResize(true);
+ setCanDragReposition(true);
+ setDismissOnEscape(true);
+ setDismissOnOutsideClick(true);
+ }
+
+
+ @Override
+ protected void onInit() {
+ super.onInit();
+
+ Canvas c = view.getHelpCanvas();
+
+ VLayout layout = new VLayout();
+ layout.setWidth100();
+ layout.setHeight100();
+ layout.setPadding(15);
+ layout.setLayoutMargin(20);
+ layout.setVPolicy(LayoutPolicy.FILL);
+
+ if (c != null) {
+ layout.addMember(c);
+ } else {
+ layout.addMember(new Label("No help available for this portlet"));
+ }
+
+
+ addItem(layout);
+
+ }
+
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletSettingsWindow.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletSettingsWindow.java
index b0c37cd..b68ab67 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletSettingsWindow.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletSettingsWindow.java
@@ -23,13 +23,24 @@
package org.rhq.enterprise.gui.coregui.client.dashboard;
+import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.LayoutPolicy;
import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.IButton;
+import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Window;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
+
/**
* This is a window for displaying portlet settings. The window contains a form which in turn will contain the
* widgets for a portlet's settings. Those widgets will have to be passed to the window since the window is intended
@@ -42,15 +53,24 @@ import com.smartgwt.client.widgets.layout.VLayout;
*/
public class PortletSettingsWindow extends Window {
- private String portletTitle;
+ private PortletWindow parentWindow;
+ private DashboardPortlet storedPortlet;
+ private Portlet view;
- public PortletSettingsWindow(String portletTitle) {
- this.portletTitle = portletTitle;
- setTitle("RHQ Dashboard Settings: " + portletTitle);
+ public PortletSettingsWindow(PortletWindow parentWindow, DashboardPortlet storedPortlet, Portlet view) {
+ this.parentWindow = parentWindow;
+ this.storedPortlet = storedPortlet;
+ this.view = view;
+ setTitle(storedPortlet.getName() + " Settings");
setOverflow(Overflow.VISIBLE);
+ setMinWidth(400);
+ setMinHeight(400);
setAutoSize(true);
+ setAutoCenter(true);
setCanDragResize(true);
setCanDragReposition(true);
+
+
}
@Override
@@ -64,24 +84,82 @@ public class PortletSettingsWindow extends Window {
layout.setLayoutMargin(20);
layout.setVPolicy(LayoutPolicy.FILL);
- final DynamicForm form = new DynamicForm();
- form.setGroupTitle("Display Settings");
- form.setIsGroup(true);
- form.setNumCols(2);
- form.setWidth100();
- form.setHeight100();
- form.setCellPadding(5);
- TextItem username = new TextItem();
- username.setTitle("Username");
+ if (view instanceof CustomSettingsPortlet) {
+ final DynamicForm form = ((CustomSettingsPortlet) view).getCustomSettingsForm();
+ layout.addMember(form);
+
+ IButton cancel = new IButton("Cancel");
+ cancel.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ PortletSettingsWindow.this.destroy();
+ }
+ });
+ IButton save = new IButton("Save");
+ save.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ if (form.validate()) {
+ form.submit();
+ PortletSettingsWindow.this.destroy();
+ view.configure(parentWindow, storedPortlet);
+ ((Canvas) view).redraw();
+ parentWindow.save();
+ }
+ }
+ });
+
+ HLayout buttons = new HLayout(10);
+ buttons.setLayoutAlign(Alignment.CENTER);
+ buttons.addMember(cancel);
+ buttons.addMember(save);
+ layout.addMember(buttons);
+
+ } else if (view instanceof ConfigurablePortlet) {
+
+ ConfigurationDefinition definition = ((ConfigurablePortlet) view).getConfigurationDefinition();
+ Configuration configuration = storedPortlet.getConfiguration();
- TextItem password = new TextItem();
- password.setTitle("Password");
+ final ConfigurationEditor editor = new ConfigurationEditor(definition, configuration);
+ editor.setWidth(400);
+ editor.setHeight(400);
+ layout.addMember(editor);
+
+
+ IButton cancel = new IButton("Cancel");
+ cancel.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ PortletSettingsWindow.this.destroy();
+ }
+ });
+ IButton save = new IButton("Save");
+ save.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ if (editor.validate()) {
+ Configuration configuration = editor.getConfiguration();
+ storedPortlet.setConfiguration(configuration);
+ PortletSettingsWindow.this.destroy();
+ view.configure(parentWindow, storedPortlet);
+// ((Canvas) view).markForRedraw();
+ parentWindow.markForRedraw();
+ parentWindow.save();
+ }
+ }
+ });
+
+ HLayout buttons = new HLayout(10);
+ buttons.setLayoutAlign(Alignment.CENTER);
+ buttons.addMember(cancel);
+ buttons.addMember(save);
+ layout.addMember(buttons);
+
+
+ } else {
+ layout.addMember(new Label("No settings available for this portlet"));
+ }
- form.setFields(username, password);
- layout.addMember(form);
addItem(layout);
}
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletView.java
deleted file mode 100644
index 342c9ce..0000000
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletView.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.rhq.enterprise.gui.coregui.client.dashboard;
-
-import com.smartgwt.client.widgets.Canvas;
-
-import org.rhq.enterprise.gui.coregui.client.dashboard.store.StoredPortlet;
-
-/**
- * @author Greg Hinkle
- */
-public interface PortletView {
-
- void configure(StoredPortlet storedPortlet);
-
- Canvas getHelpCanvas();
-
- Canvas getSettingsCanvas();
-
-}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletViewFactory.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletViewFactory.java
index 34cfaf3..b58e070 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletViewFactory.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletViewFactory.java
@@ -23,6 +23,6 @@ package org.rhq.enterprise.gui.coregui.client.dashboard;
*/
public interface PortletViewFactory {
- PortletView getInstance();
+ Portlet getInstance();
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletWindow.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletWindow.java
new file mode 100644
index 0000000..f381773
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/PortletWindow.java
@@ -0,0 +1,182 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2009 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.dashboard;
+
+import com.smartgwt.client.types.DragAppearance;
+import com.smartgwt.client.types.HeaderControls;
+import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.HeaderControl;
+import com.smartgwt.client.widgets.Window;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.events.CloseClickHandler;
+import com.smartgwt.client.widgets.events.CloseClientEvent;
+import com.smartgwt.client.widgets.events.DragResizeStopEvent;
+import com.smartgwt.client.widgets.events.DragResizeStopHandler;
+
+import org.rhq.core.domain.dashboard.DashboardPortlet;
+
+/**
+ * @author Greg Hinkle
+ */
+public class PortletWindow extends Window {
+
+ private DashboardView dashboardView;
+ private DashboardPortlet dashboardPortlet;
+
+ private Portlet view;
+
+ private static final ClickHandler NO_OP_HANDLER = new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ }
+ };
+
+ private ClickHandler settingsHandlerDelegate = NO_OP_HANDLER;
+
+ private ClickHandler helpHandlerDelegate = NO_OP_HANDLER;
+
+ private ClickHandler settingsHandler = new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ settingsHandlerDelegate.onClick(clickEvent);
+ }
+ };
+
+ private ClickHandler helpHandler = new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ helpHandlerDelegate.onClick(clickEvent);
+ }
+ };
+
+ public PortletWindow(DashboardView dashboardView, DashboardPortlet dashboardPortlet) {
+
+ this.dashboardView = dashboardView;
+ this.dashboardPortlet = dashboardPortlet;
+ setEdgeSize(2);
+
+
+// if (!showFrame) {
+// setShowHeader(false);
+// setShowEdges(false);
+
+ // customize the appearance and order of the controls in the window header
+ setHeaderControls(
+ HeaderControls.MINIMIZE_BUTTON,
+ HeaderControls.HEADER_LABEL,
+ new HeaderControl(HeaderControl.SETTINGS, settingsHandler),
+ new HeaderControl(HeaderControl.HELP, helpHandler),
+ HeaderControls.CLOSE_BUTTON
+ );
+
+ // show either a shadow, or translucency, when dragging a portlet
+ // (could do both at the same time, but these are not visually compatible effects)
+ // setShowDragShadow(true);
+ setDragOpacity(30);
+
+ // enable predefined component animation
+ setAnimateMinimize(true);
+
+ // Window is draggable with "outline" appearance by default.
+ // "target" is the solid appearance.
+ setDragAppearance(DragAppearance.TARGET);
+ setCanDrop(true);
+
+ setCanDragResize(true);
+// setResizeFrom("B");
+
+
+ setShowShadow(false);
+
+ // these settings enable the portlet to autosize its height only to fit its contents
+ // (since width is determined from the containing layout, not the portlet contents)
+// setVPolicy(LayoutPolicy.NONE);
+ setOverflow(Overflow.VISIBLE);
+
+
+ addDragResizeStopHandler(new DragResizeStopHandler() {
+ public void onDragResizeStop(DragResizeStopEvent dragResizeStopEvent) {
+
+
+ PortletWindow.this.dashboardPortlet.setHeight(((Canvas) dragResizeStopEvent.getSource()).getHeight());
+
+ PortletWindow.this.dashboardView.resize();
+ save();
+
+ }
+ });
+
+ addCloseClickHandler(new CloseClickHandler() {
+ public void onCloseClick(CloseClientEvent closeClientEvent) {
+ PortletWindow.this.dashboardPortlet.getDashboard().removePortlet(PortletWindow.this.dashboardPortlet);
+ save();
+ destroy();
+ }
+ });
+
+ setSettingsClickHandler(settingsHandler);
+ setHelpClickHandler(helpHandler);
+
+ }
+
+ @Override
+ protected void onInit() {
+ super.onInit();
+
+ view = PortletFactory.buildPortlet(this, dashboardPortlet);
+
+ Canvas canvas = (Canvas) view;
+ addItem(canvas);
+
+ settingsHandlerDelegate = new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ new PortletSettingsWindow(PortletWindow.this, dashboardPortlet, view).show();
+ }
+ };
+
+ helpHandlerDelegate = new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ new PortletHelpWindow(dashboardPortlet, view).show();
+ }
+ };
+ }
+
+ public void setSettingsClickHandler(ClickHandler handler) {
+ settingsHandlerDelegate = handler;
+ }
+
+ public void setHelpClickHandler(ClickHandler handler) {
+ helpHandlerDelegate = handler;
+ }
+
+ public DashboardPortlet getDashboardPortlet() {
+ return dashboardPortlet;
+ }
+
+ public void setDashboardPortlet(DashboardPortlet dashboardPortlet) {
+ this.dashboardPortlet = dashboardPortlet;
+ }
+
+ public void save() {
+ this.dashboardView.save();
+ }
+}
commit 6296f6138990c843b4e4872c5ac0bd4cbace0966
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:28:42 2010 -0400
Fix search bar links for gwt
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
index ecdd88f..c6e5a9d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LinkManager.java
@@ -27,13 +27,13 @@ package org.rhq.enterprise.gui.coregui.client;
*/
public class LinkManager {
- private static boolean GWT = false;
+ private static boolean GWT = true;
public static String getResourceLink(int resourceId) {
if (GWT) {
- return "Resource/" + resourceId;
+ return "#Resource/" + resourceId;
} else {
return "/rhq/resource/summary/overview.xhtml?id=" + resourceId;
}
@@ -43,7 +43,7 @@ public class LinkManager {
public static String getResourceGroupLink(int resouceGroupId) {
if (GWT) {
- return "ResourceGroup/" + resouceGroupId;
+ return "#ResourceGroup/" + resouceGroupId;
} else {
return "/rhq/group/inventory/view.xhtml?groupId=" + resouceGroupId;
}
@@ -133,20 +133,36 @@ public class LinkManager {
public static String getAdminUsersLink() {
- return "/admin/user/UserAdmin.do?mode=list";
+ if (GWT) {
+ return "#Administration/Security/Manage%20Users";
+ } else {
+ return "/admin/user/UserAdmin.do?mode=list";
+ }
}
public static String getAdminRolesLink() {
+ if (GWT) {
+ return "#Administration/Security/Manage%20Roles";
+ } else {
return "/admin/role/RoleAdmin.do?mode=list";
+ }
}
public static String getAdminSysConfigLink() {
+ if (GWT) {
+ return "#Administration/Configuration/System%20Settings";
+ } else {
return "/admin/config/Config.do?mode=edit";
+ }
}
public static String getAdminPluginsLink() {
- return "/rhq/admin/plugin/plugin-list.xhtml";
+ if (GWT) {
+ return "#Administration/Configuration/Plugins";
+ } else {
+ return "/rhq/admin/plugin/plugin-list.xhtml";
+ }
}
@@ -195,7 +211,11 @@ public class LinkManager {
public static String getAdminLicenseLink() {
- return "/admin/license/LicenseAdmin.do?mode=view";
+ if (GWT) {
+ return "#Administration/Configuration/License";
+ } else {
+ return "/admin/license/LicenseAdmin.do?mode=view";
+ }
}
@@ -220,4 +240,4 @@ public class LinkManager {
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
index 40c6154..c14d2d7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/SearchBarPane.java
@@ -133,7 +133,7 @@ public class SearchBarPane extends HLayout {
if (!link.contains("#")) {
com.google.gwt.user.client.Window.Location.assign(link);
} else {
- History.newItem(link);
+ History.newItem(link.substring(1));
}
} catch (Exception e) {
}
commit 386205307c0fea3eedb2e757bc87986656372b81
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:28:17 2010 -0400
Small resource view improvements
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
index b1b1ece..7a1ebba 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
@@ -100,6 +100,19 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
"parentId")));
}
+ if (request.getCriteria().getValues().get("id") != null) {
+ criteria.addFilterId(request.getCriteria().getAttributeAsInt("id"));
+ }
+
+ if (request.getCriteria().getValues().get("resourceIds") != null) {
+ int[] ids = request.getCriteria().getAttributeAsIntArray("resourceIds");
+ Integer[] oids = new Integer[ids.length];
+ for (int i = 0; i < ids.length; i++) {
+ oids[i] = ids[i++];
+ }
+ criteria.addFilterIds(oids);
+ }
+
if (request.getCriteria().getValues().get("name") != null) {
criteria.addFilterName((String) request.getCriteria().getValues().get("name"));
}
@@ -216,4 +229,4 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
return record;
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
index c08c42f..57c8acb 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceSearchView.java
@@ -43,6 +43,7 @@ import org.rhq.enterprise.gui.coregui.client.components.table.TableAction;
* @author Greg Hinkle
*/
public class ResourceSearchView extends Table {
+
private static final String DEFAULT_TITLE = "Resources";
private ArrayList<ResourceSelectListener> selectListeners = new ArrayList<ResourceSelectListener>();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index cdf3025..27fa9af 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -47,6 +47,7 @@ import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSelectLi
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.alert.ResourceAlertHistoryView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configuration.ConfigurationHistoryView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configuration.ResourceConfigurationEditView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.event.EventHistoryView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.inventory.PluginConfigurationEditView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.GraphListView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.calltime.CallTimeView;
@@ -173,7 +174,7 @@ public class ResourceDetailView extends VLayout implements BookmarkableView, Res
alertsTab.updateSubTab("History", new ResourceAlertHistoryView(resource.getId()));
alertsTab.updateSubTab("Definitions", AlertDefinitionsView.getResourceView(resource));
- eventsTab.updateSubTab("History", new FullHTMLPane("/rhq/common/events/history-plain.xhtml?id=" + resource.getId()));
+ eventsTab.updateSubTab("History", EventHistoryView.createResourceHistoryView(resource.getId())); //new FullHTMLPane("/rhq/common/events/history-plain.xhtml?id=" + resource.getId()));
contentTab.updateSubTab("Deployed", new FullHTMLPane("/rhq/resource/content/view-plain.xhtml?id=" + resource.getId()));
contentTab.updateSubTab("New", new FullHTMLPane("/rhq/resource/content/deploy-plain.xhtml?id=" + resource.getId()));
@@ -248,7 +249,7 @@ public class ResourceDetailView extends VLayout implements BookmarkableView, Res
}
if (type.getEventDefinitions() == null || type.getEventDefinitions().isEmpty() || !permissions.isMeasure()) {
- topTabSet.disableTab(eventsTab);
+ topTabSet.enableTab(eventsTab);
} else {
topTabSet.enableTab(eventsTab);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
index f3dee98..49e3974 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/SmallGraphView.java
@@ -45,6 +45,7 @@ import com.smartgwt.client.types.AnimationEffect;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.HTMLPane;
+import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.WidgetCanvas;
import com.smartgwt.client.widgets.Window;
@@ -122,6 +123,7 @@ public class SmallGraphView extends VLayout {
public void setResourceId(int resourceId) {
this.resourceId = resourceId;
+ this.definition = null;
}
public int getDefinitionId() {
@@ -130,15 +132,14 @@ public class SmallGraphView extends VLayout {
public void setDefinitionId(int definitionId) {
this.definitionId = definitionId;
+ this.definition = null;
}
@Override
protected void onDraw() {
super.onDraw();
- for (Canvas c : getChildren()) {
- c.destroy();
- }
+ removeMembers(getMembers());
if (this.definition == null) {
@@ -214,6 +215,36 @@ public class SmallGraphView extends VLayout {
private void drawGraph() {
+ HLayout titleLayout = new HLayout();
+
+ if (definition != null) {
+ titleLayout.setAutoHeight();
+
+ titleLayout.setWidth100();
+
+ HTMLFlow title = new HTMLFlow("<b>" + definition.getDisplayName() + "</b> " + definition.getDescription());
+ title.setWidth("*");
+ title.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ displayAsDialog();
+ }
+ });
+ titleLayout.addMember(title);
+
+ Img liveGraph = new Img("subsystems/monitor/Monitor_16.png",16,16);
+ liveGraph.setTooltip("Click for a live graph of current values");
+
+ liveGraph.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ LiveGraphView.displayAsDialog(resourceId, definition);
+ }
+ });
+ titleLayout.addMember(liveGraph);
+
+ addMember(titleLayout);
+ }
+
+
PlotModel model = new PlotModel();
PlotOptions plotOptions = new PlotOptions();
plotOptions.setDefaultLineSeriesOptions(new LineSeriesOptions().setLineWidth(1).setShow(true));
@@ -221,6 +252,7 @@ public class SmallGraphView extends VLayout {
plotOptions.setDefaultShadowSize(0);
+
// You need make the grid hoverable <<<<<<<<<
plotOptions.setGridOptions(new GridOptions().setHoverable(true).setMouseActiveRadius(10).setAutoHighlight(true));
@@ -234,7 +266,7 @@ public class SmallGraphView extends VLayout {
// create the plot
SimplePlot plot = new SimplePlot(model, plotOptions);
- plot.setSize(String.valueOf(getInnerContentWidth()), String.valueOf(getInnerContentHeight() - 20));
+ plot.setSize(String.valueOf(getInnerContentWidth()), String.valueOf(getInnerContentHeight() - titleLayout.getHeight() - 50));
// "80%","80%");
@@ -276,38 +308,18 @@ public class SmallGraphView extends VLayout {
hoverLabel.setBorder("1px solid orange");
hoverLabel.hide();
- hoverLabel.draw();
+ if (hoverLabel.isDrawn())
+ hoverLabel.redraw();
+ else
+ hoverLabel.draw();
// put it on a panel
- if (definition != null) {
-
- HLayout titleLayout = new HLayout();
- titleLayout.setWidth100();
-
- HTMLFlow title = new HTMLFlow("<b>" + definition.getDisplayName() + "</b> " + definition.getDescription());
- title.setWidth("*");
- title.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- displayAsDialog();
- }
- });
- titleLayout.addMember(title);
- HTMLPane liveGraphLink = new HTMLPane();
- liveGraphLink.setWidth(100);
- liveGraphLink.setContents("Live Graph");
- liveGraphLink.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent clickEvent) {
- LiveGraphView.displayAsDialog(resourceId, definition);
- }
- });
- titleLayout.addMember(liveGraphLink);
+ addMember(new WidgetCanvas(plot));
- addMember(titleLayout);
- }
+ plot.setSize(String.valueOf(getInnerContentWidth()), String.valueOf(getInnerContentHeight() - titleLayout.getHeight() - 50));
- addMember(new WidgetCanvas(plot));
}
private String getHover(PlotItem item) {
@@ -336,7 +348,10 @@ public class SmallGraphView extends VLayout {
long max = System.currentTimeMillis();
long min = max - (1000L * 60 * 60 * 8);
- plotOptions.setXAxisOptions(new AxisOptions().setTicks(8).setMinimum(min).setMaximum(max).setTickFormatter(new TickFormatter() {
+
+ int xTicks = getWidth() / 140;
+
+ plotOptions.setXAxisOptions(new AxisOptions().setTicks(xTicks).setMinimum(min).setMaximum(max).setTickFormatter(new TickFormatter() {
public String formatTickValue(double tickValue, Axis axis) {
com.google.gwt.i18n.client.DateTimeFormat dateFormat = DateTimeFormat.getShortDateTimeFormat();
return dateFormat.format(new Date((long) tickValue));
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
index 7402610..cd52111 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
@@ -72,28 +72,35 @@ public class ResourceAutodiscoveryView extends VLayout {
protected void onInit() {
super.onInit();
+ if (!simple) {
- HLayout titleLayout = new HLayout(150);
+ HLayout titleLayout = new HLayout(150);
- HTMLFlow title = new HTMLFlow();
- title.setWidth100();
- title.setHeight(35);
- title.setContents("Auto Discovery Queue");
- title.setPadding(4);
- title.setStyleName("HeaderLabel");
- titleLayout.addMember(title);
+ HTMLFlow title = new HTMLFlow();
+ title.setWidth100();
+ title.setHeight(35);
+ title.setContents("Auto Discovery Queue");
+ title.setPadding(4);
+ title.setStyleName("HeaderLabel");
+ titleLayout.addMember(title);
- DynamicForm form = new DynamicForm();
- final SelectItem statusSelectItem = new SelectItem("statuses", "Displayed Statuses");
- statusSelectItem.setValueMap("New", "Ignored", "New and Ignored");
- statusSelectItem.setValue("New");
- form.setItems(statusSelectItem);
- if (!simple)
+ DynamicForm form = new DynamicForm();
+ final SelectItem statusSelectItem = new SelectItem("statuses", "Displayed Statuses");
+ statusSelectItem.setValueMap("New", "Ignored", "New and Ignored");
+ statusSelectItem.setValue("New");
+ form.setItems(statusSelectItem);
titleLayout.addMember(form);
- addMember(titleLayout);
+ statusSelectItem.addChangedHandler(new ChangedHandler() {
+ public void onChanged(ChangedEvent changedEvent) {
+ treeGrid.fetchData(new Criteria("statuses", (String) statusSelectItem.getValue()));
+ }
+ });
+
+ addMember(titleLayout);
+ }
treeGrid = new TreeGrid();
@@ -210,11 +217,6 @@ public class ResourceAutodiscoveryView extends VLayout {
}
);
- statusSelectItem.addChangedHandler(new ChangedHandler() {
- public void onChanged(ChangedEvent changedEvent) {
- treeGrid.fetchData(new Criteria("statuses", (String) statusSelectItem.getValue()));
- }
- });
}
private Integer[] getSelectedIds() {
commit 1cf17185ccce9b5aa49c9d537cebf132737fd52e
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:27:39 2010 -0400
GWT Event view
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventDatasource.java
new file mode 100644
index 0000000..f8656e3
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventDatasource.java
@@ -0,0 +1,134 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.inventory.resource.detail.event;
+
+import java.util.Date;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.data.DSRequest;
+import com.smartgwt.client.data.DSResponse;
+import com.smartgwt.client.data.DataSourceField;
+import com.smartgwt.client.data.fields.DataSourceImageField;
+import com.smartgwt.client.data.fields.DataSourceIntegerField;
+import com.smartgwt.client.data.fields.DataSourceTextField;
+import com.smartgwt.client.types.FieldType;
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+
+import org.rhq.core.domain.criteria.EventCriteria;
+import org.rhq.core.domain.event.Event;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
+
+/**
+ * @author Greg Hinkle
+ */
+public class EventDatasource extends RPCDataSource<Event> {
+
+
+ public EventDatasource() {
+ super();
+
+// DataSourceField id = new DataSourceIntegerField("id", "Id");
+// id.setPrimaryKey(true);
+// addField(id);
+
+ DataSourceTextField detail = new DataSourceTextField("detail", "Detail");
+ addField(detail);
+
+// DataSourceTextField detailExcerpt = new DataSourceTextField("detailExcerpt", "Detail Excerpt");
+// addField(detailExcerpt);
+
+ DataSourceTextField severity = new DataSourceTextField("severity", "Servity");
+ addField(severity);
+
+// DataSourceTextField source = new DataSourceTextField("source", "Source");
+// addField(source);
+
+ DataSourceTextField sourceLocation = new DataSourceTextField("sourceLocation", "Source Location");
+ addField(sourceLocation);
+
+// DataSourceTextField type = new DataSourceTextField("type", "Type");
+// addField(type);
+
+ DataSourceTextField timestamp = new DataSourceTextField("timestamp", "Timestamp");
+ timestamp.setType(FieldType.DATETIME);
+ addField(timestamp);
+
+
+ }
+
+
+ @Override
+ protected void executeFetch(final DSRequest request, final DSResponse response) {
+
+ EventCriteria criteria = new EventCriteria();
+ criteria.addSortSeverity(PageOrdering.DESC);
+
+ criteria.setPageControl(getPageControl(request));
+ criteria.fetchSource(true);
+
+ if (request.getCriteria().getValues().get("resourceId") != null) {
+ criteria.addFilterResourceId(request.getCriteria().getAttributeAsInt("resourceId"));
+ }
+
+ GWTServiceLookup.getEventService().findEventsByCriteria(criteria,
+ new AsyncCallback<PageList<Event>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load event data", caught);
+ }
+
+ public void onSuccess(PageList<Event> result) {
+ response.setData(buildRecords(result));
+ response.setTotalRows(result.getTotalSize());
+ processResponse(request.getRequestId(), response);
+ }
+ });
+
+ }
+
+ @Override
+ public Event copyValues(ListGridRecord from) {
+ return null; // TODO: Implement this method.
+ }
+
+ @Override
+ public ListGridRecord copyValues(Event from) {
+ ListGridRecord record = new ListGridRecord();
+
+ record.setAttribute("id", from.getId());
+ record.setAttribute("detail", from.getDetail());
+ record.setAttribute("detailExcerpt", from.getDetailExcerpt());
+ record.setAttribute("severity", from.getSeverity().name());
+ record.setAttribute("source", from.getSource());
+ record.setAttribute("sourceLocation", from.getSourceLocation());
+ record.setAttribute("type", from.getType());
+ record.setAttribute("timestamp", new Date(from.getTimestamp()));
+
+ return record;
+ }
+
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventHistoryView.java
new file mode 100644
index 0000000..72ecded
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/event/EventHistoryView.java
@@ -0,0 +1,65 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.inventory.resource.detail.event;
+
+import com.smartgwt.client.data.Criteria;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.grid.CellFormatter;
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+
+import org.rhq.enterprise.gui.coregui.client.components.table.Table;
+
+/**
+ * @author Greg Hinkle
+ */
+public class EventHistoryView extends Table {
+
+
+ public EventHistoryView(Criteria criteria) {
+ super("Event History", criteria);
+
+ setDataSource(new EventDatasource());
+
+ }
+
+ @Override
+ protected void onDraw() {
+ super.onDraw();
+// getListGrid().getField("id").setWidth(60);
+ getListGrid().getField("severity").setWidth(120);
+ getListGrid().getField("severity").setCellFormatter(new CellFormatter() {
+ public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
+ return Canvas.imgHTML("subsystems/event/" + o, 16, 16) + o;
+ }
+ });
+
+ getListGrid().getField("sourceLocation").setWidth(200);
+ getListGrid().getField("timestamp").setWidth(160);
+ }
+
+ public static EventHistoryView createResourceHistoryView(int resourceId) {
+ Criteria criteria = new Criteria();
+ criteria.addCriteria("resourceId",resourceId);
+ return new EventHistoryView(criteria);
+ }
+}
commit 14a2af634752dd6a190f35f0c35fdce33ff6c4cb
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 11:27:22 2010 -0400
New resource metric schedule datasource
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceScheduledMetricDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceScheduledMetricDatasource.java
new file mode 100644
index 0000000..f412d7b
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/monitoring/ResourceScheduledMetricDatasource.java
@@ -0,0 +1,153 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.inventory.resource.detail.monitoring;
+
+import java.util.Collection;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.data.DSRequest;
+import com.smartgwt.client.data.DSResponse;
+import com.smartgwt.client.data.Record;
+import com.smartgwt.client.data.fields.DataSourceIntegerField;
+import com.smartgwt.client.data.fields.DataSourceTextField;
+import com.smartgwt.client.widgets.grid.ListGridRecord;
+
+import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
+import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
+import org.rhq.core.domain.measurement.DataType;
+import org.rhq.core.domain.measurement.MeasurementDefinition;
+import org.rhq.core.domain.measurement.MeasurementSchedule;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
+import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
+
+/**
+ * @author Greg Hinkle
+ */
+public class ResourceScheduledMetricDatasource extends RPCDataSource<MeasurementDefinition> {
+
+
+ public ResourceScheduledMetricDatasource() {
+
+ DataSourceIntegerField id = new DataSourceIntegerField("id");
+ id.setPrimaryKey(true);
+ addField(id);
+
+ DataSourceTextField name = new DataSourceTextField("name");
+ addField(name);
+
+ DataSourceTextField displayName = new DataSourceTextField("displayName");
+ addField(displayName);
+
+ DataSourceTextField description = new DataSourceTextField("description");
+ addField(description);
+
+ DataSourceTextField units = new DataSourceTextField("units");
+ addField(units);
+
+ DataSourceTextField numericType = new DataSourceTextField("numericType");
+ addField(numericType);
+
+ DataSourceTextField category = new DataSourceTextField("category");
+ addField(category);
+ }
+
+ @Override
+ protected void executeFetch(final DSRequest request, final DSResponse response) {
+
+
+
+
+ if (request.getCriteria().getValues().containsKey("id")) {
+ MeasurementDefinitionCriteria criteria = new MeasurementDefinitionCriteria();
+
+ criteria.addFilterId(request.getCriteria().getAttributeAsInt("id"));
+ GWTServiceLookup.getMeasurementDataService().findMeasurementDefinitionsByCriteria(criteria,
+ new AsyncCallback<PageList<MeasurementDefinition>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load metric definitions",caught);
+ }
+
+ public void onSuccess(PageList<MeasurementDefinition> result) {
+ response.setData(buildRecords(result));
+ processResponse(request.getRequestId(), response);
+ }
+ });
+
+
+ } else if (request.getCriteria().getValues().containsKey("resourceId")) {
+ MeasurementScheduleCriteria criteria = new MeasurementScheduleCriteria();
+ criteria.fetchDefinition(true);
+
+ criteria.addFilterResourceId(request.getCriteria().getAttributeAsInt("resourceId"));
+
+
+ GWTServiceLookup.getMeasurementDataService().findMeasurementSchedulesByCriteria(criteria, new AsyncCallback<PageList<MeasurementSchedule>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load metric schedules", caught);
+ }
+
+ public void onSuccess(PageList<MeasurementSchedule> result) {
+ response.setData(buildRecords(result));
+ processResponse(request.getRequestId(), response);
+ }
+ });
+ } else {
+ processResponse(request.getRequestId(), response);
+ }
+ }
+
+ private ListGridRecord[] buildRecords(PageList<MeasurementSchedule> list) {
+ PageList<MeasurementDefinition> definitions = new PageList<MeasurementDefinition>();
+
+ for (MeasurementSchedule schedule : list) {
+ if (schedule.isEnabled() && schedule.getDefinition().getDataType() == DataType.MEASUREMENT) {
+ definitions.add(schedule.getDefinition());
+ }
+ }
+
+ return buildRecords(definitions);
+ }
+
+
+ @Override
+ public MeasurementDefinition copyValues(ListGridRecord from) {
+ return null; // TODO: Implement this method.
+ }
+
+ @Override
+ public ListGridRecord copyValues(MeasurementDefinition from) {
+ ListGridRecord record = new ListGridRecord();
+
+ record.setAttribute("id", from.getId());
+ record.setAttribute("name", from.getName());
+ record.setAttribute("displayName", from.getDisplayName());
+ record.setAttribute("description", from.getDescription());
+ record.setAttribute("units", from.getUnits().name());
+ record.setAttribute("numericType", from.getNumericType().name());
+ record.setAttribute("category", from.getCategory().name());
+ return record;
+ }
+}
commit 6e5134a378188ac58aed7c8c5fe1d735f5e0fd7a
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 10:46:57 2010 -0400
start of group pages
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
new file mode 100644
index 0000000..4e9f17a
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
@@ -0,0 +1,312 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.inventory.groups.detail;
+
+import java.util.EnumSet;
+import java.util.Set;
+
+import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.types.Side;
+import com.smartgwt.client.widgets.layout.VLayout;
+import com.smartgwt.client.widgets.tab.Tab;
+
+import org.rhq.core.domain.authz.Permission;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.resource.composite.ResourcePermission;
+import org.rhq.core.domain.resource.group.GroupCategory;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.ViewId;
+import org.rhq.enterprise.gui.coregui.client.ViewPath;
+import org.rhq.enterprise.gui.coregui.client.alert.definitions.AlertDefinitionsView;
+import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
+import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTab;
+import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTabSelectedEvent;
+import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTabSelectedHandler;
+import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTabSet;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSearchView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSelectListener;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceTitleBar;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.alert.ResourceAlertHistoryView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configuration.ConfigurationHistoryView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.configuration.ResourceConfigurationEditView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.event.EventHistoryView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.inventory.PluginConfigurationEditView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.GraphListView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.monitoring.calltime.CallTimeView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation.OperationHistoryView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.overview.ResourceOverviewView;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
+
+/**
+ * Right panel of the resource view.
+ *
+ * @author Greg Hinkle
+ */
+public class ResourceGroupDetailView extends VLayout implements BookmarkableView, TwoLevelTabSelectedHandler {
+
+ private ResourceGroup group;
+ private ResourcePermission permissions;
+
+ private ResourceType groupType;
+
+ private TwoLevelTab summaryTab;
+ private TwoLevelTab monitoringTab;
+ private TwoLevelTab inventoryTab;
+ private TwoLevelTab operationsTab;
+ private TwoLevelTab alertsTab;
+ private TwoLevelTab configurationTab;
+ private TwoLevelTab eventsTab;
+ private TwoLevelTab contentTab;
+
+ private TwoLevelTabSet topTabSet;
+
+ private ResourceGroupTitleBar titleBar;
+
+ private ViewId tabView;
+ private ViewId subtabView;
+
+
+
+ @Override
+ protected void onDraw() {
+ super.onDraw();
+
+ setWidth100();
+ setHeight100();
+
+
+ // The Tabs section
+
+ topTabSet = new TwoLevelTabSet();
+ topTabSet.setTabBarPosition(Side.TOP);
+ topTabSet.setWidth100();
+ topTabSet.setHeight100();
+ topTabSet.setEdgeMarginSize(0);
+ topTabSet.setEdgeSize(0);
+
+ summaryTab = new TwoLevelTab("Summary", "/images/icons/Service_up_16.png");
+ summaryTab.registerSubTabs("Overview", "Timeline");
+
+ monitoringTab = new TwoLevelTab("Monitoring", "/images/icons/Monitor_grey_16.png");
+ monitoringTab.registerSubTabs("Graphs", "Tables", "Traits", "Availability", "Schedules", "Call Time");
+
+ inventoryTab = new TwoLevelTab("Inventory", "/images/icons/Inventory_grey_16.png");
+ inventoryTab.registerSubTabs("Children", "Connection Settings");
+
+ operationsTab = new TwoLevelTab("Operations", "/images/icons/Operation_grey_16.png");
+ operationsTab.registerSubTabs("History", "Scheduled");
+
+ alertsTab = new TwoLevelTab("Alerts", "/images/icons/Alert_grey_16.png");
+ alertsTab.registerSubTabs("History", "Definitions");
+
+ configurationTab = new TwoLevelTab("Configuration", "/images/icons/Configure_grey_16.png");
+ configurationTab.registerSubTabs("Current", "History");
+
+ eventsTab = new TwoLevelTab("Events", "/images/icons/Events_grey_16.png");
+ eventsTab.registerSubTabs("History");
+
+ contentTab = new TwoLevelTab("Content", "/images/icons/Content_grey_16.png");
+ contentTab.registerSubTabs("Deployed", "New", "Subscriptions", "History");
+
+ topTabSet.setTabs(summaryTab, monitoringTab, inventoryTab, operationsTab, alertsTab, configurationTab, eventsTab, contentTab);
+
+
+ topTabSet.addTwoLevelTabSelectedHandler(this);
+
+ titleBar = new ResourceGroupTitleBar();
+ addMember(titleBar);
+
+ addMember(topTabSet);
+
+// CoreGUI.addBreadCrumb(getPlace());
+ }
+
+ public void onResourceSelected(ResourceGroup group) {
+
+ this.group = group;
+
+ titleBar.setGroup(group);
+
+ int selectedTab = topTabSet.getSelectedTabNumber();
+
+ // TODO all of the tabs
+
+// FullHTMLPane timelinePane = new FullHTMLPane("/rhq/resource/summary/timeline-plain.xhtml?id=" + resource.getId());
+// summaryTab.updateSubTab("Overview", new ResourceOverviewView(resource));
+// summaryTab.updateSubTab("Timeline", timelinePane);
+
+
+// monitoringTab.updateSubTab("Graphs", new GraphListView(resource)); // new FullHTMLPane("/rhq/common/monitor/graphs.xhtml?id=" + resource.getId()));
+// monitoringTab.updateSubTab("Tables", new FullHTMLPane("/rhq/common/monitor/tables-plain.xhtml?id=" + resource.getId()));
+// monitoringTab.updateSubTab("Traits", new FullHTMLPane("/rhq/resource/monitor/traits-plain.xhtml?id=" + resource.getId()));
+// monitoringTab.updateSubTab("Availability", new FullHTMLPane("/rhq/resource/monitor/availabilityHistory-plain.xhtml?id=" + resource.getId()));
+// monitoringTab.updateSubTab("Schedules", new FullHTMLPane("/rhq/resource/monitor/schedules-plain.xhtml?id=" + resource.getId()));
+// monitoringTab.updateSubTab("Call Time", new CallTimeView(resource));
+//
+//
+// inventoryTab.updateSubTab("Children", ResourceSearchView.getChildrenOf(resource.getId()));
+// inventoryTab.updateSubTab("Connection Settings", new PluginConfigurationEditView(resource)); // new ConfigurationEditor(resource.getId(), resource.getResourceType().getId(), ConfigurationEditor.ConfigType.plugin));
+//
+// operationsTab.updateSubTab("History", OperationHistoryView.getResourceHistoryView(resource));
+//
+// configurationTab.updateSubTab("Current", new ResourceConfigurationEditView(resource));
+// configurationTab.updateSubTab("History", ConfigurationHistoryView.getHistoryOf(resource.getId()));
+//
+// alertsTab.updateSubTab("History", new ResourceAlertHistoryView(resource.getId()));
+// alertsTab.updateSubTab("Definitions", AlertDefinitionsView.getResourceView(resource));
+//
+// eventsTab.updateSubTab("History", EventHistoryView.createResourceHistoryView(resource.getId())); //new FullHTMLPane("/rhq/common/events/history-plain.xhtml?id=" + resource.getId()));
+//
+// contentTab.updateSubTab("Deployed", new FullHTMLPane("/rhq/resource/content/view-plain.xhtml?id=" + resource.getId()));
+// contentTab.updateSubTab("New", new FullHTMLPane("/rhq/resource/content/deploy-plain.xhtml?id=" + resource.getId()));
+// contentTab.updateSubTab("Subscriptions", new FullHTMLPane("/rhq/resource/content/subscription-plain.xhtml?id=" + resource.getId()));
+// contentTab.updateSubTab("History", new FullHTMLPane("/rhq/resource/content/history-plain.xhtml?id=" + resource.getId()));
+
+
+// topTabSet.setSelectedTab(selectedTab);
+
+ updateTabStatus();
+
+ topTabSet.markForRedraw();
+ }
+
+
+ private void updateTabStatus() {
+ // Go and get the type with all needed metadata
+ // and then get the permissions for this resource
+
+ if (group.getGroupCategory() == GroupCategory.COMPATIBLE) {
+ ResourceType groupType = group.getResourceType();
+ ResourceTypeRepository.Cache.getInstance().getResourceTypes(groupType.getId(),
+ EnumSet.of(ResourceTypeRepository.MetadataType.content,
+ ResourceTypeRepository.MetadataType.operations,
+ ResourceTypeRepository.MetadataType.events,
+ ResourceTypeRepository.MetadataType.resourceConfigurationDefinition),
+ new ResourceTypeRepository.TypeLoadedCallback() {
+ public void onTypesLoaded(ResourceType type) {
+
+ ResourceGroupDetailView.this.groupType = type;
+
+ GWTServiceLookup.getAuthorizationService().
+ getImplicitGroupPermissions(ResourceGroupDetailView.this.group.getId(),
+ new AsyncCallback<Set<Permission>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load group permissions", caught);
+ }
+
+ public void onSuccess(Set<Permission> result) {
+ ResourceGroupDetailView.this.permissions = new ResourcePermission(result);
+ completeTabUpdate();
+ }
+ });
+ }
+ });
+ }
+ }
+
+
+ private void completeTabUpdate() {
+
+ if (!permissions.isMeasure()) {
+ topTabSet.disableTab(monitoringTab);
+ } else {
+ topTabSet.enableTab(monitoringTab);
+ }
+
+ if (groupType.getOperationDefinitions() == null || groupType.getOperationDefinitions().isEmpty() || !permissions.isControl()) {
+ topTabSet.disableTab(operationsTab);
+ } else {
+ topTabSet.enableTab(operationsTab);
+ }
+
+
+ if (!permissions.isAlert()) {
+ topTabSet.disableTab(alertsTab);
+ } else {
+ topTabSet.enableTab(alertsTab);
+ }
+
+ if (groupType.getResourceConfigurationDefinition() == null || !permissions.isConfigure()) {
+ topTabSet.disableTab(configurationTab);
+ } else {
+ topTabSet.enableTab(configurationTab);
+ }
+
+ if (groupType.getEventDefinitions() == null || groupType.getEventDefinitions().isEmpty() || !permissions.isMeasure()) {
+ topTabSet.enableTab(eventsTab);
+ } else {
+ topTabSet.enableTab(eventsTab);
+ }
+
+ if (groupType.getPackageTypes() == null || groupType.getPackageTypes().isEmpty() || !permissions.isContent()) {
+ topTabSet.disableTab(contentTab);
+ } else {
+ topTabSet.enableTab(contentTab);
+ }
+
+
+ }
+
+
+ public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) {
+ String tabPath = "/" + tabSelectedEvent.getId() + "/" + tabSelectedEvent.getSubTabId();
+// System.out.println("TAB: " + currentView.getPath() + tabPath);
+
+ if (group != null) {
+ String path = "ResourceGroup/" + group.getId() + tabPath;
+ History.newItem(path, false);
+ }
+ }
+
+
+ public void renderView(ViewPath viewPath) {
+ // TODO: Implement this method.
+
+ if (viewPath.isEnd()) {
+ // default
+
+ } else {
+
+ tabView = viewPath.getCurrent();
+ subtabView = viewPath.getNext();
+
+ for (Tab t : topTabSet.getTabs()) {
+ TwoLevelTab tab = (TwoLevelTab) t;
+
+ if (tab.getTitle().equals(tabView.getPath())) {
+ topTabSet.selectTab(tabView.getPath());
+
+ tab.getLayout().selectTab(subtabView.getPath());
+
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTitleBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTitleBar.java
new file mode 100644
index 0000000..e8ae5aa
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTitleBar.java
@@ -0,0 +1,195 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.inventory.groups.detail;
+
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.HTMLFlow;
+import com.smartgwt.client.widgets.Img;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
+import com.smartgwt.client.widgets.layout.HLayout;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.criteria.ResourceCriteria;
+import org.rhq.core.domain.criteria.ResourceGroupCriteria;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.group.GroupCategory;
+import org.rhq.core.domain.resource.group.ResourceGroup;
+import org.rhq.core.domain.tagging.Tag;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.components.tagging.TagEditorView;
+import org.rhq.enterprise.gui.coregui.client.components.tagging.TagsChangedCallback;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.util.message.Message;
+
+/**
+ * @author Greg Hinkle
+ * @author Ian Springer
+ */
+public class ResourceGroupTitleBar extends HLayout {
+ private static final String FAV_ICON = "Favorite_24_Selected.png";
+ private static final String NOT_FAV_ICON = "Favorite_24.png";
+
+ private ResourceGroup group;
+
+ private Img badge;
+ private Img favoriteButton;
+ private HTMLFlow title;
+ private Img availabilityImage;
+ private boolean favorite;
+
+ public ResourceGroupTitleBar() {
+ super();
+ setWidth100();
+ setHeight(30);
+ setPadding(5);
+ setMembersMargin(5);
+ }
+
+ public void update() {
+ for (Canvas child : getChildren()) {
+ child.destroy();
+ }
+
+ this.title = new HTMLFlow();
+ this.title.setWidth("*");
+
+ this.availabilityImage = new Img("resources/availability_grey_24.png", 24, 24);
+
+ this.favoriteButton = new Img(NOT_FAV_ICON, 24, 24);
+
+ this.favoriteButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent clickEvent) {
+ Set<Integer> favorites = toggleFavoriteLocally();
+ CoreGUI.getUserPreferences().setFavoriteResources(favorites, new UpdateFavoritesCallback());
+ }
+ });
+
+ badge = new Img("types/Service_up_24.png", 24, 24);
+
+ TagEditorView tagEditorView = new TagEditorView(group.getTags(), false, new TagsChangedCallback() {
+ public void tagsChanged(final HashSet<Tag> tags) {
+ GWTServiceLookup.getTagService().updateResourceGroupTags(group.getId(), tags, new AsyncCallback<Void>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to update resource group tags", caught);
+ }
+
+ public void onSuccess(Void result) {
+ CoreGUI.getMessageCenter().notify(new Message("Resource group tags updated", Message.Severity.Info));
+ // update what is essentially our local cache
+ group.setTags(tags);
+ }
+ });
+ }
+ });
+
+ loadTags(tagEditorView);
+
+
+ addMember(badge);
+ addMember(title);
+ addMember(tagEditorView);
+ addMember(availabilityImage);
+ addMember(favoriteButton);
+ }
+
+ private void loadTags(final TagEditorView tagEditorView) {
+ ResourceGroupCriteria criteria = new ResourceGroupCriteria();
+ criteria.addFilterId(group.getId());
+ criteria.fetchTags(true);
+ GWTServiceLookup.getResourceGroupService().findResourceGroupsByCriteria(criteria, new AsyncCallback<PageList<ResourceGroup>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Could not load resource tags",caught);
+ }
+
+ public void onSuccess(PageList<ResourceGroup> result) {
+ LinkedHashSet<Tag> tags = new LinkedHashSet<Tag>();
+ tags.addAll(result.get(0).getTags());
+ tagEditorView.setTags(tags);
+ }
+ });
+ }
+
+
+
+ public void setGroup(ResourceGroup group) {
+ this.group = group;
+ update();
+
+ this.title.setContents("<span class=\"SectionHeader\">" + group.getName() + "</span> <span class=\"subtitle\">" + group.getGroupCategory().name() + "</span>");
+
+ Set<Integer> favorites = CoreGUI.getUserPreferences().getFavoriteResourceGroups();
+ this.favorite = favorites.contains(group.getId());
+ updateFavoriteButton();
+
+ this.availabilityImage.setSrc("resources/availability_" +
+ (true ? "green" : "red") + //todo
+ "_24.png");
+
+
+
+ String category = this.group.getGroupCategory() == GroupCategory.COMPATIBLE ? "Cluster" : "Group";
+
+
+ String avail = "up"; // todo
+// (resource.getCurrentAvailability() != null && resource.getCurrentAvailability().getAvailabilityType() != null)
+// ? (resource.getCurrentAvailability().getAvailabilityType().name().toLowerCase()) : "down";
+ badge.setSrc("types/" + category + "_" + avail + "_24.png");
+
+ markForRedraw();
+ }
+
+ private void updateFavoriteButton() {
+ this.favoriteButton.setSrc(favorite ? FAV_ICON : NOT_FAV_ICON);
+ this.favoriteButton.setTooltip("Click to " + (favorite ? "remove" : "add") + " this group as a favorite.");
+ }
+
+ private Set<Integer> toggleFavoriteLocally() {
+ this.favorite = !this.favorite;
+ Set<Integer> favorites = CoreGUI.getUserPreferences().getFavoriteResourceGroups();
+ if (this.favorite) {
+ favorites.add(group.getId());
+ } else {
+ favorites.remove(group.getId());
+ }
+ return favorites;
+ }
+
+ public class UpdateFavoritesCallback implements AsyncCallback<Subject> {
+ public void onSuccess(Subject subject) {
+ CoreGUI.getMessageCenter().notify(new Message((favorite ? "Added " : "Removed ") + " Group "
+ + ResourceGroupTitleBar.this.group.getName() + " as a favorite.", Message.Severity.Info));
+ updateFavoriteButton();
+ }
+
+ public void onFailure(Throwable throwable) {
+ CoreGUI.getMessageCenter().notify(new Message("Failed to " + (favorite ? "add " : "remove ") + " Group "
+ + ResourceGroupTitleBar.this.group.getName() + " as a favorite.", Message.Severity.Error));
+ // Revert back to our original favorite status, since the server update failed.
+ toggleFavoriteLocally();
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java
new file mode 100644
index 0000000..37c492c
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTopView.java
@@ -0,0 +1,146 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.inventory.groups.detail;
+
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.layout.HLayout;
+
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
+import org.rhq.enterprise.gui.coregui.client.ViewId;
+import org.rhq.enterprise.gui.coregui.client.ViewPath;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
+
+/**
+ * @author Greg Hinkle
+ */
+public class ResourceGroupTopView extends HLayout implements BookmarkableView {
+
+ private Canvas contentCanvas;
+
+ private Resource currentResource;
+ //private Resource resourcePlatform;
+
+// private ResourceTreeView treeView;
+ private ResourceGroupDetailView detailView = new ResourceGroupDetailView();
+
+ private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService();
+
+
+ public ResourceGroupTopView() {
+
+ }
+
+ @Override
+ protected void onInit() {
+ super.onInit();
+
+ setWidth100();
+ setHeight100();
+
+
+// treeView = new ResourceTreeView();
+// addMember(treeView);
+
+ contentCanvas = new Canvas();
+ addMember(contentCanvas);
+
+
+ // created above
+// detailView = new ResourceDetailView();
+
+// treeView.addResourceSelectListener(detailView);
+
+
+ setContent(detailView);
+
+ }
+/*
+ public void setSelectedResource(final int resourceId, final ViewPath view) {
+ Resource resource = this.treeView.getResource(resourceId);
+ if (resource != null) {
+ setSelectedResource(resource, view);
+ } else {
+ ResourceCriteria criteria = new ResourceCriteria();
+ criteria.addFilterId(resourceId);
+ criteria.fetchTags(true);
+ //criteria.fetchParentResource(true);
+ resourceService.findResourcesByCriteria(criteria, new AsyncCallback<PageList<Resource>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getMessageCenter().notify(new Message("Resource with id [" + resourceId +
+ "] does not exist or is not accessible.", Message.Severity.Warning));
+
+ CoreGUI.goTo(InventoryView.VIEW_PATH);
+ }
+
+ public void onSuccess(PageList<Resource> result) {
+ if (result.isEmpty()) {
+ //noinspection ThrowableInstanceNeverThrown
+ onFailure(new Exception("Resource with id [" + resourceId + "] does not exist."));
+ } else {
+ Resource resource = result.get(0);
+ setSelectedResource(resource, view);
+ }
+ }
+ });
+ }
+ }
+
+ private void setSelectedResource(Resource resource, ViewPath viewPath) {
+ this.currentResource = resource;
+ this.treeView.setSelectedResource(resource, viewPath.getCurrent());
+ this.detailView.onResourceSelected(resource);
+ }*/
+
+ public void setContent(Canvas newContent) {
+ if (contentCanvas.getChildren().length > 0)
+ contentCanvas.getChildren()[0].destroy();
+ contentCanvas.addChild(newContent);
+ contentCanvas.markForRedraw();
+ }
+
+
+ public void renderView(ViewPath viewPath) {
+ if (viewPath.isEnd()) {
+ // default detail view
+ viewPath.getViewPath().add(new ViewId("Summary"));
+ viewPath.getViewPath().add(new ViewId("Overview"));
+ }
+
+ Integer resourceId = Integer.parseInt(viewPath.getCurrent().getPath());
+
+ if (currentResource == null || currentResource.getId() != resourceId) {
+
+// setSelectedResource(resourceId, viewPath);
+
+// this.treeView.renderView(viewPath);
+
+ viewPath.next();
+
+ this.detailView.renderView(viewPath);
+
+ }
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeDatasource.java
new file mode 100644
index 0000000..51b48eb
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeDatasource.java
@@ -0,0 +1,329 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client.inventory.groups.detail;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.data.DSRequest;
+import com.smartgwt.client.data.DSResponse;
+import com.smartgwt.client.data.DataSource;
+import com.smartgwt.client.data.DataSourceField;
+import com.smartgwt.client.data.fields.DataSourceImageField;
+import com.smartgwt.client.data.fields.DataSourceTextField;
+import com.smartgwt.client.rpc.RPCResponse;
+import com.smartgwt.client.types.DSDataFormat;
+import com.smartgwt.client.types.DSProtocol;
+import com.smartgwt.client.widgets.tree.TreeNode;
+
+import org.rhq.core.domain.criteria.ResourceCriteria;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.ResourceCategory;
+import org.rhq.core.domain.resource.ResourceSubCategory;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.gwt.ResourceGWTServiceAsync;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
+
+/**
+ * This doesn't extend RPCDataSource because it is tree oriented and
+ * behaves different from normal list data sources in some places.
+ *
+ * @author Greg Hinkle
+ */
+public class ResourceGroupTreeDatasource extends DataSource {
+
+ private boolean initialized = false;
+ int rootId;
+ List<Resource> initialData;
+
+ private ResourceGWTServiceAsync resourceService = GWTServiceLookup.getResourceService();
+
+ public ResourceGroupTreeDatasource(List<Resource> initialData) {
+ setClientOnly(false);
+ setDataProtocol(DSProtocol.CLIENTCUSTOM);
+ setDataFormat(DSDataFormat.CUSTOM);
+
+ this.initialData = initialData;
+
+ this.rootId = rootId;
+
+ DataSourceField idDataField = new DataSourceTextField("id", "ID");
+ idDataField.setPrimaryKey(true);
+
+ DataSourceTextField nameDataField = new DataSourceTextField("name", "Name");
+ nameDataField.setCanEdit(false);
+
+ DataSourceTextField descriptionDataField = new DataSourceTextField("description", "Description");
+ descriptionDataField.setCanEdit(false);
+
+ DataSourceImageField availabilityDataField = new DataSourceImageField("currentAvailability", "Availability");
+ descriptionDataField.setCanEdit(false);
+
+ DataSourceTextField parentIdField = new DataSourceTextField("parentId", "Parent ID");
+ parentIdField.setForeignKey("id");
+ // parentIdField.setRootValue(rootId);
+
+ // DataSourceTextField parentKeyField = new DataSourceTextField("parentKey", "Parent KEY");
+ // parentKeyField.setForeignKey("id");
+ // parentKeyField.setRootValue(rootId);
+
+ // nameDataField.setType(FieldType.);
+
+ setDropExtraFields(false);
+
+ setFields(idDataField, nameDataField, descriptionDataField, availabilityDataField);
+ }
+
+ @Override
+ protected Object transformRequest(DSRequest request) {
+ String requestId = request.getRequestId();
+ DSResponse response = new DSResponse();
+ response.setAttribute("clientContext", request.getAttributeAsObject("clientContext"));
+ // Asume success
+ response.setStatus(0);
+ switch (request.getOperationType()) {
+ case ADD:
+ //executeAdd(request, response);
+ break;
+ case FETCH:
+ executeFetch(requestId, request, response);
+ break;
+ case REMOVE:
+ //executeRemove(lstRec);
+ break;
+ case UPDATE:
+ //executeAdd(lstRec, false);
+ break;
+
+ default:
+ break;
+ }
+
+ return request.getData();
+ }
+
+
+ public void executeFetch(final String requestId, final DSRequest request, final DSResponse response) {
+ final long start = System.currentTimeMillis();
+
+ String p = request.getCriteria().getAttribute("parentId");
+ // System.out.println("All attributes: " + Arrays.toString(request.getCriteria().getAttributes()));
+
+ ResourceCriteria criteria = new ResourceCriteria();
+
+ if (p == null) {
+ System.out.println("DataSourceTree: Loading initial data");
+
+ // criteria.addFilterId(rootId);
+
+ processIncomingData(initialData, response, requestId);
+ return;
+
+ } else {
+ System.out.println("DataSourceTree: Loading " + p);
+
+ criteria.addFilterParentResourceId(Integer.parseInt(p));
+ }
+
+ // The server is already eager fetch resource type
+ // * criteria.fetchResourceType(true);
+
+ resourceService.findResourcesByCriteria(criteria, new AsyncCallback<PageList<Resource>>() {
+ public void onFailure(Throwable caught) {
+ CoreGUI.getErrorHandler().handleError("Failed to load resource data for tree", caught);
+ response.setStatus(RPCResponse.STATUS_FAILURE);
+ processResponse(requestId, response);
+ }
+
+ public void onSuccess(PageList<Resource> result) {
+ processIncomingData(result, response, requestId);
+ }
+ });
+ }
+
+ private void processIncomingData(List<Resource> result, final DSResponse response, final String requestId) {
+
+ ResourceTypeRepository.Cache.getInstance().loadResourceTypes(result,
+ EnumSet.of(ResourceTypeRepository.MetadataType.operations, ResourceTypeRepository.MetadataType.children, ResourceTypeRepository.MetadataType.subCategory),
+ new ResourceTypeRepository.ResourceTypeLoadedCallback() {
+ public void onResourceTypeLoaded(List<Resource> result) {
+ response.setData(build(result));
+ processResponse(requestId, response);
+
+ }
+ });
+ }
+
+ /**
+ * Construct a set of TreeNodes from a list of resources
+ *
+ * @param resources
+ * @return
+ */
+ public static TreeNode[] build(List<Resource> resources) {
+ ResourceTreeNode[] records = new ResourceTreeNode[resources.size()];
+ for (int x = 0; x < resources.size(); x++) {
+ Resource res = resources.get(x);
+ ResourceTreeNode record = new ResourceTreeNode(res);
+ records[x] = record;
+ }
+
+ return introduceTypeFolders(records);
+ }
+
+ private static TreeNode[] introduceTypeFolders(ResourceTreeNode[] nodes) {
+ ArrayList<TreeNode> built = new ArrayList<TreeNode>();
+ HashMap<ResourceSubCategory, CategoryTreeNode> categories = new HashMap<ResourceSubCategory, CategoryTreeNode>();
+ HashMap<ResourceType, TypeTreeNode> types = new HashMap<ResourceType, TypeTreeNode>();
+
+
+ for (ResourceTreeNode node : nodes) {
+ built.add(node);
+
+ if (!types.containsKey(node.getResourceType())
+ && node.getResourceType().getCategory() != ResourceCategory.PLATFORM) {
+
+ String parentResourceId = String.valueOf(node.getResource().getParentResource().getId());
+
+ CategoryTreeNode categoryNode = null;
+
+ if (node.getResourceType().getSubCategory() != null) {
+ ResourceSubCategory category = node.getResourceType().getSubCategory();
+ if (category.getName() != null) {
+ categoryNode = categories.get(category);
+
+ if (categoryNode == null) {
+ categoryNode = new CategoryTreeNode(parentResourceId, category);
+
+ categories.put(category, categoryNode);
+ built.add(categoryNode);
+ }
+ }
+ }
+
+ String parentId = null;
+ if (categoryNode != null) {
+ parentId = categoryNode.getAttribute("id");
+ } else {
+ parentId = parentResourceId;
+ }
+
+ TypeTreeNode typeNode = new TypeTreeNode(parentId, parentResourceId, node.getResourceType().getName());
+ built.add(typeNode);
+ types.put(node.getResourceType(), typeNode);
+ }
+ }
+
+ return built.toArray(new TreeNode[built.size()]);
+
+ }
+
+ private static boolean sameTypes(ResourceTreeNode[] nodes) {
+ ResourceType first = nodes[0].getResourceType();
+ for (ResourceTreeNode node : nodes) {
+ if (!first.equals(node)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static class CategoryTreeNode extends TreeNode {
+ public CategoryTreeNode(String parentId, ResourceSubCategory category) {
+ setID(parentId + "__" + category.getName());
+ setParentID(parentId);
+ setName(category.getDisplayName());
+
+ setAttribute("id", parentId + "__" + category.getName());
+ setAttribute("parentId", parentId);
+ setAttribute("name", category.getDisplayName());
+ }
+ }
+
+
+ public static class TypeTreeNode extends TreeNode {
+
+ private TypeTreeNode(String parentId, String parentResourceId, String type) {
+ setID(parentId + "_" + type);
+ setParentID(parentId);
+
+ setAttribute("id", parentResourceId + "_" + type);
+ setAttribute("parentId", parentId);
+ // setAttribute("parentKey", parentId);
+ setAttribute("name", type);
+ }
+
+ }
+
+ public static class ResourceTreeNode extends TreeNode {
+
+ private Resource resource;
+
+ private ResourceTreeNode(Resource resource) {
+ this.resource = resource;
+
+ String id = String.valueOf(resource.getId());
+ String parentId = resource.getParentResource() == null ? null
+ : (resource.getParentResource().getId() + "_" + resource.getResourceType().getName());
+
+ // System.out.println(id + " / " + parentId);
+
+ setID(id);
+ setParentID(parentId);
+
+ setAttribute("id", id);
+ setAttribute("parentId", parentId);
+
+ // setAttribute("parentKey", resource.getParentResource() == null ? 0 : (resource.getParentResource().getId() + resource.getResourceType().getName()));
+
+ setAttribute("name", resource.getName());
+ setAttribute("description", resource.getDescription());
+ setAttribute(
+ "currentAvailability",
+ resource.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP ? "/images/icons/availability_green_16.png"
+ : "/images/icons/availability_red_16.png");
+
+ setIsFolder((resource.getResourceType().getChildResourceTypes() != null && !resource.getResourceType()
+ .getChildResourceTypes().isEmpty()));
+ }
+
+ public Resource getResource() {
+ return resource;
+ }
+
+ public void setResource(Resource resource) {
+ this.resource = resource;
+ }
+
+ public ResourceType getResourceType() {
+ return resource.getResourceType();
+ }
+
+ public String getParentId() {
+ return getAttribute("parentId");
+ }
+ }
+}
\ No newline at end of file
commit 3070ccda29b5fb7cb46a6974940d3c8bba01bf5d
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 10:46:24 2010 -0400
Exposed group favorites
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
index edaa01f..62c88dd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/preferences/UserPreferences.java
@@ -62,6 +62,17 @@ public class UserPreferences {
store(callback);
}
+ public Set<Integer> getFavoriteResourceGroups() {
+ return getPreferenceAsIntegerSet(UserPreferenceNames.GROUP_HEALTH_GROUPS);
+ }
+
+ public void setFavoriteResourceGroups(Set<Integer> resourceGroupIds, AsyncCallback<Subject> callback) {
+ setPreference(UserPreferenceNames.GROUP_HEALTH_GROUPS, resourceGroupIds);
+ store(callback);
+ }
+
+
+
protected String getPreference(String name) {
return userConfiguration.getSimpleValue(name, null);
commit 5aad7544a4d5b37d54b27373ab045d19cf854332
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 10:45:44 2010 -0400
An inplace single-resource selector
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/lookup/ResourceLookupComboBoxItem.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/lookup/ResourceLookupComboBoxItem.java
new file mode 100644
index 0000000..0717df5
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/lookup/ResourceLookupComboBoxItem.java
@@ -0,0 +1,63 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.components.lookup;
+
+import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.TextMatchStyle;
+import com.smartgwt.client.widgets.form.fields.ComboBoxItem;
+import com.smartgwt.client.widgets.grid.ListGridField;
+
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceDatasource;
+
+/**
+ * @author Greg Hinkle
+ */
+public class ResourceLookupComboBoxItem extends ComboBoxItem {
+
+ public ResourceLookupComboBoxItem(String name, String title) {
+ super(name, title);
+ setWidth(300);
+ setHint("resource search");
+ setShowHintInField(false);
+
+ setOptionDataSource(new ResourceDatasource());
+
+ ListGridField nameField = new ListGridField("name", "Name", 250);
+ ListGridField descriptionField = new ListGridField("description", "Description");
+ ListGridField typeNameField = new ListGridField("typeName", "Type", 130);
+ ListGridField pluginNameField = new ListGridField("pluginName", "Plugin", 100);
+ ListGridField categoryField = new ListGridField("category", "Category", 60);
+ ListGridField availabilityField = new ListGridField("currentAvailability", "Availability", 55);
+ availabilityField.setAlign(Alignment.CENTER);
+
+ setPickListFields(nameField, descriptionField, typeNameField, pluginNameField, categoryField, availabilityField);
+
+ setValueField("id");
+ setDisplayField("name");
+ setPickListWidth(800);
+ setTextMatchStyle(TextMatchStyle.SUBSTRING);
+ setCompleteOnTab(true);
+
+
+ }
+}
commit 392dc509343611da3b2493118629e842f698cc26
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 10:45:22 2010 -0400
expose validation state for config editor
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
index 89fbba7..74d9bf7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
@@ -60,6 +60,7 @@ import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.ValuesManager;
import com.smartgwt.client.widgets.form.events.ItemChangedEvent;
import com.smartgwt.client.widgets.form.events.ItemChangedHandler;
import com.smartgwt.client.widgets.form.fields.ButtonItem;
@@ -132,6 +133,8 @@ public class ConfigurationEditor extends VLayout {
private Configuration configuration;
private Configuration originalConfiguration;
+ private ValuesManager valuesManager = new ValuesManager();
+
private boolean changed = false;
private Label loadingLabel = new Label("<b>Loading...</b>");
@@ -190,6 +193,10 @@ public class ConfigurationEditor extends VLayout {
addMember(new Label(message));
}
+ public boolean validate() {
+ return this.valuesManager.validate();
+ }
+
@Override
protected void onDraw() {
super.onDraw();
@@ -457,6 +464,7 @@ public class ConfigurationEditor extends VLayout {
private DynamicForm buildPropertiesForm(ArrayList<PropertyDefinition> definitions, AbstractPropertyMap propertyMap) {
DynamicForm form = new DynamicForm();
+ form.setValuesManager(valuesManager);
form.setValidateOnChange(true);
form.addItemChangedHandler(new ItemChangedHandler() {
@@ -501,7 +509,8 @@ public class ConfigurationEditor extends VLayout {
StaticTextItem nameItem = new StaticTextItem();
nameItem.setStartRow(true);
- nameItem.setValue("<b>" + propertyDefinition.getDisplayName() + "</b>");
+ String title = "<b>" + (propertyDefinition.getDisplayName() != null ? propertyDefinition.getDisplayName() : propertyDefinition.getName()) + "</b>";
+ nameItem.setValue(title);
nameItem.setShowTitle(false);
nameItem.setCellStyle(oddRow ? "OddRow" : "EvenRow");
commit ea5b210af7fcc646f0c63182b553c0991b230013
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 10:44:33 2010 -0400
Dashboard, measurement schedule and event data access to gwt
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
index b60e8cc..eb4504b 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
@@ -38,7 +38,7 @@
<!-- limit builds to your preferred browser -->
<!-- Safari -->
- <!--<set-property name="user.agent" value="safari"/>-->
+ <set-property name="user.agent" value="safari"/>
<!-- Firefox 3 -->
<!-- <set-property name="user.agent" value="gecko1_8"/>-->
@@ -66,5 +66,7 @@
<servlet path="/RemoteInstallGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.RemoteInstallGWTServiceImpl"/>
<servlet path="/RepoGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.RepoGWTServiceImpl"/>
<servlet path="/ContentGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.ContentGWTServiceImpl"/>
+ <servlet path="/DashboardGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.DashboardGWTServiceImpl"/>
+ <servlet path="/EventGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.EventGWTServiceImpl"/>
</module>
\ No newline at end of file
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/DashboardGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/DashboardGWTService.java
new file mode 100644
index 0000000..da86756
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/DashboardGWTService.java
@@ -0,0 +1,47 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.gwt;
+
+import java.util.List;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.dashboard.Dashboard;
+
+/**
+ * @author Greg Hinkle
+ */
+public interface DashboardGWTService extends RemoteService {
+
+
+ List<Dashboard> findDashboardsForSubject();
+
+ List<Dashboard> findSharedDashboards();
+
+ Dashboard storeDashboard(Dashboard dashboard);
+
+ void removeDashboard(int dashboardId);
+
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/EventGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/EventGWTService.java
new file mode 100644
index 0000000..04b967b
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/EventGWTService.java
@@ -0,0 +1,59 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.coregui.client.gwt;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+
+import org.rhq.core.domain.criteria.EventCriteria;
+import org.rhq.core.domain.event.Event;
+import org.rhq.core.domain.event.EventSeverity;
+import org.rhq.core.domain.util.PageList;
+
+/**
+ * @author Greg Hinkle
+ */
+public interface EventGWTService extends RemoteService {
+
+
+ EventSeverity[] getSeverityBuckets(
+ int resourceId,
+ long begin,
+ long end,
+ int numBuckets);
+
+ EventSeverity[] getSeverityBucketsForAutoGroup(
+ int parentResourceId,
+ int resourceTypeId,
+ long begin,
+ long end,
+ int numBuckets);
+
+ EventSeverity[] getSeverityBucketsForCompGroup(
+
+ int resourceGroupId,
+ long begin,
+ long end,
+ int numBuckets);
+
+ PageList<Event> findEventsByCriteria(EventCriteria criteria);
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
index d48dd7a..af1a631 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/GWTServiceLookup.java
@@ -108,6 +108,16 @@ public class GWTServiceLookup {
return secure(SearchGWTServiceAsync.Util.getInstance());
}
+ public static DashboardGWTServiceAsync getDashboardService() {
+ return secure(DashboardGWTServiceAsync.Util.getInstance());
+ }
+
+ public static EventGWTServiceAsync getEventService() {
+ return secure(EventGWTServiceAsync.Util.getInstance());
+ }
+
+
+
private static <T> T secure(Object sdt) {
if (!(sdt instanceof ServiceDefTarget))
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
index 5a9ae94..48776a3 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/MeasurementDataGWTService.java
@@ -19,9 +19,13 @@
package org.rhq.enterprise.gui.coregui.client.gwt;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.criteria.MeasurementDefinitionCriteria;
+import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementData;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
+import org.rhq.core.domain.measurement.MeasurementDefinition;
+import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.calltime.CallTimeDataComposite;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.domain.util.PageControl;
@@ -49,4 +53,10 @@ public interface MeasurementDataGWTService extends RemoteService {
PageList<CallTimeDataComposite> findCallTimeDataForResource(int scheduleId, long start, long end, PageControl pageControl);
+
+
+ public PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(MeasurementDefinitionCriteria criteria);
+
+ public PageList<MeasurementSchedule> findMeasurementSchedulesByCriteria(MeasurementScheduleCriteria criteria);
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
index 97b5a3e..acc4198 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
+++ b/modules/enterprise/gui/coregui/src/main/webapp/WEB-INF/web.xml
@@ -92,6 +92,14 @@
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI ContentGWTService</servlet-name>
<servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.ContentGWTServiceImpl</servlet-class>
</servlet>
+ <servlet>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI DashboardGWTService</servlet-name>
+ <servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.DashboardGWTServiceImpl</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI EventGWTService</servlet-name>
+ <servlet-class>org.rhq.enterprise.gui.coregui.server.gwt.EventGWTServiceImpl</servlet-class>
+ </servlet>
<servlet-mapping>
@@ -182,4 +190,12 @@
<servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI SearchGWTService</servlet-name>
<url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/SearchGWTService</url-pattern>
</servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI DashboardGWTService</servlet-name>
+ <url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/DashboardGWTService</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>org.rhq.enterprise.gui.coregui.CoreGUI EventGWTService</servlet-name>
+ <url-pattern>/org.rhq.enterprise.gui.coregui.CoreGUI/EventGWTService</url-pattern>
+ </servlet-mapping>
</web-app>
commit c7555e033462802c402dad30bbb90ca506fa6ba9
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 10:42:16 2010 -0400
Dashboard access
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerBean.java
new file mode 100644
index 0000000..db4c6b6
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerBean.java
@@ -0,0 +1,100 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.dashboard;
+
+import java.util.List;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.authz.Permission;
+import org.rhq.core.domain.dashboard.Dashboard;
+import org.rhq.enterprise.server.RHQConstants;
+import org.rhq.enterprise.server.auth.SubjectManagerBean;
+import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
+import org.rhq.enterprise.server.authz.PermissionException;
+
+/**
+ *
+ * @author Greg Hinkle
+ */
+@Stateless
+public class DashboardManagerBean implements DashboardManagerLocal, DashboardManagerRemote{
+
+ @SuppressWarnings("unused")
+ private final Log log = LogFactory.getLog(SubjectManagerBean.class);
+
+ @PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME)
+ private EntityManager entityManager;
+
+ @EJB
+ private AuthorizationManagerLocal authorizationManager;
+
+
+ public List<Dashboard> findDashboardsForSubject(Subject subject) {
+ Query query = entityManager.createQuery("SELECT d FROM Dashboard d WHERE d.owner.id = :subjectId");
+
+ query.setParameter("subjectId", subject.getId());
+
+ return query.getResultList();
+
+ }
+
+ public List<Dashboard> findSharedDashboards(Subject subject) {
+ Query query = entityManager.createQuery("SELECT d FROM Dashboard d WHERE d.shared = true");
+
+ return query.getResultList();
+ }
+
+ public Dashboard storeDashboard(Subject subject, Dashboard dashboard) {
+ Dashboard d = null;
+ if ((d = entityManager.find(Dashboard.class, dashboard.getId())) == null) {
+ dashboard.setOwner(subject);
+ entityManager.persist(dashboard);
+ return dashboard;
+ } else {
+ if (!authorizationManager.hasGlobalPermission(subject, Permission.MANAGE_SETTINGS) && d.getOwner().getId() != subject.getId()) {
+ throw new PermissionException("You may only alter dashboards you own.");
+ }
+ return entityManager.merge(dashboard);
+ }
+ }
+
+ public void removeDashboard(Subject subject, int dashboardId) {
+
+ Dashboard toDelete = entityManager.find(Dashboard.class,dashboardId);
+
+ if (!authorizationManager.hasGlobalPermission(subject, Permission.MANAGE_SETTINGS) && toDelete.getOwner().getId() != subject.getId()) {
+ throw new PermissionException("You may only delete dashboards you own.");
+ }
+
+ entityManager.remove(toDelete);
+ }
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerLocal.java
new file mode 100644
index 0000000..c915e5b
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerLocal.java
@@ -0,0 +1,33 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.dashboard;
+
+import javax.ejb.Local;
+
+/**
+ * @author Greg Hinkle
+ */
+@Local
+public interface DashboardManagerLocal extends DashboardManagerRemote {
+
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
new file mode 100644
index 0000000..c51a9a5
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/dashboard/DashboardManagerRemote.java
@@ -0,0 +1,50 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.dashboard;
+
+import java.util.List;
+import java.util.Set;
+
+import javax.ejb.Remote;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.dashboard.Dashboard;
+
+/**
+ * @author Greg Hinkle
+ */
+@Remote
+public interface DashboardManagerRemote {
+
+
+ public List<Dashboard> findDashboardsForSubject(Subject subject);
+
+ public List<Dashboard> findSharedDashboards(Subject subject);
+
+ public Dashboard storeDashboard(Subject subject, Dashboard dashboard);
+
+ public void removeDashboard(Subject subject, int dashboardId);
+
+
+
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
index 9367bdc..f75b7e2 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/LookupUtil.java
@@ -101,6 +101,8 @@ import org.rhq.enterprise.server.core.CoreServerMBean;
import org.rhq.enterprise.server.core.EmailManagerBean;
import org.rhq.enterprise.server.core.EmailManagerLocal;
import org.rhq.enterprise.server.core.plugin.PluginDeploymentScannerMBean;
+import org.rhq.enterprise.server.dashboard.DashboardManagerBean;
+import org.rhq.enterprise.server.dashboard.DashboardManagerLocal;
import org.rhq.enterprise.server.discovery.DiscoveryBossBean;
import org.rhq.enterprise.server.discovery.DiscoveryBossLocal;
import org.rhq.enterprise.server.entitlement.EntitlementManagerBean;
@@ -572,6 +574,9 @@ public final class LookupUtil {
return lookupLocal(TagManagerBean.class);
}
+ public static DashboardManagerLocal getDashboardManagerLocal() {
+ return lookupLocal(DashboardManagerBean.class);
+ }
public static CoreServerMBean getCoreServer() {
@@ -595,6 +600,7 @@ public final class LookupUtil {
return service;
}
+
//--------------------------------------------
// The TEST services
//--------------------------------------------
commit 5d48df59d9eac105562bfff4757f4c0f8e8faa9d
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Fri Jun 18 10:41:45 2010 -0400
Core dashboard storage, schema install and domain classes
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..2013b3d 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -22,7 +22,7 @@
<properties>
<scm.module.path>modules/core/dbutils/</scm.module.path>
- <db.schema.version>2.87</db.schema.version>
+ <db.schema.version>2.88</db.schema.version>
</properties>
<dependencies>
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup-build.xml b/modules/core/dbutils/src/main/scripts/dbsetup-build.xml
index 11655fb..f4993e5 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup-build.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup-build.xml
@@ -39,7 +39,7 @@ To run the default target, you must set one of the following properties to true:
<property name="dbsetup.scripts.dir" value="${basedir}/src/main/scripts/dbsetup" />
<property name="dbsetup.output.dir" value="${basedir}/target/dbsetup" /> <!-- away from classes so it doesn't go into the jar -->
<!-- define the setup creation processing order. note, removals are done in the reverse order -->
- <property name="dbsetup.subsystems" value="config,cluster,inventory,auth,authz,search,operation,event,alert,sysconfig,scheduler,amps,measurement,content,resource-request,jms,obsolete"/>
+ <property name="dbsetup.subsystems" value="config,cluster,inventory,auth,authz,search,dashboard,operation,event,alert,sysconfig,scheduler,amps,measurement,content,resource-request,jms,obsolete"/>
<property name="dbsetup.combined.schema" value="${dbsetup.output.dir}/all-schema.xml" />
<property name="dbsetup.combined.data" value="${dbsetup.output.dir}/all-data.xml" />
<property name="dbsetup.tstamp.file" value="${dbsetup.output.dir}/dbsetup-combine.tstamp" />
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/dashboard-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/dashboard-schema.xml
new file mode 100644
index 0000000..48c95a5
--- /dev/null
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/dashboard-schema.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<dbsetup name="amps-schema.xml"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-dbsetup-schema">
+
+
+ <table name="RHQ_DASHBOARD">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" type="VARCHAR2" size="200" required="true"/>
+ <column name="SUBJECT_ID" type="INTEGER" required="true"/>
+ <column name="SHARED" type="BOOLEAN" required="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ </table>
+
+
+ <table name="RHQ_DASHBOARD_PORTLET">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" type="VARCHAR2" size="200" required="true"/>
+ <column name="PORTLET_KEY" type="VARCHAR2" size="200" required="true"/>
+ <column name="COL" type="INTEGER" required="true"/>
+ <column name="COL_INDEX" type="INTEGER" required="true"/>
+ <column name="HEIGHT" type="INTEGER" required="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ <column name="DASHBOARD_ID" type="INTEGER" required="false" references="RHQ_DASHBOARD"/>
+ </table>
+
+</dbsetup>
\ No newline at end of file
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 4ba557b..b650283 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2984,7 +2984,77 @@
</statement>
</schema-directSQL>
</schemaSpec>
-
+
+ <schemaSpec version="2.88">
+
+ <!-- the customizable dashboard storage system -->
+
+ <schema-createSequence name="RHQ_DASHBOARD_ID_SEQ" initial="10001"/>
+ <schema-directSQL>
+ <statement desc="Creating table RHQ_DASHBOARD">
+ CREATE TABLE RHQ_DASHBOARD ( ID INTEGER PRIMARY KEY )
+ </statement>
+ </schema-directSQL>
+ <schema-alterColumn table="RHQ_DASHBOARD" column="ID" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="NAME" columnType="VARCHAR2" precision="200"/>
+ <schema-alterColumn table="RHQ_DASHBOARD" column="NAME" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="SUBJECT_ID" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="SHARED" columnType="BOOLEAN"/>
+ <schema-alterColumn table="RHQ_DASHBOARD" column="SHARED" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD" column="CONFIGURATION_ID" columnType="INTEGER"/>
+ <schema-directSQL>
+ <statement>
+ ALTER TABLE RHQ_DASHBOARD
+ ADD CONSTRAINT RHQ_DASH_CFG_ID_FK
+ FOREIGN KEY ( CONFIGURATION_ID )
+ REFERENCES RHQ_CONFIG ( ID )
+ </statement>
+ </schema-directSQL>
+
+
+ <schema-createSequence name="RHQ_DASHBOARD_PORTLET_ID_SEQ" initial="10001"/>
+ <schema-directSQL>
+ <statement desc="Creating table RHQ_DASHBOARD_PORTLET">
+ CREATE TABLE RHQ_DASHBOARD_PORTLET ( ID INTEGER PRIMARY KEY )
+ </statement>
+ </schema-directSQL>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="ID" nullable="FALSE"/>
+
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="NAME" columnType="VARCHAR2" precision="200"/>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="NAME" nullable="FALSE"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="PORTLET_KEY" columnType="VARCHAR2"
+ precision="200"/>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="PORTLET_KEY" nullable="FALSE"/>
+
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="COL" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="COL_INDEX" columnType="INTEGER"/>
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="HEIGHT" columnType="INTEGER"/>
+
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="CONFIGURATION_ID" columnType="INTEGER"/>
+ <schema-directSQL>
+ <statement>
+ ALTER TABLE RHQ_DASHBOARD_PORTLET
+ ADD CONSTRAINT RHQ_DASH_PT_CFG_ID_FK
+ FOREIGN KEY ( CONFIGURATION_ID )
+ REFERENCES RHQ_CONFIG ( ID )
+ </statement>
+ </schema-directSQL>
+
+
+ <schema-addColumn table="RHQ_DASHBOARD_PORTLET" column="DASHBOARD_ID" columnType="INTEGER"/>
+ <schema-alterColumn table="RHQ_DASHBOARD_PORTLET" column="DASHBOARD_ID" nullable="FALSE"/>
+ <schema-directSQL>
+ <statement>
+ ALTER TABLE RHQ_DASHBOARD_PORTLET
+ ADD CONSTRAINT RHQ_DASH_PT_DASH_ID_FK
+ FOREIGN KEY ( DASHBOARD_ID )
+ REFERENCES RHQ_DASHBOARD ( ID )
+ </statement>
+ </schema-directSQL>
+
+ </schemaSpec>
+
+
</dbupgrade>
</target>
</project>
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
new file mode 100644
index 0000000..6e99c4b
--- /dev/null
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/Dashboard.java
@@ -0,0 +1,215 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2009 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.core.domain.dashboard;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.hibernate.annotations.Cascade;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+
+/**
+ * @author Greg Hinkle
+ */
+@Entity
+@SequenceGenerator(name = "RHQ_DASHBOARD_ID_SEQ", sequenceName = "RHQ_DASHBOARD_ID_SEQ")
+@Table(name = "RHQ_DASHBOARD")
+(a)XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement
+public class Dashboard implements Serializable {
+
+ @Column(name = "ID", nullable = false)
+ @GeneratedValue(strategy = GenerationType.AUTO, generator = "RHQ_DASHBOARD_ID_SEQ")
+ @Id
+ private int id;
+
+ @Column(name = "NAME", nullable = false)
+ private String name;
+
+
+ @Column(name = "SHARED", nullable = false)
+ private boolean shared = false;
+
+
+ @JoinColumn(name = "CONFIGURATION_ID", referencedColumnName = "ID")
+ @OneToOne(cascade = { CascadeType.ALL })
+ private Configuration configuration = new Configuration();
+
+
+
+ @JoinColumn(name = "SUBJECT_ID", nullable = false)
+ @ManyToOne(fetch = FetchType.LAZY)
+ private Subject owner;
+
+
+ @OneToMany(mappedBy = "dashboard", fetch = FetchType.EAGER)
+ @Cascade( { org.hibernate.annotations.CascadeType.PERSIST, org.hibernate.annotations.CascadeType.MERGE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
+ private Set<DashboardPortlet> portlets = new HashSet<DashboardPortlet>();
+
+
+
+
+ public static final String CFG_COLUMNS = "columns";
+ public static final String CFG_WIDTHS = "widths";
+ public static final String CFG_BACKGROUND = "background";
+ public static final String CFG_REFRESH_RATE = "refresh";
+
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isShared() {
+ return shared;
+ }
+
+ public void setShared(boolean shared) {
+ this.shared = shared;
+ }
+
+ public Subject getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Subject owner) {
+ this.owner = owner;
+ }
+
+ public int getColumns() {
+ return configuration.getSimple(CFG_COLUMNS).getIntegerValue();
+ }
+
+ public void setColumns(int columns) {
+ configuration.put(new PropertySimple(CFG_COLUMNS, columns));
+ }
+
+ public String[] getColumnWidths() {
+ return configuration.getSimple(CFG_WIDTHS).getStringValue().split(",");
+ }
+
+ public void setColumnWidths(String... columnWidths) {
+ configuration.put(new PropertySimple(CFG_WIDTHS, columnWidths));
+ }
+
+ public Configuration getConfiguration() {
+ return configuration;
+ }
+
+ public void setConfiguration(Configuration configuration) {
+ this.configuration = configuration;
+ }
+
+ public Set<DashboardPortlet> getPortlets() {
+ return portlets;
+ }
+
+ public List<DashboardPortlet> getPortlets(int column) {
+
+ List<DashboardPortlet> columnPortlets = new ArrayList<DashboardPortlet>();
+ for (DashboardPortlet p : this.portlets) {
+ if (p.getColumn() == column) {
+ columnPortlets.add(p);
+ }
+ }
+
+ Collections.sort(columnPortlets, new Comparator<DashboardPortlet>() {
+ public int compare(DashboardPortlet o1, DashboardPortlet o2) {
+ return (o1.getIndex() < o2.getIndex() ? -1 : (o1.getIndex() == o2.getIndex() ? 0 : 1));
+ }
+ });
+
+ return columnPortlets;
+ }
+
+
+
+ public boolean removePortlet(DashboardPortlet storedPortlet) {
+ return portlets.remove(storedPortlet);
+ }
+
+ public void addPortlet(DashboardPortlet storedPortlet, int column, int index) {
+ storedPortlet.setColumn(column);
+ storedPortlet.setIndex(index);
+ storedPortlet.setDashboard(this);
+ portlets.add(storedPortlet);
+ }
+
+ public Dashboard deepCoopy(boolean keepIds) {
+
+ Dashboard newDashboard = new Dashboard();
+ if (keepIds) {
+ newDashboard.id = this.id;
+ }
+ newDashboard.name = this.name;
+ newDashboard.owner = this.owner;
+ newDashboard.shared = this.shared;
+ newDashboard.configuration = this.configuration.deepCopy(keepIds);
+
+ for (DashboardPortlet portlet : portlets) {
+ DashboardPortlet newPortlet = portlet.deepCopy(keepIds);
+ newPortlet.setDashboard(this);
+ newDashboard.addPortlet(newPortlet, newPortlet.getColumn(), newPortlet.getIndex());
+ }
+ return newDashboard;
+ }
+
+}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/DashboardPortlet.java b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/DashboardPortlet.java
new file mode 100644
index 0000000..38b455a
--- /dev/null
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/dashboard/DashboardPortlet.java
@@ -0,0 +1,170 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2009 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.core.domain.dashboard;
+
+import java.io.Serializable;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.rhq.core.domain.configuration.Configuration;
+
+/**
+ * @author Greg Hinkle
+ */
+@Entity
+@SequenceGenerator(name = "RHQ_DASHBOARD_PORTLET_ID_SEQ", sequenceName = "RHQ_DASHBOARD_PORTLET_ID_SEQ")
+@Table(name = "RHQ_DASHBOARD_PORTLET")
+(a)XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement
+public class DashboardPortlet implements Serializable {
+
+
+ @Column(name = "ID", nullable = false)
+ @GeneratedValue(strategy = GenerationType.AUTO, generator = "RHQ_DASHBOARD_PORTLET_ID_SEQ")
+ @Id
+ private int id;
+
+ @Column(name = "PORTLET_KEY")
+ private String portletKey;
+
+ @Column(name = "NAME")
+ private String name;
+
+ @Column(name = "COL")
+ private int column;
+
+ @Column(name = "COL_INDEX")
+ private int index;
+
+ @Column(name = "HEIGHT")
+ private int height = 300;
+
+ @JoinColumn(name = "CONFIGURATION_ID", referencedColumnName = "ID")
+ @OneToOne(cascade = { CascadeType.ALL })
+ private Configuration configuration = new Configuration();
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "DASHBOARD_ID", nullable = false)
+ private Dashboard dashboard;
+
+
+ public DashboardPortlet() {
+ }
+
+ public DashboardPortlet(String name, String portletKey, int height) {
+ this.name = name;
+ this.portletKey = portletKey;
+ this.height = height;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getPortletKey() {
+ return portletKey;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getColumn() {
+ return column;
+ }
+
+ public int getIndex() {
+ return index;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setPortletKey(String portletKey) {
+ this.portletKey = portletKey;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setColumn(int column) {
+ this.column = column;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public Dashboard getDashboard() {
+ return dashboard;
+ }
+
+ public void setDashboard(Dashboard dashboard) {
+ this.dashboard = dashboard;
+ }
+
+ public Configuration getConfiguration() {
+ return configuration;
+ }
+
+ public void setConfiguration(Configuration configuration) {
+ this.configuration = configuration;
+ }
+
+ public DashboardPortlet deepCopy(boolean keepIds) {
+ DashboardPortlet newPortlet = new DashboardPortlet();
+ if (keepIds) {
+ newPortlet.id = this.id;
+ }
+ newPortlet.name = this.name;
+ newPortlet.portletKey = this.portletKey;
+ newPortlet.column = this.column;
+ newPortlet.index = this.index;
+ newPortlet.height = this.height;
+ newPortlet.configuration = this.configuration != null ? this.configuration.deepCopy(keepIds) : null;
+ return newPortlet;
+ }
+}
commit 4c7ae18338ac6852f9b3f977814ee148c5eb9465
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Fri Jun 18 14:53:33 2010 +0200
BZ 604577 - don't fail on PG 9
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/DatabaseTypeFactory.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/DatabaseTypeFactory.java
index 2d8c79e..896b396 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/DatabaseTypeFactory.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/DatabaseTypeFactory.java
@@ -146,6 +146,8 @@ public class DatabaseTypeFactory {
if (db_name.indexOf("postgresql") != -1) {
if (db_version.startsWith("7.")) {
database_type_class = Postgresql7DatabaseType.class;
+ } else if (db_version.startsWith("9.0")) {
+ database_type_class = Postgresql90DatabaseType.class;
} else if (db_version.startsWith("8.4")) {
database_type_class = Postgresql84DatabaseType.class;
} else if (db_version.startsWith("8.3")) {
@@ -190,18 +192,18 @@ public class DatabaseTypeFactory {
return database_type_class.newInstance();
}
- /**
+ /**
* This is the getter of a get/set convenience mechanism for storing and retrieving the active database type.
* Not a true singleton but typically the value will not change as the underlying db is typically
* not going to change at runtime.
- *
- * @return The current DatabaseType or null if not yet set.
+ *
+ * @return The current DatabaseType or null if not yet set.
*/
public static DatabaseType getDefaultDatabaseType() {
return DatabaseTypeFactory.defaultDatabaseType;
}
- /**
+ /**
* This is the setter of a get/set convenience mechanism for storing and retrieving the active database type.
* Typically called one time when the dbType is established. Not a true singleton but typically the value will
* not change as the underlying db is typically not going to change.
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql90DatabaseType.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql90DatabaseType.java
new file mode 100644
index 0000000..fe8085d
--- /dev/null
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql90DatabaseType.java
@@ -0,0 +1,44 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.core.db;
+
+/**
+ * Postgres 9.0 database which extends the Postgres 8.4 database.
+ * It is important to extend 8.3+ and not any previous version as the
+ * code will enable async commit in some place for instanceof 8.3
+ *
+ * @author Heiko W. Rupp
+ */
+public class Postgresql90DatabaseType extends Postgresql83DatabaseType {
+ /**
+ * @see DatabaseType#getName()
+ */
+ @Override
+ public String getName() {
+ return PostgresqlDatabaseType.VENDOR_NAME + "9.0";
+ }
+
+ /**
+ * @see DatabaseType#getVersion()
+ */
+ @Override
+ public String getVersion() {
+ return "9.0";
+ }
+}
\ No newline at end of file
commit 38474143b77cce6ac141cc62407fc8845834bec3
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 18 06:24:50 2010 -0400
BZ-586503: fix for listing MeasurementDisplaySummaries for (auto)groups w/1000+ members
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
index 410ec87..06296bd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementChartsManagerBean.java
@@ -19,7 +19,6 @@
package org.rhq.enterprise.server.measurement;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -38,6 +37,7 @@ import org.apache.commons.logging.LogFactory;
import org.jboss.annotation.IgnoreDependency;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
@@ -49,7 +49,6 @@ import org.rhq.core.domain.measurement.NumericType;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import org.rhq.core.util.collection.ArrayUtils;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.alert.AlertManagerLocal;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
@@ -103,15 +102,9 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
public List<MetricDisplaySummary> getMetricDisplaySummariesForAutoGroup(Subject subject,
int autoGroupParentResourceId, int autoGroupChildResourceTypeId, int[] measurementDefinitionIds, long begin,
long end, boolean enabledOnly) throws MeasurementException {
- List<Resource> resources = resourceGroupManager.findResourcesForAutoGroup(subject, autoGroupParentResourceId,
- autoGroupChildResourceTypeId);
- int[] resourceIds = new int[resources.size()];
- for (int i = 0; i < resourceIds.length; i++) {
- resourceIds[i] = resources.get(i).getId();
- }
- List<MetricDisplaySummary> ret = getAggregateMetricDisplaySummaries(subject, resourceIds,
- measurementDefinitionIds, begin, end, enabledOnly);
+ List<MetricDisplaySummary> ret = getAggregateMetricDisplaySummaries(subject, EntityContext.forAutoGroup(
+ autoGroupParentResourceId, autoGroupChildResourceTypeId), measurementDefinitionIds, begin, end, enabledOnly);
for (MetricDisplaySummary tmp : ret) {
tmp.setParentId(autoGroupParentResourceId);
tmp.setChildTypeId(autoGroupChildResourceTypeId);
@@ -122,10 +115,9 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
public List<MetricDisplaySummary> getMetricDisplaySummariesForCompatibleGroup(Subject subject, int groupId,
int[] measurementDefinitionIds, long begin, long end, boolean enabledOnly) throws MeasurementException {
- List<Integer> resourceIds = resourceManager.findExplicitResourceIdsByResourceGroup(groupId);
- List<MetricDisplaySummary> ret = getAggregateMetricDisplaySummaries(subject, ArrayUtils
- .unwrapCollection(resourceIds), measurementDefinitionIds, begin, end, enabledOnly);
+ List<MetricDisplaySummary> ret = getAggregateMetricDisplaySummaries(subject, EntityContext.forGroup(groupId),
+ measurementDefinitionIds, begin, end, enabledOnly);
for (MetricDisplaySummary tmp : ret) {
tmp.setGroupId(groupId);
}
@@ -426,54 +418,48 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
return summary;
}
- /**
- * Get the group display summaries for the passed resources that belong to a (auto)group
- *
- * @param subject
- * @param resourceIds
- * @param measurementDefinitionIds
- * @param begin
- * @param end
- * @param enabledOnly do we want to restrict this to enabled metrics?
- *
- * @return
- *
- * @throws MeasurementException
- */
- private List<MetricDisplaySummary> getAggregateMetricDisplaySummaries(Subject subject, int[] resourceIds,
+ private List<MetricDisplaySummary> getAggregateMetricDisplaySummaries(Subject subject, EntityContext context,
int[] measurementDefinitionIds, long begin, long end, boolean enabledOnly) throws MeasurementException {
List<MetricDisplaySummary> data = new ArrayList<MetricDisplaySummary>(measurementDefinitionIds.length);
- // nothing to do, as we have no resources in that group
- if (resourceIds == null || resourceIds.length == 0) {
- return data;
- }
if (measurementDefinitionIds.length == 0) {
return data;
}
- if (!authorizationManager.canViewResources(subject, ArrayUtils.wrapInList(resourceIds))) {
- throw new PermissionException("User[" + subject.getName() + "] does not have permission to view metric " +
- "schedules for resource ids, " + ArrayUtils.wrapInList(resourceIds));
+ if (context.category == EntityContext.Category.Resource) {
+ if (authorizationManager.canViewResource(subject, context.resourceId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view metric display summaries for resource[id="
+ + context.resourceId + "]");
+ }
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ if (authorizationManager.canViewGroup(subject, context.groupId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view metric display summaries for resourceGroup[id="
+ + context.groupId + "]");
+ }
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ if (authorizationManager.canViewAutoGroup(subject, context.parentResourceId, context.resourceTypeId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view metric display summaries for autoGroup[parentResourceId="
+ + context.parentResourceId + ", resourceTypeId=" + context.resourceTypeId + "]");
+ }
}
MeasurementDataManagerUtility dataUtil = MeasurementDataManagerUtility.getInstance(rhqDs);
// Loop over the definitions, find matching schedules and create a MetricDisplaySummary for each definition
for (int definitionId : measurementDefinitionIds) {
- int collecting = 0;
- List<MeasurementSchedule> schedules = scheduleManager.findSchedulesByResourceIdsAndDefinitionIds(resourceIds,
- new int[] {definitionId});
- int[] scheduleIds = new int[schedules.size()];
- for (int i = 0; i < schedules.size(); i++) {
- MeasurementSchedule schedule = schedules.get(i);
- if (schedule.isEnabled()) {
- collecting++;
- }
- scheduleIds[i] = schedule.getId();
- }
+ MeasurementScheduleCriteria criteria = new MeasurementScheduleCriteria();
+ PageList<MeasurementSchedule> theSchedules = scheduleManager.findSchedulesByCriteria(subject, criteria);
+ int totalScheduleCount = theSchedules.getTotalSize();
+
+ criteria.addFilterEnabled(true);
+ criteria.setPageControl(PageControl.getSingleRowInstance()); // get single row only, we want totalSize
+ theSchedules = scheduleManager.findSchedulesByCriteria(subject, criteria);
+ int collecting = theSchedules.getTotalSize();
/*
* If no metric is collecting, stop here as we have nothing to contribute
@@ -494,8 +480,7 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
summary.setDefinitionId(definitionId);
summary.setBeginTimeFrame(begin);
- summary.setAlertCount(alertManager.getAlertCountByMeasurementDefinitionAndResources(definitionId,
- resourceIds, begin, end));
+ summary.setAlertCount(getAlertCountForContext(definitionId, context, begin, end));
summary.setEndTimeFrame(end);
MeasurementDefinition definition = entityManager.find(MeasurementDefinition.class, definitionId);
@@ -511,18 +496,17 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
* of the group), skip over this metric.
*/
MeasurementAggregate aggregate;
- if (scheduleIds.length == 0) {
+ if (totalScheduleCount == 0) {
aggregate = new MeasurementAggregate(null, null, null);
- log.warn("No metric schedules found for def=[" + definition + "] and resources [" +
- Arrays.toString(resourceIds)
- + "], using empty aggregate");
+ log.warn("No metric schedules found for def=[" + definition + "] and " + context
+ + ", using empty aggregate");
} else {
- aggregate = dataUtil.getAggregateByScheduleIds(begin, end, scheduleIds);
+ aggregate = dataUtil.getAggregateByContext(begin, end, context);
}
if (aggregate.isEmpty()) {
if (log.isTraceEnabled()) {
- log.trace("There was no measurement data available for schedules " + Arrays.toString(scheduleIds)
- + " in the timeframe [" + new Date(begin) + ", " + new Date(end) + "]");
+ log.warn("No metric data found for def=[" + definition + "] and " + context + " in the timeframe ["
+ + new Date(begin) + ", " + new Date(end) + "]");
}
summary.setValuesPresent(false);
@@ -630,4 +614,18 @@ public class MeasurementChartsManagerBean implements MeasurementChartsManagerLoc
return isCollecting;
}
+ private int getAlertCountForContext(int measurementDefinitionId, EntityContext context, long begin, long end) {
+ if (context.category == EntityContext.Category.AutoGroup) {
+ return alertManager.getAlertCountByMeasurementDefinitionAndAutoGroup(measurementDefinitionId, context
+ .getParentResourceId(), context.getResourceTypeId(), begin, end);
+ } else if (context.category == EntityContext.Category.Resource) {
+ return alertManager.getAlertCountByMeasurementDefinitionAndResource(measurementDefinitionId, context
+ .getResourceId(), begin, end);
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ return alertManager.getAlertCountByMeasurementDefinitionAndResourceGroup(measurementDefinitionId, context
+ .getGroupId(), begin, end);
+ }
+ return 0;
+ }
+
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
index 7114e17..13603b6 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/MeasurementDataManagerUtility.java
@@ -44,6 +44,7 @@ import org.rhq.core.domain.measurement.MeasurementDataPK;
import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.enterprise.server.RHQConstants;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.MeasurementAggregate;
import org.rhq.enterprise.server.measurement.MeasurementNotFoundException;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -512,19 +513,48 @@ public class MeasurementDataManagerUtility {
return measurementAggregate;
}
- public MeasurementAggregate getAggregateByScheduleIds(long beginTime, long endTime, int[] scheduleIds)
+ public MeasurementAggregate getAggregateByContext(long beginTime, long endTime, EntityContext context)
throws MeasurementNotFoundException {
Connection myConnection = null;
PreparedStatement ps = null;
ResultSet rs = null;
String condition = null;
+ String scheduleSubQuery = null;
try {
- condition = " AND d.schedule_id IN ( " + JDBCUtil.generateInBinds(scheduleIds.length) + ")\n";
+ Object[] bindParams = null;
+ if (context.category == EntityContext.Category.Resource) {
+ scheduleSubQuery = "" //
+ + "SELECT innerSchedule.id \n" //
+ + " FROM rhq_measurement_sched innerSchedule \n" //
+ + " WHERE innerSchedule.resource_id = ? \n";
+ bindParams = new Object[] { context.getResourceId() };
+
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ scheduleSubQuery = "" //
+ + "SELECT innerSchedule.id \n" //
+ + " FROM rhq_measurement_sched innerSchedule \n" //
+ + " JOIN rhq_resource_group_res_exp_map groupMap \n" //
+ + " ON innerSchedule.resource_id = groupMap.resource_id \n" //
+ + " WHERE groupMap.resource_group_id = ? \n";
+ bindParams = new Object[] { context.getGroupId() };
+
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ scheduleSubQuery = "" //
+ + "SELECT innerSchedule.id \n" //
+ + " FROM rhq_measurement_sched innerSchedule \n" //
+ + " JOIN rhq_resource innerRes \n"//
+ + " ON innerSchedule.resource_id = innerRes.id \n"//
+ + " WHERE innerRes.parent_resource_id = ? \n"//
+ + " AND innerRes.resource_type_id = ? \n";
+ bindParams = new Object[] { context.getParentResourceId(), context.getResourceTypeId() };
+ }
+
+ condition = " AND d.schedule_id IN ( " + scheduleSubQuery + " )\n";
myConnection = getConnection();
- ps = getFullQuery(myConnection, beginTime, endTime, 1, "", condition, scheduleIds);
+ ps = getFullQuery(myConnection, beginTime, endTime, 1, "", condition, bindParams);
rs = ps.executeQuery();
if (rs.next()) {
@@ -711,11 +741,6 @@ public class MeasurementDataManagerUtility {
MeasurementAggregate ag = getInstance(c).getAggregateByScheduleId(start, now, 1);
System.out.println(ag);
- System.out.println("=============getAggregateByScheduleIds=================================================");
- c = DriverManager.getConnection(db, "jon", "jon");
- ag = getInstance(c).getAggregateByScheduleIds(start, now, new int[] { 1, 2, 3 });
- System.out.println(ag);
-
System.out
.println("=============getMeasurementDataForResource=================================================");
c = DriverManager.getConnection(db, "jon", "jon");
commit cc2ec975ffd0fe2e25765fff3668745061c63d30
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Jun 17 18:17:14 2010 -0400
turn off shell -x option and mvn debug output by default; they can be enabled by setting the RELEASE_DEBUG environment variable prior to executing the script
diff --git a/release.sh b/release.sh
index b919b2f..32bd549 100755
--- a/release.sh
+++ b/release.sh
@@ -1,4 +1,10 @@
-#!/bin/sh -x
+#!/bin/sh
+
+if [ -n "$RELEASE_DEBUG" ]; then
+ echo "Debug output is enabled."
+ set -x
+fi
+
# Constants
@@ -168,11 +174,11 @@ MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --batch-mode --errors -Penterprise,d
if [ "$RELEASE_TYPE" = "enterprise" ]; then
MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav -Djava5.home=$JAVA5_HOME/jre"
fi
-if [ -z "$RHQ_RELEASE_QUIET" ]; then
+if [ -n "$RELEASE_DEBUG" ]; then
MAVEN_ARGS="$MAVEN_ARGS --debug"
fi
-if [ -n "$RHQ_RELEASE_ADDITIONAL_MAVEN_ARGS" ]; then
- MAVEN_ARGS="$MAVEN_ARGS $RHQ_RELEASE_ADDITIONAL_MAVEN_ARGS"
+if [ -n "$RELEASE_ADDITIONAL_MAVEN_ARGS" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS $RELEASE_ADDITIONAL_MAVEN_ARGS"
fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
@@ -212,6 +218,7 @@ echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
echo "MAVEN_ARGS=$MAVEN_ARGS"
+echo "MAVEN_RELEASE_PERFORM_GOAL=$MAVEN_RELEASE_PERFORM_GOAL"
echo "============================= Program Versions ================================"
git --version
echo
@@ -374,7 +381,7 @@ echo
echo "Tagging succeeded!"
-# Checkout the tag and build and publish the Maven artifacts.
+# Checkout the tag and build it. If in production mode, publish the Maven artifacts.
echo "Checking out release tag $RELEASE_TAG..."
git checkout "$RELEASE_TAG"
commit 06984a0b9c5c52c6007b064e905ac300e0ee1182
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Jun 17 18:02:14 2010 -0400
fix typo in existing tag logic and improve the timing of when existing tags are deleted
diff --git a/release.sh b/release.sh
index b611493..b919b2f 100755
--- a/release.sh
+++ b/release.sh
@@ -311,27 +311,11 @@ if [ ! -d "$WORKING_DIR" ]; then
fi
-# See if the specified tag already exists remotely - if so:
-# - if we are in test mode, delete it.
-# or:
-# - if we are in production mode, abort.
-OUTPUT=`git ls-remote --tags origin "$RELEASE_TAG"`
-if [ -n "$OUTPUT" ]; then
- if [ "$MODE" = "test" ]; then
- echo "A remote tag named $RELEASE_TAG already exists - deleting it, since we are in test mode..."
- git push origin ":ref/tags/$RELEASE_TAG"
- [ "$?" -ne 0 ] && abort "Failed to delete remote tag ($RELEASE_TAG)."
- else
- abort "A remote tag named $RELEASE_TAG already exists. Aborting, since we are in production mode..."
- fi
-fi
+# If the specified tag already exists remotely and we're in production mode, then abort. If it exists and we're in test mode, then we'll delete it after we've had a successful dry run of release:prepare and are ready to tag.
-
-# See if the specified tag already exists locally - if so, delete it.
-if [ -n `git tag -l "$RELEASE_TAG"` ]; then
- echo "A local tag named $RELEASE_TAG already exists - deleting it..."
- git tag -d "$RELEASE_TAG"
- [ "$?" -ne 0 ] && abort "Failed to delete local tag ($RELEASE_TAG)."
+EXISTING_REMOTE_TAG=`git ls-remote --tags origin "$RELEASE_TAG"`
+if [ -n "$EXISTING_REMOTE_TAG" ] && [ "$MODE" = "production" ]; then
+ abort "A remote tag named $RELEASE_TAG already exists - aborting, since we are in production mode..."
fi
@@ -363,6 +347,24 @@ echo
echo "Tagging dry run succeeded!"
+# If there's an existing remote tag, and we didn't abort earlier, we must be in test mode, so we can safely delete it before we call mvn release:prepare to recreate it.
+
+if [ -n "$EXISTING_REMOTE_TAG" ]; then
+ echo "A remote tag named $RELEASE_TAG already exists - deleting it, since we are in test mode..."
+ git push origin ":refs/tags/$RELEASE_TAG"
+ [ "$?" -ne 0 ] && abort "Failed to delete remote tag ($RELEASE_TAG)."
+fi
+
+
+# See if the specified tag already exists locally - if so, delete it (even if in production mode).
+EXISTING_LOCAL_TAG=`git tag -l "$RELEASE_TAG"`
+if [ -n "$EXISTING_LOCAL_TAG" ]; then
+ echo "A local tag named $RELEASE_TAG already exists - deleting it..."
+ git tag -d "$RELEASE_TAG"
+ [ "$?" -ne 0 ] && abort "Failed to delete local tag ($RELEASE_TAG)."
+fi
+
+
# If the dry run succeeded, tag it for real.
echo "Tagging the release..."
commit fcef8c94f3291f53390373e5ac50035470a94470
Merge: e17471c... dbc3d54...
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 17 16:11:21 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit e17471c726d8e179bfb0a2016fb680d1ff8e59e2
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 17 16:09:54 2010 -0400
[BZ 580153] Removing reference to non-remote api in javadocs
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
index 9d871d1..33de24d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/AvailabilityManagerRemote.java
@@ -56,9 +56,6 @@ public interface AvailabilityManagerRemote {
/**
* Gets the last known Availability for the given resource - which includes whether it is currently up (i.e.
* available) or down and the last time it was known to have changed to that state.
- * <b>Note:</b> only use this method if you really need to know the additional RLE information that
- * comes with the Availabilty entity. If you really only need to know whether a resource is UP or DOWN,
- * then use the more efficient method {@link #getCurrentAvailabilityTypeForResource(Subject, int)}.
*
* @param subject
* @param resourceId
commit dbc3d5407ae7255dcfa7c86ff249325766dbf122
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 17 15:23:11 2010 -0400
remove the duplicate call to deploy(), should not be calling this twice
diff --git a/modules/common/ant-bundle/src/main/java/org/rhq/bundle/ant/type/DeploymentUnitType.java b/modules/common/ant-bundle/src/main/java/org/rhq/bundle/ant/type/DeploymentUnitType.java
index 3feeb41..dda489c 100644
--- a/modules/common/ant-bundle/src/main/java/org/rhq/bundle/ant/type/DeploymentUnitType.java
+++ b/modules/common/ant-bundle/src/main/java/org/rhq/bundle/ant/type/DeploymentUnitType.java
@@ -98,7 +98,6 @@ public class DeploymentUnitType extends AbstractBundleType {
} else {
deployer.deploy(diffs, clean, dryRun);
}
- deployer.deploy(diffs);
getProject().log("Results:\n" + diffs + "\n");
} catch (Exception e) {
throw new BuildException("Failed to deploy bundle '" + getProject().getBundleName() + "' version "
commit a611c28ddb8cb065d25848836c4126be9bd79b44
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 14:45:02 2010 -0400
add "RECALCULATE SELECTED" button to the group definition list page
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/ListGroupDefinitionsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/ListGroupDefinitionsUIBean.java
index 522d160..6c43bf3 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/ListGroupDefinitionsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/definition/group/ListGroupDefinitionsUIBean.java
@@ -86,7 +86,28 @@ public class ListGroupDefinitionsUIBean extends PagedDataTableUIBean {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Deleted selected group definitions.");
} catch (Exception e) {
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to delete group definitions.", e);
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to delete selected group definitions.",
+ e);
+ return OUTCOME_FAILURE;
+ }
+
+ return OUTCOME_SUCCESS;
+ }
+
+ public String recalculateSelectedGroupDefinitions() {
+ String[] selectedGroupDefinitions = getSelectedGroupDefinitions();
+ Integer[] groupDefinitionIds = getIntegerArray(selectedGroupDefinitions);
+ Subject subject = EnterpriseFacesContextUtility.getSubject();
+
+ try {
+ for (Integer groupDefinitionId : groupDefinitionIds) {
+ groupDefinitionManager.calculateGroupMembership(subject, groupDefinitionId);
+ }
+
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Recalculated selected group definitions.");
+ } catch (Exception e) {
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
+ "Failed to recalculate selected group definitions.", e);
return OUTCOME_FAILURE;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/list.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/list.xhtml
index 61f9d89..1c7f3a1 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/list.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/definition/group/list.xhtml
@@ -132,6 +132,10 @@
target="selectedGroupDefinitions"
value="DELETE SELECTED" styleClass="on-pager-button buttonsmall"
rendered="${GlobalPermissionsUIBean.inventory}"/>
+ <onc:selectCommandButton action="#{ListGroupDefinitionsUIBean.recalculateSelectedGroupDefinitions}"
+ target="selectedGroupDefinitions"
+ value="RECALCULATE SELECTED" styleClass="on-pager-button buttonsmall"
+ rendered="${GlobalPermissionsUIBean.inventory}"/>
<ui:param name="paginationDataTableName" value="groupDefinitionsDataTable"/>
<ui:param name="paginationDataModel" value="#{groupDefinitionsDataModel}"/>
commit cfcd45c6bbc710707c6ee7466a616752a9948834
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 17 14:42:56 2010 -0400
release.sh now can run in one of two modes - 'test' or 'production'; in test mode, if the specified tag already exists it will be overwritten, and mvn install will be run after checking out the release tag; in production mode, if the tag already exists the script will abort, and mvn deploy will be run after checking out the release tag; temporarily comment out the purging of the local repo
diff --git a/release.sh b/release.sh
index 10e9362..b611493 100755
--- a/release.sh
+++ b/release.sh
@@ -22,7 +22,7 @@ abort()
usage()
{
- abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USERNAME install|deploy" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips deploy"
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USERNAME test|production" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips test"
}
@@ -34,13 +34,16 @@ if [ "$#" -ne 6 ]; then
fi
RELEASE_TYPE="$1"
if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; then
- usage "Invalid release type: $RELEASE_TYPE"
+ usage "Invalid release type: $RELEASE_TYPE (valid release types are 'community' or 'enterprise')"
fi
RELEASE_VERSION="$2"
DEVELOPMENT_VERSION="$3"
RELEASE_BRANCH="$4"
GIT_USERNAME="$5"
-MAVEN_RELEASE_PERFORM_GOAL="$6"
+MODE="$6"
+if [ "$MODE" != "test" ] && [ "$MODE" != "production" ]; then
+ usage "Invalid mode: $MODE (valid modes are 'test' or 'production')"
+fi
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
@@ -140,6 +143,12 @@ if echo $GIT_VERSION | grep -v "^1.[67]"; then
fi
+# Set various environment variables.
+
+MAVEN_OPTS="-Xms512M -Xmx1024M -XX:PermSize=128M -XX:MaxPermSize=256M"
+export MAVEN_OPTS
+
+
# Set various local variables.
if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
@@ -168,7 +177,13 @@ fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
-# TODO: Set MAVEN_OPTS environment variable.
+
+if [ "$MODE" = "production" ]; then
+ MAVEN_RELEASE_PERFORM_GOAL="deploy"
+else
+ MAVEN_RELEASE_PERFORM_GOAL="install"
+fi
+
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
@@ -192,6 +207,7 @@ echo "RELEASE_VERSION=$RELEASE_VERSION"
echo "DEVELOPMENT_VERSION=$DEVELOPMENT_VERSION"
echo "RELEASE_BRANCH=$RELEASE_BRANCH"
echo "RELEASE_TAG=$RELEASE_TAG"
+echo "MODE=$MODE"
echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
@@ -207,13 +223,14 @@ echo
# Clean the Maven local repo if it hasn't been purged recently.
-if [ -f "$MAVEN_LOCAL_REPO_DIR" ]; then
- OUTPUT=`find "$MAVEN_LOCAL_REPO_DIR" -maxdepth 0 -mtime $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS`
- if [ -n "$OUTPUT" ]; then
- echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS hours - purging it for a clean-clean build..."
- rm -rf "$MAVEN_LOCAL_REPO_DIR"
- fi
-fi
+# TODO: Uncomment this.
+#if [ -f "$MAVEN_LOCAL_REPO_DIR" ]; then
+# OUTPUT=`find "$MAVEN_LOCAL_REPO_DIR" -maxdepth 0 -mtime $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS`
+# if [ -n "$OUTPUT" ]; then
+# echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS hours - purging it for a clean-clean build..."
+# rm -rf "$MAVEN_LOCAL_REPO_DIR"
+# fi
+#fi
mkdir -p "$MAVEN_LOCAL_REPO_DIR"
@@ -264,7 +281,12 @@ if [ -d "$WORKING_DIR" ]; then
# is truly a git working copy.
if [ "$GIT_STATUS_EXIT_CODE" -le 1 ]; then
echo "Checking out a clean copy of the release branch ($RELEASE_BRANCH)..."
- git checkout "$RELEASE_BRANCH"
+ git fetch origin "$RELEASE_BRANCH"
+ [ "$?" -ne 0 ] && abort "Failed to fetch release branch ($RELEASE_BRANCH)."
+ git checkout "$RELEASE_BRANCH" 2>/dev/null
+ if [ "$?" -ne 0 ]; then
+ git checkout --track -b "$RELEASE_BRANCH" "origin/$RELEASE_BRANCH"
+ fi
[ "$?" -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
git reset --hard "origin/$RELEASE_BRANCH"
[ "$?" -ne 0 ] && abort "Failed to reset release branch ($RELEASE_BRANCH)."
@@ -284,11 +306,35 @@ if [ ! -d "$WORKING_DIR" ]; then
git clone "$PROJECT_GIT_URL" "$WORKING_DIR"
[ "$?" -ne 0 ] && abort "Failed to clone $PROJECT_NAME git repo ($PROJECT_GIT_URL)."
cd "$CLONE_DIR"
- git checkout "$RELEASE_BRANCH"
+ git checkout --track -b $RELEASE_BRANCH "origin/$RELEASE_BRANCH"
[ "$?" -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
fi
+# See if the specified tag already exists remotely - if so:
+# - if we are in test mode, delete it.
+# or:
+# - if we are in production mode, abort.
+OUTPUT=`git ls-remote --tags origin "$RELEASE_TAG"`
+if [ -n "$OUTPUT" ]; then
+ if [ "$MODE" = "test" ]; then
+ echo "A remote tag named $RELEASE_TAG already exists - deleting it, since we are in test mode..."
+ git push origin ":ref/tags/$RELEASE_TAG"
+ [ "$?" -ne 0 ] && abort "Failed to delete remote tag ($RELEASE_TAG)."
+ else
+ abort "A remote tag named $RELEASE_TAG already exists. Aborting, since we are in production mode..."
+ fi
+fi
+
+
+# See if the specified tag already exists locally - if so, delete it.
+if [ -n `git tag -l "$RELEASE_TAG"` ]; then
+ echo "A local tag named $RELEASE_TAG already exists - deleting it..."
+ git tag -d "$RELEASE_TAG"
+ [ "$?" -ne 0 ] && abort "Failed to delete local tag ($RELEASE_TAG)."
+fi
+
+
# Run a test build before tagging. This will also publish the snapshot artifacts to the local repo to "bootstrap" the repo.
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
commit 8e64b8dc84e6da52147458a13c970fa07ba774c1
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 14:35:02 2010 -0400
BZ-536343: support uninventorying all resources members of a group
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java
index 58cabf5..5c3368f 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java
@@ -101,6 +101,26 @@ public class BrowseGroupsUIBean extends PagedDataTableUIBean {
return "success";
}
+ public String uninventoryMembers() {
+ try {
+ Subject subject = getSubject();
+
+ String[] selectedGroups = getSelectedItems();
+ int[] groupIds = StringUtility.getIntArray(selectedGroups);
+
+ for (int nextGroupId : groupIds) {
+ groupManager.uninventoryMembers(subject, nextGroupId);
+ }
+
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Uninventoried members of selected groups");
+ } catch (Exception e) {
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
+ "Failed to uninventory members of selected groups", e);
+ }
+
+ return "success";
+ }
+
private String[] getSelectedItems() {
return FacesContextUtility.getRequest().getParameterValues("selectedItems");
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml
index 2d9aedb..491c13a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml
@@ -201,6 +201,9 @@
<onc:selectCommandButton action="#{BrowseGroupsUIBean.deleteSelectedGroups}"
value="DELETE SELECTED" target="selectedItems" styleClass="on-pager-button buttonsmall"
rendered="#{GlobalPermissionsUIBean.inventory}" />
+ <onc:selectCommandButton action="#{BrowseGroupsUIBean.uninventoryMembers}"
+ value="UNINVENTORY MEMBERS" target="selectedItems" styleClass="on-pager-button buttonsmall"
+ rendered="#{GlobalPermissionsUIBean.inventory}" />
<ui:param name="paginationDataTableName" value="browseGroupsDataTable"/>
<ui:param name="paginationDataModel" value="#{browseGroupsDataModel}"/>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index d2a247b..85849b3 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -1386,4 +1386,13 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
return queryRunner.execute();
}
+ @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
+ @RequiredPermission(Permission.MANAGE_INVENTORY)
+ public void uninventoryMembers(Subject subject, int groupId) {
+ List<Integer> resourceMemberIds = resourceManager.findExplicitResourceIdsByResourceGroup(groupId);
+ for (int doomedResourceId : resourceMemberIds) {
+ resourceManager.uninventoryResource(subject, doomedResourceId);
+ }
+ }
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
index e1a210f..afac418 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
@@ -110,6 +110,8 @@ public interface ResourceGroupManagerLocal {
void ensureMembershipMatches(Subject subject, int groupId, int[] resourceIds) throws ResourceGroupUpdateException;
+ void uninventoryMembers(Subject subject, int groupId);
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
commit 37478f3a7d4d0d31d20692a77638a418e55fe283
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 13:44:05 2010 -0400
switch DataReader to use "UNION ALL" to match SQL used in MeasurementDataManagerUtility
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/DataReader.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/DataReader.java
index 349e8ae..7e0ca13 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/DataReader.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/util/DataReader.java
@@ -43,7 +43,7 @@ public class DataReader {
String[] tables = MeasurementDataManagerUtility.getTables(beginTime, endTime);
for (String table : tables) {
if (unions.length() != 0) {
- unions.append(" UNION \n ");
+ unions.append(" UNION ALL \n ");
}
unions.append(getTableString(table));
@@ -53,7 +53,7 @@ public class DataReader {
+ " (SELECT timestamp, avg(value) as av, max(value) as peak, min(value) as low FROM (\n"
+ unions.toString()
+ ") data GROUP BY timestamp) \n"
- + " UNION (select ? + (? * i) as timestamp, 0 as av, 0 as peak, 0 as low from RHQ_numbers where i < ?) ) alldata \n"
+ + " UNION ALL (select ? + (? * i) as timestamp, 0 as av, 0 as peak, 0 as low from RHQ_numbers where i < ?) ) alldata \n"
+ "GROUP BY timestamp";
//System.out.println(sql);
commit d351dac5aca18abd34afa677cf882e3d18278ff5
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 12:07:08 2010 -0400
BZ-586503: fix for listing MeasurementSchedules for (auto)groups w/1000+ members
* monitor>schedules now works for arbitrarily-sized groups
* also, add sorting to schedule displayName / dataType columns
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/config/ConfigMetricsFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/config/ConfigMetricsFormPrepareAction.java
index c6ec2b9..a69fe6f 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/config/ConfigMetricsFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/config/ConfigMetricsFormPrepareAction.java
@@ -42,6 +42,7 @@ import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.legacy.AttrConstants;
import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
@@ -115,7 +116,8 @@ public class ConfigMetricsFormPrepareAction extends TilesAction {
int resourceId = WebUtility.getOptionalIntRequestParameter(request, "id", -1);
if ((parent > 0) && (type > 0)) {
request.setAttribute(AttrConstants.MONITOR_ENABLED_ATTR, true);
- measurementSchedules = scheduleManager.findSchedulesForAutoGroup(subject, parent, type, pageControl);
+ measurementSchedules = scheduleManager.getMeasurementScheduleCompositesByContext(subject, EntityContext
+ .forAutoGroup(parent, type), pageControl);
request.setAttribute("type", type);
request.setAttribute("parent", parent);
@@ -127,16 +129,16 @@ public class ConfigMetricsFormPrepareAction extends TilesAction {
request.setAttribute(AttrConstants.MONITOR_ENABLED_ATTR, monitoringConfigured);
if (monitoringConfigured) {
log.debug("Obtaining metric schedules for resource " + resourceId + "...");
- measurementSchedules = scheduleManager.findScheduleCompositesForResource(subject, resourceId, null,
- pageControl);
+ measurementSchedules = scheduleManager.getMeasurementScheduleCompositesByContext(subject,
+ EntityContext.forResource(resourceId), pageControl);
}
} else if (groupId > 0) {
boolean monitoringConfigured = true; // isMonitoringConfiguredForGroup(groupId); // TODO implement the method, see below
request.setAttribute(AttrConstants.MONITOR_ENABLED_ATTR, true); // TODO change true -> monitoringConfigured
if (monitoringConfigured) {
log.debug("Obtaining metric schedules for comp group " + groupId + "...");
- measurementSchedules = scheduleManager.findSchedulesForCompatibleGroup(subject, groupId,
- pageControl);
+ measurementSchedules = scheduleManager.getMeasurementScheduleCompositesByContext(subject,
+ EntityContext.forGroup(groupId), pageControl);
request.setAttribute(AttrConstants.GROUP_ID, groupId);
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/autogroup/ListAutoGroupMeasurementScheduleUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/autogroup/ListAutoGroupMeasurementScheduleUIBean.java
index e9651a2..162f23d 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/autogroup/ListAutoGroupMeasurementScheduleUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/autogroup/ListAutoGroupMeasurementScheduleUIBean.java
@@ -12,6 +12,7 @@ import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
import org.rhq.enterprise.gui.common.paging.PagedListDataModel;
import org.rhq.enterprise.gui.common.time.DurationComponent;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -35,8 +36,8 @@ public class ListAutoGroupMeasurementScheduleUIBean extends PagedDataTableUIBean
int childResourceType = FacesContextUtility.getRequiredRequestParameter("type", Integer.class);
int[] measurementDefinitionIds = getSelectedAutoGroupScheduleList();
try {
- measurementScheduleManager.disableSchedulesForAutoGroup(getSubject(), parentResourceId,
- childResourceType, measurementDefinitionIds);
+ measurementScheduleManager.disableSchedulesForAutoGroup(getSubject(), parentResourceId, childResourceType,
+ measurementDefinitionIds);
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Disabled " + measurementDefinitionIds.length
+ " schedules.");
} catch (Exception e) {
@@ -50,8 +51,8 @@ public class ListAutoGroupMeasurementScheduleUIBean extends PagedDataTableUIBean
int childResourceType = FacesContextUtility.getRequiredRequestParameter("type", Integer.class);
int[] measurementDefinitionIds = getSelectedAutoGroupScheduleList();
try {
- measurementScheduleManager.enableSchedulesForAutoGroup(getSubject(), parentResourceId,
- childResourceType, measurementDefinitionIds);
+ measurementScheduleManager.enableSchedulesForAutoGroup(getSubject(), parentResourceId, childResourceType,
+ measurementDefinitionIds);
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Enabled " + measurementDefinitionIds.length
+ " schedules.");
} catch (Exception e) {
@@ -66,8 +67,8 @@ public class ListAutoGroupMeasurementScheduleUIBean extends PagedDataTableUIBean
int childResourceType = FacesContextUtility.getRequiredRequestParameter("type", Integer.class);
int[] measurementDefinitionIds = getSelectedAutoGroupScheduleList();
try {
- measurementScheduleManager.updateSchedulesForAutoGroup(getSubject(), parentResourceId,
- childResourceType, measurementDefinitionIds, collectionInterval);
+ measurementScheduleManager.updateSchedulesForAutoGroup(getSubject(), parentResourceId, childResourceType,
+ measurementDefinitionIds, collectionInterval);
FacesContextUtility.addMessage(FacesMessage.SEVERITY_INFO, "Enabled and set "
+ measurementDefinitionIds.length + " schedules.");
} catch (Exception e) {
@@ -96,8 +97,8 @@ public class ListAutoGroupMeasurementScheduleUIBean extends PagedDataTableUIBean
public PageList<MeasurementScheduleComposite> fetchPage(PageControl pc) {
int parentResourceId = FacesContextUtility.getRequiredRequestParameter("parent", Integer.class);
int childResourceType = FacesContextUtility.getRequiredRequestParameter("type", Integer.class);
- return measurementScheduleManager.findSchedulesForAutoGroup(getSubject(), parentResourceId,
- childResourceType, pc);
+ return measurementScheduleManager.getMeasurementScheduleCompositesByContext(getSubject(), EntityContext
+ .forAutoGroup(parentResourceId, childResourceType), pc);
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/group/ListResourceGroupMeasurementScheduleUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/group/ListResourceGroupMeasurementScheduleUIBean.java
index aba5283..267bb07 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/group/ListResourceGroupMeasurementScheduleUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/group/ListResourceGroupMeasurementScheduleUIBean.java
@@ -12,6 +12,7 @@ import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
import org.rhq.enterprise.gui.common.paging.PagedListDataModel;
import org.rhq.enterprise.gui.common.time.DurationComponent;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -93,7 +94,8 @@ public class ListResourceGroupMeasurementScheduleUIBean extends PagedDataTableUI
@Override
public PageList<MeasurementScheduleComposite> fetchPage(PageControl pc) {
int groupId = FacesContextUtility.getRequiredRequestParameter("groupId", Integer.class);
- return measurementScheduleManager.findSchedulesForCompatibleGroup(getSubject(), groupId, pc);
+ return measurementScheduleManager.getMeasurementScheduleCompositesByContext(getSubject(), EntityContext
+ .forGroup(groupId), pc);
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/resource/ListResourceMeasurementScheduleUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/resource/ListResourceMeasurementScheduleUIBean.java
index c1515e8..1a07f05 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/resource/ListResourceMeasurementScheduleUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/schedule/resource/ListResourceMeasurementScheduleUIBean.java
@@ -12,6 +12,7 @@ import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
import org.rhq.enterprise.gui.common.paging.PagedListDataModel;
import org.rhq.enterprise.gui.common.time.DurationComponent;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -90,7 +91,8 @@ public class ListResourceMeasurementScheduleUIBean extends PagedDataTableUIBean
@Override
public PageList<MeasurementScheduleComposite> fetchPage(PageControl pc) {
int resourceId = FacesContextUtility.getRequiredRequestParameter("id", Integer.class);
- return measurementScheduleManager.findSchedulesForResource(getSubject(), resourceId, pc);
+ return measurementScheduleManager.getMeasurementScheduleCompositesByContext(getSubject(), EntityContext
+ .forResource(resourceId), pc);
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-auto-group/measurement-navigation.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-auto-group/measurement-navigation.xml
index 9f82213..a21940f 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-auto-group/measurement-navigation.xml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-navigation-auto-group/measurement-navigation.xml
@@ -41,6 +41,13 @@
<redirect/>
</navigation-case>
+ <navigation-case>
+ <!-- sorting rule -->
+ <from-outcome>sort</from-outcome>
+ <to-view-id>/rhq/autogroup/monitor/schedules.xhtml?parent=#{param.parent}&type=#{param.type}</to-view-id>
+ <redirect/>
+ </navigation-case>
+
</navigation-rule>
<!-- changing metric display range on Events > History -->
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml
index 495d0e0..856ca7e 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml
@@ -73,7 +73,7 @@
<rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <onc:sortableColumnHeader sort="ms.definition.displayName">
+ <onc:sortableColumnHeader sort="definition.displayName">
<h:outputText styleClass="headerText" value="Metric" />
</onc:sortableColumnHeader>
</f:facet>
@@ -91,7 +91,9 @@
<rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Type" />
+ <onc:sortableColumnHeader sort="definition.dataType">
+ <h:outputText styleClass="headerText" value="Type" />
+ </onc:sortableColumnHeader>
</f:facet>
<h:outputText value="#{item.measurementDefinition.dataType}"/>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules.xhtml
index 54229c0..98bfda3 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/monitor/schedules.xhtml
@@ -71,7 +71,9 @@
<rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Metric" />
+ <onc:sortableColumnHeader sort="definition.displayName">
+ <h:outputText styleClass="headerText" value="Metric" />
+ </onc:sortableColumnHeader>
</f:facet>
<h:outputText value="#{item.measurementDefinition.displayName}"/>
@@ -87,7 +89,9 @@
<rich:column style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Type" />
+ <onc:sortableColumnHeader sort="definition.dataType">
+ <h:outputText styleClass="headerText" value="Type" />
+ </onc:sortableColumnHeader>
</f:facet>
<h:outputText value="#{item.measurementDefinition.dataType}"/>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/schedules.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/schedules.xhtml
index c568507..78da5bb 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/schedules.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/monitor/schedules.xhtml
@@ -73,7 +73,7 @@
<rich:column
style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <onc:sortableColumnHeader sort="ms.definition.displayName">
+ <onc:sortableColumnHeader sort="definition.displayName">
<h:outputText styleClass="headerText" value="Metric" />
</onc:sortableColumnHeader>
</f:facet>
@@ -93,7 +93,7 @@
<rich:column
style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <onc:sortableColumnHeader sort="ms.definition.dataType">
+ <onc:sortableColumnHeader sort="definition.dataType">
<h:outputText styleClass="headerText" value="Type" />
</onc:sortableColumnHeader>
</f:facet>
@@ -104,9 +104,7 @@
<rich:column
style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <onc:sortableColumnHeader sort="ms.enabled">
- <h:outputText styleClass="headerText" value="Enabled" />
- </onc:sortableColumnHeader>
+ <h:outputText styleClass="headerText" value="Enabled" />
</f:facet>
<h:outputText value="Yes" style="color:green;font:bold;" rendered="#{item.collectionEnabled}"/>
<h:outputText value="No" style="color:red;font:bold;" rendered="#{!item.collectionEnabled}"/>
@@ -115,9 +113,7 @@
<rich:column
style="background-color: #{item.collectionEnabled ? '#E2F2E6' : '#E2D2D2'}">
<f:facet name="header">
- <onc:sortableColumnHeader sort="ms.interval">
- <h:outputText styleClass="headerText" value="Collection Interval" />
- </onc:sortableColumnHeader>
+ <h:outputText styleClass="headerText" value="Collection Interval" />
</f:facet>
<h:outputText value="#{item.collectionInterval}">
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
index 02c2937..5a5a829 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
@@ -21,9 +21,7 @@ package org.rhq.enterprise.server.measurement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
-import java.sql.SQLException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -43,7 +41,6 @@ import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.jetbrains.annotations.Nullable;
import org.jboss.annotation.IgnoreDependency;
@@ -56,9 +53,9 @@ import org.rhq.core.db.SQLServerDatabaseType;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
+import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
-import org.rhq.core.domain.measurement.MeasurementCategory;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
@@ -69,8 +66,6 @@ import org.rhq.core.domain.resource.Agent;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.group.GroupCategory;
-import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.OrderingField;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -85,13 +80,11 @@ import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.authz.RequiredPermissions;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.common.PerformanceMonitorInterceptor;
import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
-import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
-import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
-import org.rhq.enterprise.server.system.SystemManagerLocal;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -129,18 +122,11 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
private ResourceGroupManagerLocal resourceGroupManager;
@EJB
- @IgnoreDependency
- private ResourceTypeManagerLocal resourceTypeManager;
-
- @EJB
private MeasurementScheduleManagerLocal measurementScheduleManager;
@EJB
private SubjectManagerLocal subjectManager;
- @EJB
- private SystemManagerLocal systemManager;
-
private final Log log = LogFactory.getLog(MeasurementScheduleManagerBean.class);
public Set<ResourceMeasurementScheduleRequest> findSchedulesForResourceAndItsDescendants(int[] resourceIds,
@@ -256,8 +242,7 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
return findSchedulesByResourcesAndDefinitions(subject, resourceIds, new int[] { definitionId });
}
- public List<MeasurementSchedule> findSchedulesByResourceIdsAndDefinitionIds(int[] resourceIds,
- int[] definitionIds) {
+ public List<MeasurementSchedule> findSchedulesByResourceIdsAndDefinitionIds(int[] resourceIds, int[] definitionIds) {
Query query = entityManager.createNamedQuery(MeasurementSchedule.FIND_BY_RESOURCE_IDS_AND_DEFINITION_IDS);
query.setParameter("definitionIds", ArrayUtils.wrapInList(definitionIds));
query.setParameter("resourceIds", ArrayUtils.wrapInList(resourceIds));
@@ -278,7 +263,6 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
return findSchedulesByResourceIdsAndDefinitionIds(resourceIds, definitionIds);
}
-
/**
* Find MeasurementSchedules that are attached to a certain definition and a resource
*
@@ -311,212 +295,6 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
}
}
- /**
- * Get the MeasurementSchedule composits for an autogroup
- *
- * @param subject
- * @param parentId
- * @param childType
- * @param pageControl
- *
- * @return
- */
- public PageList<MeasurementScheduleComposite> findSchedulesForAutoGroup(Subject subject, int parentId,
- int childType, PageControl pageControl) {
- // pageControl.initDefaultOrderingField(); // this is ignored, as this method eventually uses native queries
-
- List<Resource> resources = resourceGroupManager.findResourcesForAutoGroup(subject, parentId, childType);
- for (Resource res : resources) {
- if (!authorizationManager.canViewResource(subject, res.getId())) {
- throw new PermissionException("User[" + subject.getName()
- + "] does not have permission to view metric schedules for autoGroup[parentResourceId=" + parentId
- + ", resourceTypeId=" + childType + "], root cause: does not have permission to view resource[id="
- + res.getId() + "]");
- }
- }
-
- ResourceType resType;
- try {
- resType = resourceTypeManager.getResourceTypeById(subject, childType);
- } catch (ResourceTypeNotFoundException e) {
- List<MeasurementScheduleComposite> compList = new ArrayList<MeasurementScheduleComposite>();
- PageList<MeasurementScheduleComposite> result = new PageList<MeasurementScheduleComposite>(compList,
- pageControl);
- return result;
- }
-
- Set<MeasurementDefinition> definitions = resType.getMetricDefinitions();
-
- return getCurrentMeasurementSchedulesForResourcesAndType(pageControl, resources, resType, definitions);
- }
-
- /**
- * Get the MeasurementSchedule composites for a compatible group.
- */
- public PageList<MeasurementScheduleComposite> findSchedulesForCompatibleGroup(Subject subject, int groupId,
- PageControl pageControl) {
- // pageControl.initDefaultOrderingField(); // this is ignored, as this method eventually uses native queries
-
- if (!authorizationManager.canViewResource(subject, groupId)) {
- throw new PermissionException("User[" + subject.getName()
- + "] does not have permission to view metric schedules for resourceGroup[id=" + groupId + "]");
- }
-
- ResourceGroup group = resourceGroupManager.getResourceGroupById(subject, groupId, GroupCategory.COMPATIBLE);
- Set<Resource> resources = group.getExplicitResources();
- ResourceType resType = group.getResourceType();
- Set<MeasurementDefinition> definitions = resType.getMetricDefinitions();
-
- return getCurrentMeasurementSchedulesForResourcesAndType(pageControl, resources, resType, definitions);
- }
-
- /**
- * @param pageControl
- * @param resources
- * @param resType
- * @param definitions
- *
- * @return
- */
- PageList<MeasurementScheduleComposite> getCurrentMeasurementSchedulesForResourcesAndType(PageControl pageControl,
- Collection<Resource> resources, ResourceType resType, Set<MeasurementDefinition> definitions) {
- Connection conn = null;
- PreparedStatement ps = null;
- ResultSet resultSet = null;
- DatabaseType type = systemManager.getDatabaseType();
-
- String queryString;
- if (type instanceof PostgresqlDatabaseType || type instanceof H2DatabaseType) {
- queryString = "select defi.id, defi.display_name, defi.description,defi.category,defi.data_type, foo.coMin, foo.coMax, foo.coAny, foo.coAll "
- + " from RHQ_measurement_def defi, "
- + " ( "
- + " select d.id as did, min(s.coll_interval) as coMin, max(s.coll_interval) as coMax, bool_or(s.enabled) as coAny, bool_and(s.enabled) as coAll "
- + " from RHQ_MEASUREMENT_SCHED s, RHQ_measurement_def d "
- + " where s.definition = d.id "
- + " and d.id IN (@@DEFINITIONS@@) "
- + " and s.resource_id IN (@@RESOURCES@@) "
- + " group by d.id " + " ) as foo " + " where defi.id = foo.did order by defi.display_name";
- } else if (type instanceof OracleDatabaseType || type instanceof SQLServerDatabaseType) {
- queryString = "select defi.id, defi.display_name, defi.description, defi.category, defi.data_type, coMin, coMax, coAny, coAll "
- + " from RHQ_measurement_def defi, "
- + " ( "
- + " select d.id as did, min(s.coll_interval) as coMin, max(s.coll_interval) as coMax, min(s.enabled) as coAny, max(s.enabled) as coAll "
- + " from RHQ_MEASUREMENT_SCHED s, RHQ_measurement_def d "
- + " where s.definition = d.id "
- + " and d.id IN (@@DEFINITIONS@@) "
- + " and s.resource_id IN (@@RESOURCES@@) "
- + " group by d.id " + " ) " + " where defi.id = did order by defi.display_name";
- } else {
- throw new IllegalArgumentException("unknown database type, imlement this: " + type.toString());
- }
-
- int numDefs = definitions.size();
- queryString = JDBCUtil.transformQueryForMultipleInParameters(queryString, "@@DEFINITIONS@@", numDefs);
- int numResources = resources.size();
- if (numResources > 1000) // if collection time is the same for 1000, assume that for all of them
- {
- numResources = 1000;
- }
-
- queryString = JDBCUtil.transformQueryForMultipleInParameters(queryString, "@@RESOURCES@@", numResources);
-
- int[] defIds = new int[numDefs];
- int i = 0;
- for (MeasurementDefinition def : definitions) {
- defIds[i++] = def.getId();
- }
-
- int[] resIds = new int[numResources];
- i = 0;
- for (Resource res : resources) {
- resIds[i++] = res.getId();
- }
-
- List<MeasurementScheduleComposite> compList = new ArrayList<MeasurementScheduleComposite>(numDefs);
-
- try {
- conn = dataSource.getConnection();
- ps = conn.prepareStatement(queryString);
- JDBCUtil.bindNTimes(ps, defIds, 1);
- JDBCUtil.bindNTimes(ps, resIds, numDefs + 1);
- resultSet = ps.executeQuery();
- while (resultSet.next()) {
- int defId = resultSet.getInt(1);
- String defDisName = resultSet.getString(2);
- String defDescr = resultSet.getString(3);
- int category = resultSet.getInt(4);
- int dataType = resultSet.getInt(5);
- int maxInterval = resultSet.getInt(6);
- int minInterval = resultSet.getInt(7);
- int collectionInterval = (maxInterval == minInterval) ? maxInterval : 0; // 0 will be flagged as "DIFFERENT"
- Boolean collectionEnabled = null;
- if (type instanceof PostgresqlDatabaseType || type instanceof H2DatabaseType) {
- boolean bOr = resultSet.getBoolean(8);
- boolean bAnd = resultSet.getBoolean(9);
- if (bOr == bAnd) {
- collectionEnabled = (bOr) ? true : false;
- } else {
- collectionInterval = 0; // will be flagged as "DIFFERENT"
- }
- } else if (type instanceof OracleDatabaseType || type instanceof SQLServerDatabaseType) {
- int boAny = resultSet.getInt(8);
- int boAll = resultSet.getInt(9);
- if (boAny == boAll) {
- collectionEnabled = (boAny == 1) ? true : false;
- } else {
- collectionInterval = 0; // will be flagged as "DIFFERENT"
- }
- } else {
- throw new IllegalArgumentException("Unimplemented db type: " + type.toString());
- }
-
- MeasurementDefinition dummy = new MeasurementDefinition(resType, defDisName);
- dummy.setId(defId);
- dummy.setDescription(defDescr);
- dummy.setDisplayName(defDisName);
- dummy.setCategory(MeasurementCategory.values()[category]);
- dummy.setDataType(DataType.values()[dataType]);
- MeasurementScheduleComposite comp = new MeasurementScheduleComposite(dummy, collectionEnabled,
- collectionInterval);
- compList.add(comp);
- }
- } catch (SQLException e) {
- log.error("Can not retrieve results: " + e.getMessage() + ", code= " + e.getErrorCode());
- compList = new ArrayList<MeasurementScheduleComposite>();
- } finally {
- JDBCUtil.safeClose(conn, ps, resultSet);
- }
-
- PageList<MeasurementScheduleComposite> result = new PageList<MeasurementScheduleComposite>(compList,
- pageControl);
-
- return result;
- }
-
- @SuppressWarnings("unchecked")
- public PageList<MeasurementScheduleComposite> findScheduleCompositesForResource(Subject subject, int resourceId,
- @Nullable DataType dataType, PageControl pageControl) {
- if (!authorizationManager.canViewResource(subject, resourceId)) {
- throw new PermissionException("User[" + subject.getName()
- + "] does not have permission to view metric schedules for resource[id=" + resourceId + "]");
- }
-
- pageControl.addDefaultOrderingField("ms.id");
-
- Query query = PersistenceUtility.createQueryWithOrderBy(entityManager,
- MeasurementSchedule.FIND_SCHEDULE_COMPOSITE_FOR_RESOURCE, pageControl);
- query.setParameter("resourceId", resourceId);
- query.setParameter("dataType", dataType);
- List<MeasurementScheduleComposite> results = query.getResultList();
- return new PageList<MeasurementScheduleComposite>(results, pageControl);
- }
-
- public PageList<MeasurementScheduleComposite> findSchedulesForResource(Subject subject, int resourceId,
- PageControl pageControl) {
-
- return findScheduleCompositesForResource(subject, resourceId, null, pageControl);
- }
-
@RequiredPermission(Permission.MANAGE_SETTINGS)
public void disableDefaultCollectionForMeasurementDefinitions(Subject subject, int[] measurementDefinitionIds,
boolean updateSchedules) {
@@ -928,22 +706,6 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
}
/**
- * Returns the list of MeasurementDefinitions with the given id's
- *
- * @param ids id's of the desired definitions
- *
- * @return the list of MeasurementDefinitions for the list of id's
- */
- @SuppressWarnings("unchecked")
- private List<MeasurementDefinition> getDefinitionsByIds(int[] ids) {
- Query q = entityManager.createNamedQuery(MeasurementDefinition.FIND_BY_IDS);
- List<Integer> idsList = ArrayUtils.wrapInList(ids);
- q.setParameter("ids", idsList);
- List<MeasurementDefinition> results = q.getResultList();
- return results;
- }
-
- /**
* This gets measurement schedules for a resource and optionally its dependents. It creates them as necessary.
*
* @param resourceIds The ids of the resources to retrieve schedules for
@@ -1347,6 +1109,129 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
}
@SuppressWarnings("unchecked")
+ public PageList<MeasurementScheduleComposite> getMeasurementScheduleCompositesByContext(Subject subject,
+ EntityContext context, PageControl pc) {
+ pc.addDefaultOrderingField("definition.displayName");
+
+ // check authorization up front, so that criteria-based queries can run without authz checks
+ if (context.category == EntityContext.Category.Resource) {
+ if (authorizationManager.canViewResource(subject, context.resourceId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement schedules for resource[id=" + context.resourceId
+ + "]");
+ }
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ if (authorizationManager.canViewGroup(subject, context.groupId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement schedules for resourceGroup[id="
+ + context.groupId + "]");
+ }
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ if (authorizationManager.canViewAutoGroup(subject, context.parentResourceId, context.resourceTypeId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view measurement schedules for autoGroup[parentResourceId="
+ + context.parentResourceId + ", resourceTypeId=" + context.resourceTypeId + "]");
+ }
+ }
+
+ // general criteria setup
+ MeasurementScheduleCriteria criteria = new MeasurementScheduleCriteria();
+ //criteria.addFilterDefinitionIds(measurementDefinitionIds);
+ if (context.category == EntityContext.Category.Resource) {
+ criteria.addFilterResourceId(context.resourceId);
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ criteria.addFilterResourceGroupId(context.groupId);
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ criteria.addFilterAutoGroupParentResourceId(context.parentResourceId);
+ criteria.addFilterAutoGroupResourceTypeId(context.resourceTypeId);
+ }
+ criteria.setPageControl(pc); // for primary return list, use passed PageControl
+
+ // get the core definitions
+ CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
+ generator.alterProjection(" distinct measurementschedule.definition ");
+ CriteriaQueryRunner<MeasurementDefinition> queryRunner = new CriteriaQueryRunner(criteria, generator,
+ entityManager);
+ PageList<MeasurementDefinition> definitions = queryRunner.execute();
+
+ // reset paging -- remove ordering, add group by
+ criteria.setPageControl(PageControl.getUnlimitedInstance());
+ generator.setGroupByClause(" measurementschedule.definition.id ");
+
+ // get the interval results
+ generator.alterProjection("" //
+ + " measurementschedule.definition.id, " //
+ + " min(measurementschedule.interval), " //
+ + " max(measurementschedule.interval) ");
+ Query query = generator.getQuery(entityManager);
+ List<Object[]> definitionIntervalResults = query.getResultList();
+
+ // get the enabled results
+ criteria.addFilterEnabled(true);
+ generator.alterProjection(" measurementschedule.definition.id, count(measurementschedule.id) ");
+ query = generator.getQuery(entityManager);
+ List<Object[]> definitionEnabledResults = query.getResultList();
+
+ // generate intermediate maps
+ Map<Integer, Long> definitionIntervalMap = new HashMap<Integer, Long>();
+ for (Object[] nextInterval : definitionIntervalResults) {
+ int definitionId = (Integer) nextInterval[0];
+ long minInterval = (Long) nextInterval[1];
+ long maxInterval = (Long) nextInterval[2];
+
+ long interval = (minInterval != maxInterval) ? 0 : minInterval;
+ definitionIntervalMap.put(definitionId, interval);
+ }
+ int size = getResourceCount(context);
+ Map<Integer, Boolean> definitionEnabledMap = new HashMap<Integer, Boolean>();
+ for (Object[] nextEnabled : definitionEnabledResults) {
+ int definitionId = (Integer) nextEnabled[0];
+ long enabledCount = (Long) nextEnabled[1];
+
+ Boolean enabled = null;
+ if (enabledCount == size) {
+ enabled = true;
+ } else if (enabledCount == 0) {
+ enabled = false;
+ }
+
+ definitionEnabledMap.put(definitionId, enabled);
+ }
+
+ // finally merge everything together
+ List<MeasurementScheduleComposite> composites = new ArrayList<MeasurementScheduleComposite>();
+ for (MeasurementDefinition next : definitions) {
+ int definitionId = next.getId();
+ Boolean enabled = false;
+ if (definitionEnabledMap.containsKey(definitionId)) {
+ enabled = definitionEnabledMap.get(definitionId);
+ }
+ long interval = definitionIntervalMap.get(definitionId);
+
+ MeasurementScheduleComposite result = new MeasurementScheduleComposite(next, enabled, interval);
+ composites.add(result);
+ }
+ return new PageList<MeasurementScheduleComposite>(composites, composites.size(), pc);
+ }
+
+ private int getResourceCount(EntityContext context) {
+ if (context.category == EntityContext.Category.Resource) {
+ return 1;
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ return resourceGroupManager.getExplicitGroupMemberCount(context.groupId);
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ ResourceCriteria criteria = new ResourceCriteria();
+ criteria.addFilterParentResourceId(context.parentResourceId);
+ criteria.addFilterResourceTypeId(context.resourceTypeId);
+ criteria.setPageControl(PageControl.getSingleRowInstance()); // get one record, then extract totalSize
+ PageList<Resource> results = resourceManager
+ .findResourcesByCriteria(subjectManager.getOverlord(), criteria);
+ return results.getTotalSize();
+ }
+ return 0;
+ }
+
+ @SuppressWarnings("unchecked")
public PageList<MeasurementSchedule> findSchedulesByCriteria(Subject subject, MeasurementScheduleCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
if (authorizationManager.isInventoryManager(subject) == false) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerLocal.java
index 5403878..12c7358 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerLocal.java
@@ -22,9 +22,6 @@ import java.util.List;
import java.util.Set;
import javax.ejb.Local;
-import javax.jws.WebParam;
-
-import org.jetbrains.annotations.Nullable;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.MeasurementScheduleCriteria;
@@ -34,11 +31,11 @@ import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.measurement.ResourceMeasurementScheduleRequest;
import org.rhq.core.domain.measurement.composite.MeasurementScheduleComposite;
-import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.agentclient.AgentClient;
+import org.rhq.enterprise.server.common.EntityContext;
/**
* A manager for {@link MeasurementSchedule}s.
@@ -104,19 +101,6 @@ public interface MeasurementScheduleManagerLocal {
throws MeasurementNotFoundException;
/**
- * Retrieves the metric collection schedules for the given resource.
- *
- * @param subject the current user
- * @param resourceId a {@link Resource} id
- * @param dataType the data type to limit results to, or null to not limit results to a particular data type
- * @param pageControl the page control for the results
- *
- * @return the metric collection schedules for the given resource
- */
- PageList<MeasurementScheduleComposite> findScheduleCompositesForResource(Subject subject, int resourceId,
- @Nullable DataType dataType, PageControl pageControl);
-
- /**
* Disables all collection schedules in the given measurement definition IDs. This only disables the "templates", it
* does not disable actual schedules. For that capability, see
* {@link #disableSchedules(Subject, int[], int)}.
@@ -270,34 +254,8 @@ public interface MeasurementScheduleManagerLocal {
*/
List<MeasurementSchedule> findSchedulesByResourceIdsAndDefinitionIds(int[] resourceIds, int[] definitionIds);
- /**
- * Get the MeasurementSchedule composites for an autogroup
- *
- * @param subject
- * @param parentId
- * @param childType
- * @param pageControl
- *
- * @return
- */
- PageList<MeasurementScheduleComposite> findSchedulesForAutoGroup(Subject subject, int parentId, int childType,
- PageControl pageControl);
-
- PageList<MeasurementScheduleComposite> findSchedulesForCompatibleGroup(Subject subject, int groupId,
- PageControl pageControl);
-
- /**
- * Retrieves the metric collection schedules for the given resource.
- *
- * @param subject the current user
- * @param resourceId a {@link Resource} id
- * @param pageControl the page control for the results
- *
- * @return the metric collection schedules for the given resource
- */
- PageList<MeasurementScheduleComposite> findSchedulesForResource(Subject subject, int resourceId,
- PageControl pageControl);
-
+ PageList<MeasurementScheduleComposite> getMeasurementScheduleCompositesByContext(Subject subject,
+ EntityContext context, PageControl pc);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
commit 80f5f052e4fb3253e031973ef35025829351e02a
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 12:03:17 2010 -0400
add ResourceGroupManager.getExplicitGroupMemberCount (to complement getImplicitGroupMemberCount)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
index 44e6e45..d2a247b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerBean.java
@@ -935,6 +935,14 @@ public class ResourceGroupManagerBean implements ResourceGroupManagerLocal, Reso
}
}
+ public int getExplicitGroupMemberCount(int resourceGroupId) {
+ Query countQuery = entityManager
+ .createNamedQuery(Resource.QUERY_FIND_EXPLICIT_RESOURCES_FOR_RESOURCE_GROUP_COUNT_ADMIN);
+ countQuery.setParameter("groupId", resourceGroupId);
+ long count = (Long) countQuery.getSingleResult();
+ return (int) count;
+ }
+
public int getImplicitGroupMemberCount(int resourceGroupId) {
Query countQuery = entityManager
.createNamedQuery(Resource.QUERY_FIND_IMPLICIT_RESOURCES_FOR_RESOURCE_GROUP_COUNT_ADMIN);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
index 3bc72a4..e1a210f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerLocal.java
@@ -95,6 +95,8 @@ public interface ResourceGroupManagerLocal {
void setResourceType(int resourceGroupId);
+ int getExplicitGroupMemberCount(int resourceGroupId);
+
int getImplicitGroupMemberCount(int resourceGroupId);
PageList<ResourceGroupComposite> findResourceGroupComposites(Subject subject, GroupCategory groupCategory,
commit e60e3ed1769d7641017efe269bec7496f642265f
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 12:02:13 2010 -0400
better javadoc for MeasurementScheduleComposite
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementScheduleComposite.java b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementScheduleComposite.java
index ec3dda6..a3416d3 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementScheduleComposite.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/composite/MeasurementScheduleComposite.java
@@ -43,8 +43,8 @@ public class MeasurementScheduleComposite implements Serializable {
private static final long serialVersionUID = 1L;
private MeasurementDefinition measurementDefinition;
- private Boolean collectionEnabled;
- private long collectionInterval;
+ private Boolean collectionEnabled; // null flagged as "SOME"
+ private long collectionInterval; // 0 flagged as "DIFFERENT"
public MeasurementScheduleComposite(MeasurementDefinition measurementDefinition) {
this.measurementDefinition = measurementDefinition;
commit 3ef85ad7843f9f5ead0d9c748ee1a81e31bbf3f5
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 12:01:56 2010 -0400
add more sort columns for MeasurementScheduleCriteria
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java
index ca90068..cae02bf 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/MeasurementScheduleCriteria.java
@@ -40,6 +40,7 @@ public class MeasurementScheduleCriteria extends Criteria {
private static final long serialVersionUID = 1L;
private Integer filterId;
+ private Boolean filterEnabled;
private List<Integer> filterDefinitionIds; // requires overrides
private Integer filterResourceId; // requires overrides
private Integer filterResourceGroupId; // requires overrides
@@ -51,6 +52,8 @@ public class MeasurementScheduleCriteria extends Criteria {
private boolean fetchResource;
private PageOrdering sortName; // requires overrides
+ private PageOrdering sortDisplayName; // requires overrides
+ private PageOrdering sortDataType; // requires overrides
public MeasurementScheduleCriteria() {
filterOverrides.put("definitionIds", "definition.id IN ( ? )");
@@ -72,6 +75,8 @@ public class MeasurementScheduleCriteria extends Criteria {
+ " WHERE parent.id = ? )");
sortOverrides.put("name", "definition.name");
+ sortOverrides.put("displayName", "definition.displayName");
+ sortOverrides.put("dataType", "definition.dataType");
}
@Override
@@ -83,6 +88,10 @@ public class MeasurementScheduleCriteria extends Criteria {
this.filterId = filterId;
}
+ public void addFilterEnabled(Boolean filterEnabled) {
+ this.filterEnabled = filterEnabled;
+ }
+
public void addFilterDefinitionIds(Integer... filterDefinitionIds) {
this.filterDefinitionIds = Arrays.asList(filterDefinitionIds);
}
@@ -120,4 +129,14 @@ public class MeasurementScheduleCriteria extends Criteria {
this.sortName = sortName;
}
-}
+ public void addSortDisplayName(PageOrdering sortDisplayName) {
+ addSortField("displayName");
+ this.sortDisplayName = sortDisplayName;
+ }
+
+ public void addSortDataType(PageOrdering sortDataType) {
+ addSortField("dataType");
+ this.sortDataType = sortDataType;
+ }
+
+}
\ No newline at end of file
commit ef3117242bd0125ddfce57db60cc55bf4fff39fb
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 12:01:34 2010 -0400
add support for groupBy/having clauses to the CriteriaQueryGenerator
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
index 7d9411d..6902fad 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
@@ -41,7 +41,6 @@ import org.rhq.core.domain.criteria.Criteria;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.criteria.SubjectCriteria;
-import org.rhq.core.domain.criteria.TaggedCriteria;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.search.SearchSubsystem;
@@ -70,7 +69,6 @@ public final class CriteriaQueryGenerator {
private Criteria criteria;
private String searchExpressionWhereClause;
-
private String authorizationJoinFragment;
private String authorizationPermsFragment;
private String authorizationCustomConditionFragment;
@@ -79,6 +77,8 @@ public final class CriteriaQueryGenerator {
private String alias;
private String className;
private String projection;
+ private String groupByClause;
+ private String havingClause;
private static String NL = System.getProperty("line.separator");
private static List<String> EXPRESSION_START_KEYWORDS;
@@ -114,7 +114,8 @@ public final class CriteriaQueryGenerator {
}
private String fixFilterOverride(String expression, String fieldName) {
- boolean fuzzyMatch = expression.toLowerCase().contains(" like ") && !expression.toLowerCase().contains("select"); // Don't fuzzy match subselects
+ boolean fuzzyMatch = expression.toLowerCase().contains(" like ")
+ && !expression.toLowerCase().contains("select"); // Don't fuzzy match subselects
boolean wantCaseInsensitiveMatch = !criteria.isCaseSensitive() && fuzzyMatch;
while (expression.indexOf('?') != -1) {
@@ -154,30 +155,30 @@ public final class CriteriaQueryGenerator {
if (type == AuthorizationTokenType.RESOURCE) {
if (fragment == null) {
this.authorizationJoinFragment = "" //
- + "JOIN " + alias + ".implicitGroups authGroup " + NL //
- + "JOIN authGroup.roles authRole " + NL //
- + "JOIN authRole.subjects authSubject " + NL;
+ + "JOIN " + alias + ".implicitGroups authGroup " + NL //
+ + "JOIN authGroup.roles authRole " + NL //
+ + "JOIN authRole.subjects authSubject " + NL;
} else {
this.authorizationJoinFragment = "" //
- + "JOIN " + alias + "." + fragment + " authRes " + NL //
- + "JOIN authRes.implicitGroups authGroup " + NL //
- + "JOIN authGroup.roles authRole " + NL //
- + "JOIN authRole.subjects authSubject " + NL;
+ + "JOIN " + alias + "." + fragment + " authRes " + NL //
+ + "JOIN authRes.implicitGroups authGroup " + NL //
+ + "JOIN authGroup.roles authRole " + NL //
+ + "JOIN authRole.subjects authSubject " + NL;
}
} else if (type == AuthorizationTokenType.GROUP) {
if (fragment == null) {
this.authorizationJoinFragment = "" //
- + "JOIN " + alias + ".roles authRole " + NL //
- + "JOIN authRole.subjects authSubject " + NL;
+ + "JOIN " + alias + ".roles authRole " + NL //
+ + "JOIN authRole.subjects authSubject " + NL;
} else {
this.authorizationJoinFragment = "" //
- + "JOIN " + alias + "." + fragment + " authGroup " + NL //
- + "JOIN authGroup.roles authRole " + NL //
- + "JOIN authRole.subjects authSubject " + NL;
+ + "JOIN " + alias + "." + fragment + " authGroup " + NL //
+ + "JOIN authGroup.roles authRole " + NL //
+ + "JOIN authRole.subjects authSubject " + NL;
}
} else {
throw new IllegalArgumentException(this.getClass().getSimpleName()
- + " does not yet support generating queries for '" + type + "' token types");
+ + " does not yet support generating queries for '" + type + "' token types");
}
// If the query results are narrowed by requiredParams generate the fragment now. It's done
@@ -188,12 +189,12 @@ public final class CriteriaQueryGenerator {
List<Permission> requiredPerms = this.criteria.getRequiredPermissions();
if (!(null == requiredPerms || requiredPerms.isEmpty())) {
this.authorizationPermsFragment = "" //
- + "AND ( SELECT COUNT(DISTINCT p)" + NL //
- + " FROM Subject innerSubject" + NL //
- + " JOIN innerSubject.roles r" + NL //
- + " JOIN r.permissions p" + NL //
- + " WHERE innerSubject.id = " + this.authorizationSubjectId + NL //
- + " AND p IN ( :requiredPerms ) ) = :requiredPermsSize" + NL;
+ + "AND ( SELECT COUNT(DISTINCT p)" + NL //
+ + " FROM Subject innerSubject" + NL //
+ + " JOIN innerSubject.roles r" + NL //
+ + " JOIN r.permissions p" + NL //
+ + " WHERE innerSubject.id = " + this.authorizationSubjectId + NL //
+ + " AND p IN ( :requiredPerms ) ) = :requiredPermsSize" + NL;
}
}
@@ -308,6 +309,17 @@ public final class CriteriaQueryGenerator {
}
if (countQuery == false) {
+ // group by clause
+ if (groupByClause != null) {
+ results.append(NL).append("GROUP BY ").append(groupByClause);
+ }
+
+ // having clause
+ if (havingClause != null) {
+ results.append(NL).append("HAVING ").append(havingClause);
+ }
+
+ // order by clause
boolean overridden = true;
PageControl pc = criteria.getPageControlOverrides();
if (pc == null) {
@@ -440,7 +452,7 @@ public final class CriteriaQueryGenerator {
}
} catch (Exception e) {
LOG.error("Could not get JPQL translation for '" + searchExpression + "': "
- + ThrowableUtil.getAllMessages(e, true));
+ + ThrowableUtil.getAllMessages(e, true));
}
}
@@ -503,6 +515,30 @@ public final class CriteriaQueryGenerator {
this.projection = projection;
}
+ /**
+ * The groupBy clause can be set if and only if the projection is altered. The passed argument should not be
+ * prefixed with 'group by'; that part of the query will be auto-generated if the argument is non-null. The
+ * new projection must follow standard rules as they apply to statements with groupBy clauses.
+ */
+ public void setGroupByClause(String groupByClause) {
+ if (groupByClause != null && projection == null) {
+ throw new IllegalArgumentException("Must alter projection before calling setGroupByClause");
+ }
+ this.groupByClause = groupByClause;
+ }
+
+ /**
+ * The having clause can be set if and only if the groupBy clause is set. The passed argument should not be
+ * prefixed with 'having'; that part of the query will be auto-generated if the argument is non-null. The
+ * having clause must follow standard rules as they apply to statements with groupBy clauses.
+ */
+ public void setHavingClause(String havingClause) {
+ if (havingClause != null && groupByClause == null) {
+ throw new IllegalArgumentException("Must add some groupBy clause before calling setHavingClause");
+ }
+ this.havingClause = havingClause;
+ }
+
public Query getQuery(EntityManager em) {
String queryString = getQueryString(false);
Query query = em.createQuery(queryString);
commit 6c5624547aa10d091b6742ecd2a103eadf088a12
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 17 12:01:00 2010 -0400
PageControl.reset should keep pageSize in tact
* pageSize of -1 defines the "unlimited" pager, which has special UI semantics
* without this fix, reset() was turning an unlimited pager into a limited one
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java
index c63bce6..38ec83f 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/util/PageControl.java
@@ -252,21 +252,26 @@ public class PageControl implements Serializable, Cloneable {
}
public void reset() {
+ // allow the pageSize to remain, which keeps unlimited views with unlimited paging
setPageNumber(0);
- setPageSize(15);
this.orderingFields = new LinkedList<OrderingField>();
}
@Override
public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
PageControl that = (PageControl) o;
- if (pageNumber != that.pageNumber) return false;
- if (pageSize != that.pageSize) return false;
- if (!orderingFields.equals(that.orderingFields)) return false;
+ if (pageNumber != that.pageNumber)
+ return false;
+ if (pageSize != that.pageSize)
+ return false;
+ if (!orderingFields.equals(that.orderingFields))
+ return false;
return true;
}
commit 9902586e58d0d833403799d8c98a67649dd29512
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 17 09:43:43 2010 -0400
For Hudson jobs we need to share a repo with the tag-jon-release hudson
job. So, name the repo to something stable, that can be hardwired into
the JON release.sh script.
diff --git a/release.sh b/release.sh
index 7418fd7..10e9362 100755
--- a/release.sh
+++ b/release.sh
@@ -145,7 +145,7 @@ fi
if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
echo "We appear to be running in a Hudson job."
WORKING_DIR="$WORKSPACE"
- MAVEN_LOCAL_REPO_DIR="$HOME/.m2/hudson-$JOB_NAME-repository"
+ MAVEN_LOCAL_REPO_DIR="$HOME/.m2/hudson-release-$RELEASE_TYPE-repository"
MAVEN_SETTINGS_FILE="$HOME/.m2/hudson-$JOB_NAME-settings.xml"
elif [ -z "$WORKING_DIR" ]; then
WORKING_DIR="$HOME/release/rhq"
commit bbc2176b1b913ef76beeef4430358dc11310405a
Author: hudson auto <wnstb(a)yahoo.com>
Date: Wed Jun 16 21:56:59 2010 -0400
[maven-release-plugin] prepare for next development iteration
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 6d440ef..eda9133 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index dbd8dd6..bc7965b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 1077987..2cf950b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 751726e..ee81a94 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 78d1f23..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index f6fadb5..a51f92b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 84dd23f..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 96cbc8e..e0ced84 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0df3808..0911918 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 558b9a2..d47d4c8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index ba389df..e1ce7ef 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index a570e19..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index c721f21..7739177 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index 9e92634..eeb7e81 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 47cb583..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index cee7efe..bc41dc5 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index f917e15..d9f1c1c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index c569283..8942239 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 88ef26e..8b9da9c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 6a09d32..611eb9d 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 643d41e..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index 3068b31..df05645 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 6cd8f92..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index ff3fd88..dcb1f88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index f01ec85..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index a3e6434..783942c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index bdef75c..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index c3fc4fa..3b0dbb8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 5e0a013..33966bd 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 57e79e7..605267f 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 1feb631..910b617 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index a4d9ed6..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index c2acfe1..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index aee0070..3fd11e8 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 6956e3c..bf15866 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 633ff8f..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index b05532d..dd5bc18 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 988e2e3..c0973f3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index b9f3d0c..a62fee8 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 8a0c7c9..3193539 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index bf7fe01..e69bfbc 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index 466b99a..ca33bb7 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index b743122..af75153 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 97c50f4..09839b8 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 8abb60d..73f405e 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 ce9b430..4c44f10 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 86a21ef..0033d1b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 b83824c..61965f2 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 b8bba65..7451668 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index a53f3ad..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index ab30954..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 8b6a170..2b16f4a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 9a96ab0..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 3a96e6d..a6cba32 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 8bcdcea..9c7cc74 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 2dce331..ebdd3da 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 3fd87f6..06c8981 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 7ecbbad..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index cadb656..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 8df64c1..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index 031c90d..d056f74 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index ba37942..28dc9b1 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 762f318..a0721a9 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index e17c9d8..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7006ed8..c37598e 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 851c129..cc160c9 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index f2682e9..b4f9208 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 48651cb..963223b 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 1e8011a..d920440 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 6ee0662..d5aaad5 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 7d98f84..30889f7 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 05ac956..b79645d 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 1c68b9b..f7cf265 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 35fd599..acb08ef 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index eddd3ed..7dd0fde 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 5d79625..65fa7b8 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 7e17c2b..853c020 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 ceb58be..a0ade77 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 54536d9..b9ed2b3 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 f276b7d..b3846fa 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 f1aa8f9..443e524 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 6bc1bfa..ac9885a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index e488d56..d0c9053 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 37d84af..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 75a1aff..1acdb0f 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 4e78da5..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 87ba78d..97b83b0 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 4873dae..85d6105 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1e95ca3..283ab6a 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index daf3133..5a4466c 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index b0c26a5..a190dcd 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 98333bb..8f4e675 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index d0d0d63..0d41574 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7189f74..7719b14 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index fdb421d..2d9d715 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 9c38247..3579496 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 7932012..41df1b8 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 03e2df8..205d5b0 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index cab4269..e299efa 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>3.0.0.GA_QA</version>
+ <version>3.0.0-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 4f886fd..b3d5e87 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>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 9a28ce8..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 07130df..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 88ccd55..ca7c648 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit f2ce2533b3019869a5e9d8ce6a37f0c272cbdb65
Author: hudson auto <wnstb(a)yahoo.com>
Date: Wed Jun 16 21:56:43 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_GA_QA
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..6d440ef 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..dbd8dd6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..1077987 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..751726e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..78d1f23 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..f6fadb5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..84dd23f 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..96cbc8e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..0df3808 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..558b9a2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..ba389df 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..a570e19 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..c721f21 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..9e92634 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..47cb583 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..cee7efe 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..f917e15 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..c569283 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..88ef26e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 611eb9d..6a09d32 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..643d41e 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..3068b31 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..6cd8f92 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..ff3fd88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..f01ec85 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..a3e6434 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..bdef75c 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..c3fc4fa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..5e0a013 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..57e79e7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..1feb631 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..a4d9ed6 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..c2acfe1 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 3fd11e8..aee0070 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..6956e3c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..633ff8f 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index dd5bc18..b05532d 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index c0973f3..988e2e3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index a62fee8..b9f3d0c 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 3193539..8a0c7c9 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index e69bfbc..bf7fe01 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index ca33bb7..466b99a 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index af75153..b743122 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 09839b8..97c50f4 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..8abb60d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 4c44f10..ce9b430 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 0033d1b..86a21ef 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 61965f2..b83824c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 7451668..b8bba65 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..a53f3ad 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..ab30954 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..8b6a170 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..9a96ab0 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..3a96e6d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 9c7cc74..8bcdcea 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 ebdd3da..2dce331 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..3fd87f6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..7ecbbad 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..cadb656 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..8df64c1 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index d056f74..031c90d 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 28dc9b1..ba37942 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..762f318 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..e17c9d8 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..7006ed8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..851c129 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..f2682e9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..48651cb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..1e8011a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..6ee0662 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..7d98f84 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..05ac956 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..1c68b9b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..35fd599 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..eddd3ed 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 65fa7b8..5d79625 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..7e17c2b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 a0ade77..ceb58be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..54536d9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 b3846fa..f276b7d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..f1aa8f9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..6bc1bfa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..e488d56 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..37d84af 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..75a1aff 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..4e78da5 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..87ba78d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..4873dae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1e95ca3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..daf3133 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..b0c26a5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..98333bb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..d0d0d63 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..7189f74 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..fdb421d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..9c38247 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..7932012 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..03e2df8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..cab4269 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</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 b3d5e87..4f886fd 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..9a28ce8 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..07130df 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index ca7c648..88ccd55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 80edbde0361b9652e9b5bc659d57552b8f75a1a9
Merge: 19a417e... 65a5fcf...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Jun 16 11:27:40 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 19a417e69b8900879b720cda795dade68dc5bc81
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Jun 16 11:26:31 2010 -0400
change project version from 3.0.0-SNAPSHOT to 4.0.0-SNAPSHOT
diff --git a/etc/apt/pom.xml b/etc/apt/pom.xml
index a6f6552..0fe6a92 100644
--- a/etc/apt/pom.xml
+++ b/etc/apt/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/etc/samples/perspectives/sample-perspective/app/pom.xml b/etc/samples/perspectives/sample-perspective/app/pom.xml
index eb531fc..67382f9 100644
--- a/etc/samples/perspectives/sample-perspective/app/pom.xml
+++ b/etc/samples/perspectives/sample-perspective/app/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
@@ -28,7 +28,7 @@
<dependency>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-base-perspective-war</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>${project.parent.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@@ -43,7 +43,7 @@
<dependency>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-base-perspective-war</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>${project.parent.version}</version>
<type>war</type>
</dependency>
@@ -53,7 +53,7 @@
<dependency>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-base-perspective-jar</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>${project.parent.version}</version>
</dependency>
<!-- Deps with provided scope are not transitive, so we need to specify
@@ -92,3 +92,4 @@
</build>
</project>
+
diff --git a/etc/samples/perspectives/sample-perspective/perspective/pom.xml b/etc/samples/perspectives/sample-perspective/perspective/pom.xml
index 206c6e6..1ffe65f 100644
--- a/etc/samples/perspectives/sample-perspective/perspective/pom.xml
+++ b/etc/samples/perspectives/sample-perspective/perspective/pom.xml
@@ -10,7 +10,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
@@ -22,7 +22,7 @@
<description>A Sample Perspective showing extension points and filters</description>
<properties>
- <rhq.version>3.0.0-SNAPSHOT</rhq.version>
+ <rhq.version>${project.parent.version}</rhq.version>
</properties>
<dependencies>
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index 72bca97..6eed8b4 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-cli-tests</artifactId>
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..0833b2a 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..7f7127c 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..d69311c 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..c6a6dab 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..ae391f8 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..f52e92d 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..4f27a44 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..700912d 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..21ebfa6 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..b3a20e2 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..d9c8d4c 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..bc886fe 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..dfcdfde 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..2e5c467 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..b895d04 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..405eaed 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..03f3932 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..342369a 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..93931da 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 611eb9d..c917be9 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..d3c0764 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..57a30b9 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..f075eb1 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..40ba05f 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..072ac8f 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..24bb252 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..095ada1 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..89f283c 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..ee90d58 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..01ed78b 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..3879afd 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..393d2e9 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..9a2a929 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6ae155a..d51c61d 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -1,13 +1,11 @@
-<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">
+<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>
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..00f7835 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..e08f58d 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/license-gen/jar/pom.xml b/modules/enterprise/server/license-gen/jar/pom.xml
index ca17646..93e7d8a 100644
--- a/modules/enterprise/server/license-gen/jar/pom.xml
+++ b/modules/enterprise/server/license-gen/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/license-gen/maven-plugin/pom.xml b/modules/enterprise/server/license-gen/maven-plugin/pom.xml
index bf1c453..47d159a 100644
--- a/modules/enterprise/server/license-gen/maven-plugin/pom.xml
+++ b/modules/enterprise/server/license-gen/maven-plugin/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index ad4a632..b8556e0 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 9f1a05c..ac2e280 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 7d884ca..c3f248c 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 c9df693..0b7664a 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 924973d..e6019b8 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 70c948e..f13e951 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-scriptlang/pom.xml b/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
index 45d61df..ca703ae 100644
--- a/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
+++ b/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
@@ -2,16 +2,17 @@
<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/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
- <modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-scriptlang</artifactId>
- <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Script lang Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-sms/pom.xml b/modules/enterprise/server/plugins/alert-sms/pom.xml
index 901a11d..57175db 100644
--- a/modules/enterprise/server/plugins/alert-sms/pom.xml
+++ b/modules/enterprise/server/plugins/alert-sms/pom.xml
@@ -2,16 +2,17 @@
<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/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
- <modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-sms</artifactId>
- <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server SMS-Sender Alert Plugin</name>
@@ -197,4 +198,4 @@
</profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index f8a5704..c1689b3 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 cb7123b..09f2ddc 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..45280cd 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 4a15ba1..abb2e5d 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 0033d1b..621f3e5 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 61965f2..da8e8e7 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 7451668..8d1e368 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..f5fbeb1 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..b7f3be7 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml b/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml
index 19af416..d548a5e 100644
--- a/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/policy/app/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml
index 2039f89..9a45ada 100644
--- a/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/policy/perspective/pom.xml
@@ -10,7 +10,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/policy/pom.xml b/modules/enterprise/server/plugins/perspectives/policy/pom.xml
index 87b03cb..aef65bf 100644
--- a/modules/enterprise/server/plugins/perspectives/policy/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/policy/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..07be817 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..c1187d1 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..9ada86c 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 9c7cc74..ab4f217 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 ebdd3da..243eed4 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index 3c03600..fe8638e 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..24dd98a 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..e933c81 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..786cead 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..5990106 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f9dde4c..e637aad 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 4a31a97..940e46d 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..154fc0f 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..99ece1c 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/jopr/pom.xml b/modules/jopr/pom.xml
index d96100b..530a044 100644
--- a/modules/jopr/pom.xml
+++ b/modules/jopr/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
@@ -37,7 +37,7 @@
<properties>
<rhq.groupId>org.rhq</rhq.groupId>
- <rhq.version>3.0.0-SNAPSHOT</rhq.version>
+ <rhq.version>${project.parent.version}</rhq.version>
<rhq.product.name>RHQ</rhq.product.name>
<rhq.earName>rhq.ear</rhq.earName>
<!-- the below path is relative to {rhq-trunk} -->
diff --git a/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml b/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
index 143984d..c198d6c 100644
--- a/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
+++ b/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..0370302 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..d7e6d8a 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..fb850c5 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..72d9cc4 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index 4f185f4..cb324cc 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
@@ -242,4 +242,4 @@
</profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..1082bb3 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..9371766 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..c72f79a 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..0b85a57 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..d783ffc 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hardware/pom.xml b/modules/plugins/hardware/pom.xml
index 9050b7e..29d6d11 100644
--- a/modules/plugins/hardware/pom.xml
+++ b/modules/plugins/hardware/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..a7bac31 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..ef32374 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index de89333..68eae1a 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 853c020..ad90e83 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iptables/pom.xml b/modules/plugins/iptables/pom.xml
index d2b6ff6..ce6d7b8 100644
--- a/modules/plugins/iptables/pom.xml
+++ b/modules/plugins/iptables/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index 02e34cd..def88d2 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -9,7 +9,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
@@ -19,11 +19,6 @@
<name>RHQ IRC Server Plugin</name>
<description>Remote monitoring of IRC repos</description>
- <properties>
- <scm.module.path>TODO</scm.module.path>
- <rhq.version>3.0.0-SNAPSHOT</rhq.version> <!-- TODO adjust, see above too -->
- </properties>
-
<build>
<plugins>
<plugin>
@@ -172,7 +167,6 @@
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
-
<dependency>
<groupId>pircbot</groupId>
diff --git a/modules/plugins/jboss-as-5/pom.xml b/modules/plugins/jboss-as-5/pom.xml
index a0ade77..2766efd 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..31d5fbc 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 b3846fa..b09a9aa 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 443e524..e9dca27 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jdbctrace/pom.xml b/modules/plugins/jdbctrace/pom.xml
index b21740c..c7ab30c 100644
--- a/modules/plugins/jdbctrace/pom.xml
+++ b/modules/plugins/jdbctrace/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jira/pom.xml b/modules/plugins/jira/pom.xml
index ac4ec8d..8e0a879 100644
--- a/modules/plugins/jira/pom.xml
+++ b/modules/plugins/jira/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..83e3030 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index bc182b3..a1a61cf 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/lsof/pom.xml b/modules/plugins/lsof/pom.xml
index c579da0..0667659 100644
--- a/modules/plugins/lsof/pom.xml
+++ b/modules/plugins/lsof/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..5152236 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..67d24a0 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/onewire/pom.xml b/modules/plugins/onewire/pom.xml
index bd59655..8b2fa39 100644
--- a/modules/plugins/onewire/pom.xml
+++ b/modules/plugins/onewire/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..be37d2b 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..136770c 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..5597a30 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..4859ad7 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..2130abe 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..beab355 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/raw-config-test/pom.xml b/modules/plugins/raw-config-test/pom.xml
index c3750ed..7489eff 100644
--- a/modules/plugins/raw-config-test/pom.xml
+++ b/modules/plugins/raw-config-test/pom.xml
@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
+
<modelVersion>4.0.0</modelVersion>
+
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
+
<groupId>org.rhq.plugins</groupId>
<artifactId>raw-config-test</artifactId>
<name>raw-config-test</name>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..3aa3bb6 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..d0ef9fe 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..a338a98 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..05cb816 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index 3ca3e1d..ed7473b 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/services/pom.xml b/modules/plugins/services/pom.xml
index 525335c..0f84fe1 100644
--- a/modules/plugins/services/pom.xml
+++ b/modules/plugins/services/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..89178cc 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..a68e444 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..0353f4f 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..4c93bb3 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..9adaca6 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-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 b3d5e87..4f1c4c3 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>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index e62f28b..c2550aa 100644
--- a/modules/plugins/virt/pom.xml
+++ b/modules/plugins/virt/pom.xml
@@ -4,10 +4,9 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
-
<groupId>org.rhq</groupId>
<artifactId>rhq-virt-plugin</artifactId>
<packaging>jar</packaging>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..e363555 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..5f96131 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index ae5b534..5980dc2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 65a5fcf6342439fcf127529c7b2f1bba5f05f4a6
Merge: 687cb82... 4c33a12...
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Wed Jun 16 16:07:14 2010 +0200
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 687cb82196f410a5b512c5f7c69da6e85c5bb3cb
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Wed Jun 16 16:04:13 2010 +0200
BZ 601880 - JBossAS5 Plugin - ApplicationServerOperationsDelegate uses old plugin configuration after plugin configuration was updated.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
index e4a0ec9..e21153e 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
@@ -190,7 +190,7 @@ public class ApplicationServerComponent implements ResourceComponent, ProfileSer
public void start(ResourceContext resourceContext) {
this.resourceContext = resourceContext;
-
+ this.operationDelegate = new ApplicationServerOperationsDelegate(this);
// Connect to the JBAS instance's Profile Service and JMX MBeanServer.
connectToProfileService();
initializeEmsConnection();
@@ -486,10 +486,7 @@ public class ApplicationServerComponent implements ResourceComponent, ProfileSer
public OperationResult invokeOperation(String name, Configuration parameters) throws InterruptedException,
Exception {
- if (this.operationDelegate == null) {
- this.operationDelegate = new ApplicationServerOperationsDelegate(this, this.resourceContext
- .getSystemInformation());
- }
+
ApplicationServerSupportedOperations operation = Enum.valueOf(ApplicationServerSupportedOperations.class, name
.toUpperCase());
return this.operationDelegate.invoke(operation, parameters);
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerOperationsDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerOperationsDelegate.java
index 643c9cc..5f7ae4f 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerOperationsDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerOperationsDelegate.java
@@ -37,7 +37,6 @@ import org.mc4j.ems.connection.bean.parameter.EmsParameter;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
-import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.pluginapi.operation.OperationResult;
import org.rhq.core.pluginapi.util.ProcessExecutionUtility;
import org.rhq.core.system.ProcessExecution;
@@ -94,25 +93,13 @@ public class ApplicationServerOperationsDelegate {
*/
private ApplicationServerComponent serverComponent;
- private Configuration pluginConfig;
-
- private ResourceContext resourceContext;
-
private File configPath;
- /**
- * Passed in from the resource context for making process calls.
- */
- private SystemInfo systemInfo;
-
// Constructors --------------------------------------------
public ApplicationServerOperationsDelegate(
- ApplicationServerComponent serverComponent, SystemInfo systemInfo) {
+ ApplicationServerComponent serverComponent) {
this.serverComponent = serverComponent;
- this.resourceContext = serverComponent.getResourceContext();
- this.pluginConfig = this.resourceContext.getPluginConfiguration();
- this.systemInfo = systemInfo;
}
// Public --------------------------------------------
@@ -172,7 +159,7 @@ public class ApplicationServerOperationsDelegate {
result.setErrorMessage("The server is already started.");
return result;
}
-
+ Configuration pluginConfig = serverComponent.getResourceContext().getPluginConfiguration();
File startScriptFile = getStartScriptPath();
validateScriptFile(
startScriptFile,
@@ -233,7 +220,8 @@ public class ApplicationServerOperationsDelegate {
if (log.isDebugEnabled()) {
log.debug("About to execute the following process: [" + processExecution + "]");
}
- ProcessExecutionResults results = this.systemInfo
+ SystemInfo systemInfo = serverComponent.getResourceContext().getSystemInformation();
+ ProcessExecutionResults results = systemInfo
.executeProcess(processExecution);
logExecutionResults(results);
@@ -258,6 +246,7 @@ public class ApplicationServerOperationsDelegate {
}
private String getConfigurationSet() {
+ Configuration pluginConfig = serverComponent.getResourceContext().getPluginConfiguration();
configPath = resolvePathRelativeToHomeDir(getRequiredPropertyValue(
pluginConfig,
ApplicationServerPluginConfigurationProperties.SERVER_HOME_DIR));
@@ -311,6 +300,7 @@ public class ApplicationServerOperationsDelegate {
return result;
}
+ Configuration pluginConfig = serverComponent.getResourceContext().getPluginConfiguration();
ApplicationServerShutdownMethod shutdownMethod = Enum
.valueOf(
ApplicationServerShutdownMethod.class,
@@ -343,6 +333,7 @@ public class ApplicationServerOperationsDelegate {
validateScriptFile(
shutdownScriptFile,
ApplicationServerPluginConfigurationProperties.SHUTDOWN_SCRIPT_CONFIG_PROP);
+ Configuration pluginConfig = serverComponent.getResourceContext().getPluginConfiguration();
String prefix = pluginConfig
.getSimple(
ApplicationServerPluginConfigurationProperties.SCRIPT_PREFIX_CONFIG_PROP)
@@ -386,7 +377,8 @@ public class ApplicationServerOperationsDelegate {
log.debug("About to execute the following process: ["
+ processExecution + "]");
}
- ProcessExecutionResults results = this.systemInfo
+ SystemInfo systemInfo = serverComponent.getResourceContext().getSystemInformation();
+ ProcessExecutionResults results = systemInfo
.executeProcess(processExecution);
logExecutionResults(results);
@@ -413,6 +405,7 @@ public class ApplicationServerOperationsDelegate {
* @return success message if no errors are encountered
*/
private String shutdownViaJmx() {
+ Configuration pluginConfig = serverComponent.getResourceContext().getPluginConfiguration();
String mbeanName = pluginConfig
.getSimple(
ApplicationServerPluginConfigurationProperties.SHUTDOWN_MBEAN_CONFIG_PROP)
@@ -604,13 +597,15 @@ public class ApplicationServerOperationsDelegate {
*/
@Nullable
public File getJavaHomePath() {
- String javaHomePath = this.pluginConfig.getSimpleValue(ApplicationServerPluginConfigurationProperties.JAVA_HOME,
+ Configuration pluginConfig = serverComponent.getResourceContext().getPluginConfiguration();
+ String javaHomePath = pluginConfig.getSimpleValue(ApplicationServerPluginConfigurationProperties.JAVA_HOME,
null);
File javaHome = (javaHomePath != null) ? new File(javaHomePath) : null;
return javaHome;
}
void validateJavaHomePathProperty() {
+ Configuration pluginConfig = serverComponent.getResourceContext().getPluginConfiguration();
String javaHome = pluginConfig.getSimple(
ApplicationServerPluginConfigurationProperties.JAVA_HOME)
.getStringValue();
commit f6fa0f6e0847b28c67be82f8cf4159f32fd2937d
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Wed Jun 16 09:53:16 2010 -0400
Remove unused updates tab from BundleVersionView
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionView.java
index 0680b40..663f06c 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/version/BundleVersionView.java
@@ -79,7 +79,7 @@ public class BundleVersionView extends VLayout implements BookmarkableView {
tabs.addTab(createFilesTab());
- tabs.addTab(createUpdateHistoryTab());
+// tabs.addTab(createUpdateHistoryTab());
addMember(new BackButton("Back to Bundle: " + version.getBundle().getName(),"Bundles/Bundle/" + version.getBundle().getId()));
commit ae1e5c433aa686093e90b93b952c3ca983ca0efe
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 16 08:50:41 2010 -0400
BZ-586503: restore EventManageRemote methods for compatibility with previous relases
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
index f49a11a..5ceec84 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
@@ -425,4 +425,23 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
return queryRunner.execute();
}
+ /*
+ * Methods kept around because they are part of the remote interface, but all should be treated as deprecated
+ */
+
+ public EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets) {
+ return getSeverityBucketsByContext(subject, EntityContext.forResource(resourceId), begin, end, numBuckets);
+ }
+
+ public EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
+ long begin, long end, int numBuckets) {
+ return getSeverityBucketsByContext(subject, EntityContext.forAutoGroup(parentResourceId, resourceTypeId),
+ begin, end, numBuckets);
+ }
+
+ public EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
+ int numBuckets) {
+ return getSeverityBucketsByContext(subject, EntityContext.forGroup(resourceGroupId), begin, end, numBuckets);
+ }
+
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
index 3e4164f..97d63bc 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
@@ -96,14 +96,22 @@ public interface EventManagerLocal {
PageList<EventComposite> findEventCompositesByCriteria(Subject subject, EventCriteria criteria);
+ EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
+ int bucketCount);
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
- int bucketCount);
-
PageList<Event> findEventsByCriteria(Subject subject, EventCriteria criteria);
+
+ EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
+
+ EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
+ long begin, long end, int numBuckets);
+
+ EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
+ int numBuckets);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
index b227152..424a529 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
@@ -29,7 +29,6 @@ import org.rhq.core.domain.criteria.EventCriteria;
import org.rhq.core.domain.event.Event;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.system.ServerVersion;
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
@@ -38,9 +37,26 @@ import org.rhq.enterprise.server.system.ServerVersion;
public interface EventManagerRemote {
@WebMethod
- EventSeverity[] getSeverityBucketsByContext( //
+ EventSeverity[] getSeverityBuckets( //
@WebParam(name = "subject") Subject subject, //
- @WebParam(name = "context") EntityContext context, //
+ @WebParam(name = "resourceId") int resourceId, //
+ @WebParam(name = "begin") long begin, //
+ @WebParam(name = "end") long end, //
+ @WebParam(name = "numBuckets") int numBuckets);
+
+ @WebMethod
+ EventSeverity[] getSeverityBucketsForAutoGroup( //
+ @WebParam(name = "subject") Subject subject, //
+ @WebParam(name = "parentResourceId") int parentResourceId, //
+ @WebParam(name = "resourceTypeId") int resourceTypeId, //
+ @WebParam(name = "begin") long begin, //
+ @WebParam(name = "end") long end, //
+ @WebParam(name = "numBuckets") int numBuckets);
+
+ @WebMethod
+ EventSeverity[] getSeverityBucketsForCompGroup( //
+ @WebParam(name = "subject") Subject subject, //
+ @WebParam(name = "resourceGroupId") int resourceGroupId, //
@WebParam(name = "begin") long begin, //
@WebParam(name = "end") long end, //
@WebParam(name = "numBuckets") int numBuckets);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index d6bb99c..2892d58 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -126,7 +126,6 @@ import org.rhq.enterprise.server.auth.SubjectException;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.authz.RoleManagerLocal;
import org.rhq.enterprise.server.bundle.BundleManagerLocal;
-import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
import org.rhq.enterprise.server.configuration.ConfigurationUpdateStillInProgressException;
import org.rhq.enterprise.server.content.AdvisoryException;
@@ -722,9 +721,19 @@ public class WebservicesManagerBean implements WebservicesRemote {
return eventManager.findEventsByCriteria(subject, criteria);
}
- public EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
+ public EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets) {
+ return eventManager.getSeverityBuckets(subject, resourceId, begin, end, numBuckets);
+ }
+
+ public EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
+ long begin, long end, int numBuckets) {
+ return eventManager.getSeverityBucketsForAutoGroup(subject, parentResourceId, resourceTypeId, begin, end,
+ numBuckets);
+ }
+
+ public EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
int numBuckets) {
- return eventManager.getSeverityBucketsByContext(subject, context, begin, end, numBuckets);
+ return eventManager.getSeverityBucketsForCompGroup(subject, resourceGroupId, begin, end, numBuckets);
}
//EVENTMANAGER: END ----------------------------------
commit 4c33a122281757a65c2398e4570adba753224cbb
Merge: dc7af8a... 9c9a05b...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Wed Jun 16 11:35:48 2010 +0200
Merge branch 'translations'
commit 9c9a05b1cb658d480638fcea86df90e892a11bfc
Author: Heiko W. Rupp <hwr(a)pilhuhn.de>
Date: Thu Jun 3 11:17:47 2010 +0200
Move non-en properties outside the java class and into .properties files
diff --git a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/i18n/InstallerI18NResourceKeys.java b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/i18n/InstallerI18NResourceKeys.java
index be8ddc5..83e5d73 100644
--- a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/i18n/InstallerI18NResourceKeys.java
+++ b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/i18n/InstallerI18NResourceKeys.java
@@ -51,290 +51,182 @@ public interface InstallerI18NResourceKeys {
@I18NMessages( { @I18NMessage(locale = "en", value = "${product.help.doc.root}") })
String HELP_DOC_ROOT = "helpDocRoot";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Create Database/User"),
- @I18NMessage(locale = "de", value = "Datenbank mit -benutzer anlegen") })
+ @I18NMessage(locale = "en", value = "Create Database/User")
String CREATE_DATABASE_USER_TITLE = "createDatabaseUserTitle";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Enter your database administrator's information here and press the button to create a database and user."),
- @I18NMessage(locale = "de", value = "Geben Sie die Administratoreninformation hier ein, und clicken Sie den Button, um eine Datenbank mit Benutzer anzulegen.") })
+ @I18NMessage(locale = "en", value = "Enter your database administrator's information here and press the button to create a database and user.")
String CREATE_DATABASE_USER_HELP = "createDatabaseUserHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "DB Connection URL"),
- @I18NMessage(locale = "de", value = "URL der Datenbankverbindung") })
+ @I18NMessage(locale = "en", value = "DB Connection URL")
String ADMIN_CONNECTION_URL = "adminConnectionUrl";
- @I18NMessages( { @I18NMessage(locale = "en", value = "DB Admin Username"),
- @I18NMessage(locale = "de", value = "Benutzername des Datenbankadministrators") })
+ @I18NMessage(locale = "en", value = "DB Admin Username")
String ADMIN_USERNAME = "adminUsername";
- @I18NMessages( { @I18NMessage(locale = "en", value = "DB Admin Password"),
- @I18NMessage(locale = "de", value = "Passwort des Datenbankadministrators") })
+ @I18NMessage(locale = "en", value = "DB Admin Password")
String ADMIN_PASSWORD = "adminPassword";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Usage of the selected database is for demo purposes only. It should not be used in production installations. No support is available for installations that use H2 or MS SQL Server for their database."),
- @I18NMessage(locale = "de", value = "Unterstützung für diese Datenbank ist experimentell und ist nur für Demo-und Testzwecke geeignet.") })
+ @I18NMessage(locale = "en", value = "Usage of the selected database is for demo purposes only. It should not be used in production installations. No support is available for installations that use H2 or MS SQL Server for their database.")
String EXPERIMENTAL_DB = "experimentalDb";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Create a database/user if needed"),
- @I18NMessage(locale = "de", value = "DB mit -benutzer anlegen, falls nötig") })
+ @I18NMessage(locale = "en", value = "Create a database/user if needed")
String CREATE_DATABASE_NOTE = "createDatabaseNote";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Create Database"),
- @I18NMessage(locale = "de", value = "Datenbank anlegen") })
+ @I18NMessage(locale = "en", value = "Create Database")
String CREATE_DATABASE_BUTTON = "createDatabaseButton";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Confirm database settings"),
- @I18NMessage(locale = "de", value = "Überprüfen Sie, dass die Einstellungen für die Datenbank gültig sind") })
+ @I18NMessage(locale = "en", value = "Confirm database settings")
String TEST_DATABASE_NOTE = "testDatabaseNote";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Test Connection"),
- @I18NMessage(locale = "de", value = "Verbindung testen") })
+ @I18NMessage(locale = "en", value = "Test Connection")
String TEST_DATABASE_BUTTON = "testDatabaseButton";
- @I18NMessages( { @I18NMessage(locale = "en", value = "A database schema already exists. What do you want to do?"),
- @I18NMessage(locale = "de", value = "Das gewünschte Datenbankschema existiert schon. Was wollen Sie machen?") })
+ @I18NMessage(locale = "en", value = "A database schema already exists. What do you want to do?")
String EXISTING_SCHEMA_QUESTION = "existingSchemaQuestion";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Overwrite (lose existing data)"),
- @I18NMessage(locale = "de", value = "Überschreiben (vorhandene Daten gehen verloren)") })
+ @I18NMessage(locale = "en", value = "Overwrite (lose existing data)")
String EXISTING_SCHEMA_OPTION_OVERWRITE = "existingSchemaAnswerOverwrite";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Keep (maintain existing data)"),
- @I18NMessage(locale = "de", value = "Behalten (existierende Daten werden aktualisiert)") })
+ @I18NMessage(locale = "en", value = "Keep (maintain existing data)")
String EXISTING_SCHEMA_OPTION_KEEP = "existingSchemaAnswerUpgrade";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Skip (leave database as-is)"),
- @I18NMessage(locale = "de", value = "Umgehen (Datenbank bleibt wie sie ist)") })
+ @I18NMessage(locale = "en", value = "Skip (leave database as-is)")
String EXISTING_SCHEMA_OPTION_SKIP = "existingSchemaAnswerSkip";
- @I18NMessages( { @I18NMessage(locale = "en", value = "The {0} property value was an invalid number [{1}]"),
- @I18NMessage(locale = "de", value = "[{1}] ist ein ungültiger Zahlenwert für die Eigenschaft {0}"),
- @I18NMessage(locale = "fr", value = "La valeur du paramètre {0} n'est pas un nombre valide [{1}]") })
+ @I18NMessage(locale = "en", value = "The {0} property value was an invalid number [{1}]")
String INVALID_NUMBER = "invalidNumber";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "The {0} boolean property value must be either 'true' or 'false' but was [{1}]"),
- @I18NMessage(locale = "de", value = "Die boolesche Eigenschaft {0} muss entweder 'true' oder 'false' sein, war aber [{1}]"),
- @I18NMessage(locale = "fr", value = "La valeur booléenne du paramètre {0} devait être 'true' ou 'false', mais était [{1}]") })
+ @I18NMessage(locale = "en", value = "The {0} boolean property value must be either 'true' or 'false' but was [{1}]")
String INVALID_BOOLEAN = "invalidBoolean";
- @I18NMessages( { @I18NMessage(locale = "en", value = "The {0} property value must be set."),
- @I18NMessage(locale = "de", value = "Die Eigenschaft {0} muss gesetzt werden.") })
+ @I18NMessage(locale = "en", value = "The {0} property value must be set.")
String INVALID_STRING = "invalidString";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Failed to save properties and fully deploy - ${product.shortName} Server will not function properly\\n\\\nCause: {0}"),
- @I18NMessage(locale = "de", value = "Konnte die Einstellungen nicht speichern und den Server vollständig starten.\\n\\\n"
- + "Der ${product.shortName} Server wird nicht korrekt funktionieren.\\n\\\nGrund: {0}"),
- @I18NMessage(locale = "fr", value = "Impossible de sauvegarder les paramètres et de déployer entièrement - RHQ Server ne fonctionnera pas correctement\\n\\\nCause: {0}") })
+ @I18NMessage(locale = "en", value = "Failed to save properties and fully deploy - ${product.shortName} Server will not function properly\\n\\\nCause: {0}")
String SAVE_FAILURE = "saveFailure";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Error"),
- @I18NMessage(locale = "de", value = "Fehler"),
- @I18NMessage(locale = "fr", value = "Erreur")})
+ @I18NMessage(locale = "en", value = "Error")
String ERROR_LABEL = "errorLabel";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Could not save the settings for some reason."),
- @I18NMessage(locale = "de", value = "Kann die Einstellungen nicht sichern"),
- @I18NMessage(locale = "fr", value = "Impossible de sauvegarder les paramètres pour une raison inconnue")})
+ @I18NMessage(locale = "en", value = "Could not save the settings for some reason.")
String SAVE_ERROR = "saveError";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Could not connect to the database with the given database settings. \\n\\\n"
- + "Please check the database settings and make sure your database is running."),
- @I18NMessage(locale = "de", value = "Eine Verbindung zur Datenbank ist mit den gebenen Einstellungen für die Datenbank nicht möglich. \\n\\\n"
- + "Bitte überprüfen Sie die Einstellungen und stellen Sie sicher, dass die Datenbak aktiv ist"),
- @I18NMessage(locale = "fr", value = "Impossible de se connecter à la base de données avec les paramètres donnés. \\n\\\n"
- + "Veuillez vérifier les paramètres et que la base de données est opérationnelle.") })
+ @I18NMessage(locale = "en", value = "Could not connect to the database with the given database settings. \\n\\\n"
+ + "Please check the database settings and make sure your database is running.")
String INVALID_DATABASE_SETTINGS = "invalidDatabaseSettings";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "These are the configuration settings for this ${product.shortName} Server installation. \\n\\\n"
+ @I18NMessage(locale = "en", value = "These are the configuration settings for this ${product.shortName} Server installation. \\n\\\n"
+ "You may customize some, all or none as required. Click on the setting name for setting-specific help. Changes to settings marked as \"Restart Required\" \\n\\\n"
- + "will not take effect until after restarting the server. In this case restart the server immediately after successful installation."),
- @I18NMessage(locale = "de", value = "Diese Seite zeigt Ihnen die Konfigurationseinstellungen \\n\\\n"
- + "für die Installation des ${product.shortName} Servers. Sie können keinen, einige oder alle\\n\\\n"
- + "dieser Werte nach Ihren Anforderungen ändern. Sie können auf den Namen einer Einstellung klicken, um direkt weitere Informationen zu erhalten.\\n\\\n"
- + "Bitte beachten sie, dass \\n\\\n"
- + "einige dieser Änderungen erst nach einem Neustart des Servers aktiv werden. \\n\\\n"
- + "Wenn Sie diese Einstellungen ändern, müssen Sie den Server sofort neu starten, damit \\n\\\n"
- + "sie aufgegriffen werden."),
- @I18NMessage(locale = "fr", value = "Cette page vous montre les valeurs actuelles de la configuration \\n\\\n"
- + "pour cette installation de RHQ Server. Vous pouvez en changez certains, tous, ou aucun \\n\\\n"
- + "d'entre elles pour vos besoin personnels. Veuillez noter que certains de \\n\\\n"
- + "ces changements ne prendront place qu'après un redémarrage du \\n\\\n"
- + "serveur. Si vous changez l'une de ces valeurs, vous devrez \\n\\\n"
- + "immediatement arrêter et redémarrer le serveur pour appliquer les changements.")})
+ + "will not take effect until after restarting the server. In this case restart the server immediately after successful installation.")
String SET_PROPERTIES_INSTRUCTIONS = "setPropertiesInstructions";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Click this checkbox to see both standard and advanced configuration settings."),
- @I18NMessage(locale = "de", value = "Markieren Sie diese Checkbox, um die standardmäßigen und weiterführende Einstellungen anzuzeigen.") })
+ @I18NMessage(locale = "en", value = "Click this checkbox to see both standard and advanced configuration settings.")
String ADVANCED_SETTINGS_INSTRUCTIONS = "advancedSettingsInstructions";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Press the 'Production Installation' button for a normal installation.\\n\\\n"
+ @I18NMessage(locale = "en", value = "Press the 'Production Installation' button for a normal installation.\\n\\\n"
+ "Press the 'Embedded Installation' button to quickly create a complete environment with the help of the embedded database and embedded agent. "
- + "The embedded installation is for demonstration and evaluation purposes ONLY!"),
- @I18NMessage(locale = "de", value = "Drücken Sie die 'Produktion Installation'-Taste für eine normale Installation durchzuführen.\\n\\\n"
- + "Drücken Sie die 'Embedded Installation'-Taste, um schnell eine vollständige Umgebung mit Hilfe der eingebetteten Datenbank und Embedded Agenten zu erstellen. "
- + "Die Embedded-Installation ist nur für Demonstrations- und Evaluierungszwecke geeignet!") })
+ + "The embedded installation is for demonstration and evaluation purposes ONLY!")
String INSTALL_BUTTONS_TEXT = "installButtonsText";
- @I18NMessages( { @I18NMessage(locale = "en", value = "-- or --"), @I18NMessage(locale = "de", value = "-- oder --") })
+ @I18NMessage(locale = "en", value = "-- or --")
String OR_TEXT = "orText";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Embedded Installation"),
- @I18NMessage(locale = "de", value = "Embedded Installation") })
+ @I18NMessage(locale = "en", value = "Embedded Installation")
String SAVE_EMBEDDED_MODE = "saveEmbeddedMode";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Database Settings define the database configured for this installation. All are required. Use the \"Test Connection\" button to validate the settings."),
- @I18NMessage(locale = "de", value = "Die Datenbankeinstellungen definieren die Datenbank für diese Installation. Alle Einstellungen werden benötigt.\\n\\\n"
- + "Klicken Sie auf den \"Verbindung testen\" Button, um die Einstellungen zu validieren.") })
+ @I18NMessage(locale = "en", value = "Database Settings define the database configured for this installation. All are required. Use the \"Test Connection\" button to validate the settings.")
String DATABASE_SETTINGS_INSTRUCTIONS = "databaseSettingsInstructions";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Installation Settings define the required server endpoint for this installation."),
- @I18NMessage(locale = "de", value = "Diese Einstellungen definieren den notwendigen Server-Endpunkt für diese Installation.") })
+ @I18NMessage(locale = "en", value = "Installation Settings define the required server endpoint for this installation.")
String INSTALL_SETTINGS_INSTRUCTIONS = "installSettingsInstructions";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "If performing an upgrade or re-installation then select from the list of registered servers: "),
- @I18NMessage(locale = "de", value = "Wählen Sie aus der Liste der registrierten Server, wenn Sie ein Upgrade oder eine Neuinstallation durchführen.") })
+ @I18NMessage(locale = "en", value = "If performing an upgrade or re-installation then select from the list of registered servers: ")
String INSTALL_SETTINGS_NOTE_1 = "installSettingsNote1";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "If installing a new server enter the server endpoint settings below:"),
- @I18NMessage(locale = "de", value = "Geben Sie den Serverendpunkt unten ein, wenn Sie eine Neuinstallation durchführen:") })
+ @I18NMessage(locale = "en", value = "If installing a new server enter the server endpoint settings below:")
String INSTALL_SETTINGS_NOTE_2 = "installSettingsNote2";
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Server Settings configure the server for this installation. All server settings are required."),
- @I18NMessage(locale = "de", value = "Diese Servereinstellungen konfigurieren den Server für diese Installation. Alle Einstellungen werden benötigt.") })
+ @I18NMessage(locale = "en", value = "Server Settings configure the server for this installation. All server settings are required.")
String SERVER_SETTINGS_INSTRUCTIONS = "serverSettingsInstructions";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Install Server!"),
- @I18NMessage(locale = "de", value = "Server installieren!"),
- @I18NMessage(locale = "fr", value = "Installez ${product.shortName} Server!")})
+ @I18NMessage(locale = "en", value = "Install Server!")
String SAVE = "save";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Yes"), @I18NMessage(locale = "de", value = "Ja"), @I18NMessage(locale = "fr", value = "Oui") })
+ @I18NMessage(locale = "en", value = "Yes")
String YES_STRING = "yesString";
- @I18NMessages( { @I18NMessage(locale = "en", value = "No"), @I18NMessage(locale = "de", value = "Nein"), @I18NMessage(locale = "fr", value = "Non") })
+ @I18NMessage(locale = "en", value = "No")
String NO_STRING = "noString";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Property Name"),
- @I18NMessage(locale = "de", value = "Eigenschaft") ,
- @I18NMessage(locale = "fr", value = "Propriété") })
+ @I18NMessage(locale = "en", value = "Property Name")
String PROPERTY_NAME = "propertyName";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Value"), @I18NMessage(locale = "de", value = "Wert"), @I18NMessage(locale = "fr", value = "Valeur") })
+ @I18NMessage(locale = "en", value = "Value")
String VALUE = "value";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Requires Restart?"),
- @I18NMessage(locale = "de", value = "Neustart erforderlich?"),
- @I18NMessage(locale = "fr", value = "Redémarrage nécessaire?")})
+ @I18NMessage(locale = "en", value = "Requires Restart?")
String REQUIRES_RESTART = "requiresRestart";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Welcome to ${product.shortName}!"),
- @I18NMessage(locale = "de", value = "Willkommen bei ${product.shortName}!"),
- @I18NMessage(locale = "fr", value = "Bienvenue sur ${product.shortName}!")})
+ @I18NMessage(locale = "en", value = "Welcome to ${product.shortName}!")
String WELCOME_TITLE = "welcomeTitle";
- @I18NMessages( {
@I18NMessage(locale = "en", value = "You have reached the ${product.shortName} Installer. Use this page \\n\\\n"
+ "to install and configure the ${product.shortName} Server. \\n\\\n"
- + "Once complete you will be able to log on and use ${product.shortName}."),
- @I18NMessage(locale = "de", value = "Willkommen beim Installationsprogramm von ${product.shortName}. Mit diesem können Sie \\n\\\n"
- + "${product.shortName} installieren und konfigurieren. \\n\\\n"
- + "Nachdem dies geschehen ist, können Sie sich einloggen und mit ${product.shortName} arbeiten"),
- @I18NMessage(locale = "fr", value = "Voici le programme d'installation de ${product.shortName}. Vous allez utiliser cette page \\n\\\n"
- + "pour compléter l'installation et configurer ${product.shortName} Server. \\n\\\n"
- + "Une fois complétée, vous pourrez vous identifier et commencer à utiliser ${product.shortName}") })
+ + "Once complete you will be able to log on and use ${product.shortName}.")
String WELCOME_MESSAGE = "welcomeMessage";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Starting up, please wait..."),
- @I18NMessage(locale = "de", value = "Bitte warten Sie bis der Server gestartet ist"),
- @I18NMessage(locale = "fr", value = "Démarrage, veuillez patienter...")})
+ @I18NMessage(locale = "en", value = "Starting up, please wait...")
String STARTING = "starting";
- @I18NMessages( { @I18NMessage(locale = "en", value = "${product.shortName} will be installed!"),
- @I18NMessage(locale = "de", value = "${product.shortName} wird installiert"),
- @I18NMessage(locale = "fr", value = "${product.shortName} sera installé")})
+ @I18NMessage(locale = "en", value = "${product.shortName} will be installed!")
String ALREADY_INSTALLED = "alreadyInstalled";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Done! Click here to get started!"),
- @I18NMessage(locale = "de", value = "Fertig! Klicken Sie hier, um fortzufahren!"),
- @I18NMessage(locale = "fr", value = "Terminé! Cliquez ici pour commencer!")})
+ @I18NMessage(locale = "en", value = "Done! Click here to get started!")
String ALREADY_INSTALLED_STARTED_LINK = "alreadyInstalledStartedLink";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Click here to continue the installation"),
- @I18NMessage(locale = "de", value = "Klicken Sie hier, um mit der Installation fortzufahren"),
- @I18NMessage(locale = "fr", value = "Cliquez ici pour continuer l'installation")})
+ @I18NMessage(locale = "en", value = "Click here to continue the installation")
String START_INSTALLING_LINK = "startInstallingLink";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Back to configuration page"),
- @I18NMessage(locale = "de", value = "Zurück zur Seite mit den Einstellungen") ,
- @I18NMessage(locale = "fr", value = "Retour à la page de configuration")})
+ @I18NMessage(locale = "en", value = "Back to configuration page")
String BACK_TO_SETTINGS_LINK = "backToSettingsLink";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Show Advanced Settings"),
- @I18NMessage(locale = "de", value = "Erweiterte Einstellungen anzeigen"),
- @I18NMessage(locale = "fr", value = "Montrer les options avancées")})
+ @I18NMessage(locale = "en", value = "Show Advanced Settings")
String SHOW_ADVANCED_SETTINGS = "showAdvancedSettings";
// Below are the localized names of all the properties that can be configured
// The _HELP I18NMessage strings refer to links under HELP_DOC_RHQ_SERVER_PROP_PARENT_PAGE
- @I18NMessages( { @I18NMessage(locale = "en", value = "Database Type"),
- @I18NMessage(locale = "de", value = "Datenbanktyp"),
- @I18NMessage(locale = "fr", value = "Type de Base de Données") })
+ @I18NMessage(locale = "en", value = "Database Type")
String PROP_DATABASE_TYPE = "propertyDatabaseType";
@I18NMessage("-DatabaseType")
String PROP_DATABASE_TYPE_HELP = "propertyDatabaseTypeHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Database Connection URL"),
- @I18NMessage(locale = "de", value = "URL der Datenbankverbindung"),
- @I18NMessage(locale = "fr", value = "URL de connexion à la base de données") })
+ @I18NMessage(locale = "en", value = "Database Connection URL")
String PROP_DATABASE_CONNECTION_URL = "propertyDatabaseConnectionUrl";
@I18NMessage("-DatabaseConnectionURL")
String PROP_DATABASE_CONNECTION_URL_HELP = "propertyDatabaseConnectionUrlHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Database JDBC Driver Class"),
- @I18NMessage(locale = "de", value = "Klassnname des JDBC-Datenbanktreibers"),
- @I18NMessage(locale = "fr", value = "Classe du driver JDBC de la base de données") })
+ @I18NMessage(locale = "en", value = "Database JDBC Driver Class")
String PROP_DATABASE_DRIVER_CLASS = "propertyDatabaseDriverClass";
@I18NMessage("-DatabaseJDBCDriverClass")
String PROP_DATABASE_DRIVER_CLASS_HELP = "propertyDatabaseDriverClassHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Database XA DataSource Class"),
- @I18NMessage(locale = "de", value = "Klassnname des XA-Datenbanktreibers") })
+ @I18NMessage(locale = "en", value = "Database XA DataSource Class")
String PROP_DATABASE_XA_DS_CLASS = "propertyDatabaseXADataSourceClass";
@I18NMessage("-DatabaseXADataSourceClass")
String PROP_DATABASE_XA_DS_CLASS_HELP = "propertyDatabaseXADataSourceClassHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Database User Name"),
- @I18NMessage(locale = "de", value = "Name des Datenbankbenutzers"),
- @I18NMessage(locale = "fr", value = "Nom d'utilisateur de la base de données") })
+ @I18NMessage(locale = "en", value = "Database User Name")
String PROP_DATABASE_USERNAME = "propertyDatabaseUserName";
@I18NMessage("-DatabaseUserName")
String PROP_DATABASE_USERNAME_HELP = "propertyDatabaseUserNameHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Database Password"),
- @I18NMessage(locale = "de", value = "Password des Datenbankbenutzers"),
- @I18NMessage(locale = "fr", value = "Mot de passe de la base de données") })
+ @I18NMessage(locale = "en", value = "Database Password")
String PROP_DATABASE_PASSWORD = "propertyDatabasePassword";
@I18NMessage("-DatabasePassword")
String PROP_DATABASE_PASSWORD_HELP = "propertyDatabasePasswordHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Server Bind Address"),
- @I18NMessage(locale = "de", value = "IP-Adresse an die der Sever sich binden soll"),
- @I18NMessage(locale = "fr", value = "Adresse IP à laquelle le serveur doit se lier") })
+ @I18NMessage(locale = "en", value = "Server Bind Address")
String PROP_SERVER_BIND_ADDRESS = "propertyBindAddress";
@I18NMessage("-ServerBindAddress")
String PROP_SERVER_BIND_ADDRESS_HELP = "propertyBindAddressHelp";
@@ -344,8 +236,7 @@ public interface InstallerI18NResourceKeys {
@I18NMessage("-HTTPPort")
String PROP_HTTP_PORT_HELP = "propertyHttpPortHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Secure HTTPS Port"),
- @I18NMessage(locale = "de", value = "HTTPS Port"), @I18NMessage(locale = "fr", value = "Port HTTPS Sécurisé") })
+ @I18NMessage(locale = "en", value = "Secure HTTPS Port")
String PROP_HTTPS_PORT = "propertyHttpsPort";
@I18NMessage("-SecureHTTPSPort")
String PROP_HTTPS_PORT_HELP = "propertyHttpsPortHelp";
@@ -600,16 +491,12 @@ public interface InstallerI18NResourceKeys {
@I18NMessage("-OutgoingServerAuthenticationModeEnabled")
String PROP_SECURITY_CLIENT_SERVER_AUTH_MODE_ENABLED_HELP = "propertySecurityClientServerAuthModeEnabledHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Embedded Agent Enabled"),
- @I18NMessage(locale = "de", value = "Eingebetteten Agent verwenden"),
- @I18NMessage(locale = "fr", value = "Activer l'Agent embarqué")})
+ @I18NMessage(locale = "en", value = "Embedded Agent Enabled")
String PROP_EMBEDDED_RHQ_AGENT_ENABLED = "propertyEmbeddedRHQAgentEnabled";
@I18NMessage("-EmbeddedRHQAgentEnabled")
String PROP_EMBEDDED_RHQ_AGENT_ENABLED_HELP = "propertyEmbeddedRHQAgentEnabledHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Embedded Agent Name"),
- @I18NMessage(locale = "de", value = "Name des eingebetteten Agent"),
- @I18NMessage(locale = "fr", value = "Nom du Agent embarqué")})
+ @I18NMessage(locale = "en", value = "Embedded Agent Name")
String PROP_EMBEDDED_RHQ_AGENT_NAME = "propertyEmbeddedRHQAgentName";
@I18NMessage("-EmbeddedRHQAgentName")
String PROP_EMBEDDED_RHQ_AGENT_NAME_HELP = "propertyEmbeddedRHQAgentNameHelp";
@@ -624,8 +511,7 @@ public interface InstallerI18NResourceKeys {
@I18NMessage("-EmbeddedRHQAgentResetConfiguration")
String PROP_EMBEDDED_RHQ_AGENT_RESET_CONFIGURATION_HELP = "propertyEmbeddedRHQAgentResetConfigurationHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Email SMTP Hostname"),
- @I18NMessage(locale = "de", value = "Hostname des SMTP Servers") })
+ @I18NMessage(locale = "en", value = "Email SMTP Hostname")
String PROP_EMAIL_SMTP_HOST = "propertyEmailSmtpHost";
@I18NMessage("-EmailSMTPHostname")
String PROP_EMAIL_SMTP_HOST_HELP = "propertyEmailSmtpHostHelp";
@@ -635,9 +521,7 @@ public interface InstallerI18NResourceKeys {
@I18NMessage("-EmailSMTPPort")
String PROP_EMAIL_SMTP_PORT_HELP = "propertyEmailSmtpPortHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Email From Address"),
- @I18NMessage(locale = "de", value = "E-Mail Absenderadresse"),
- @I18NMessage(locale = "fr", value = "E-Mail de l'expéditeur") })
+ @I18NMessage(locale = "en", value = "Email From Address")
String PROP_EMAIL_FROM_ADDRESS = "propertyEmailFromAddress";
@I18NMessage("-EmailFromAddress")
String PROP_EMAIL_FROM_ADDRESS_HELP = "propertyEmailFromAddressHelp";
@@ -759,45 +643,32 @@ public interface InstallerI18NResourceKeys {
// Help Documentation - links to the wiki
- @I18NMessages( {
- @I18NMessage(locale = "en", value = "Please review the documentation linked below to learn more about ${product.shortName}:"),
- @I18NMessage(locale = "de", value = "Die unten aufgeführten Links enthalten weitere Informationen zu ${product.shortName}:"),
- @I18NMessage(locale = "fr", value = "Veuillez consulter la documentation ci-dessous pour en apprendre plus sur ${product.shortName}:")})
+ @I18NMessage(locale = "en", value = "Please review the documentation linked below to learn more about ${product.shortName}:")
String INTRODUCE_HELP_DOCS = "introduceHelpDocs";
@I18NMessage("${product.help.installation}")
String HELP_DOC_RHQ_SERVER_INSTALL_GUIDE = "helpDocRHQServerInstallGuide";
- @I18NMessages( { @I18NMessage(locale = "en", value = "${product.shortName} Server Installation Guide"),
- @I18NMessage(locale = "de", value = "${product.shortName} Server Installationsanleitung"),
- @I18NMessage(locale = "fr", value = "Guide d'installation de ${product.shortName} Server")})
+ @I18NMessage(locale = "en", value = "${product.shortName} Server Installation Guide")
String HELP_DOC_RHQ_SERVER_INSTALL_GUIDE_LABEL = "helpDocRHQServerInstallGuideLabel";
@I18NMessage("GUI+Console+Users+Guide")
String HELP_DOC_RHQ_GUI_CONSOLE_USERS_GUIDE = "helpDocRHQGuiConsoleUsersGuide";
- @I18NMessages( { @I18NMessage(locale = "en", value = "${product.shortName} GUI Console Users Guide"),
- @I18NMessage(locale = "de", value = "Benutzerhandbuch ${product.shortName} GUI"),
- @I18NMessage(locale = "fr", value = "Guide d'utilisation de la ${product.shortName} GUI Console")})
+ @I18NMessage(locale = "en", value = "${product.shortName} GUI Console Users Guide")
String HELP_DOC_RHQ_GUI_CONSOLE_USERS_GUIDE_LABEL = "helpDocRHQGuiConsoleUsersGuideLabel";
@I18NMessage("${product.help.guide.server}")
String HELP_DOC_RHQ_SERVER_USERS_GUIDE = "helpDocRHQServerUsersGuide";
- @I18NMessages( { @I18NMessage(locale = "en", value = "${product.shortName} Server Users Guide"),
- @I18NMessage(locale = "de", value = "Benutzerhandbuch ${product.shortName} Server"),
- @I18NMessage(locale = "fr", value = "Guide d'utilisation de ${product.shortName} Server")})
+ @I18NMessage(locale = "en", value = "${product.shortName} Server Users Guide")
String HELP_DOC_RHQ_SERVER_USERS_GUIDE_LABEL = "helpDocRHQServerUsersGuideLabel";
@I18NMessage("${product.help.guide.agent}")
String HELP_DOC_RHQ_AGENT_USERS_GUIDE = "helpDocRHQAgentUsersGuide";
- @I18NMessages( { @I18NMessage(locale = "en", value = "${product.shortName} Agent Users Guide"),
- @I18NMessage(locale = "de", value = "Benutzerhandbuch ${product.shortName} Agent"),
- @I18NMessage(locale = "fr", value = "Guide d'utilisation de ${product.shortName} Agent")})
+ @I18NMessage(locale = "en", value = "${product.shortName} Agent Users Guide")
String HELP_DOC_RHQ_AGENT_USERS_GUIDE_LABEL = "helpDocRHQAgentUsersGuideLabel";
@I18NMessage("${product.help.FAQ}")
String HELP_DOC_FAQ = "helpDocFaq";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Frequently Asked Questions"),
- @I18NMessage(locale = "de", value = "Häufig gestellte Fragen"),
- @I18NMessage(locale = "fr", value = "Foire Aux Questions") })
+ @I18NMessage(locale = "en", value = "Frequently Asked Questions")
String HELP_DOC_FAQ_LABEL = "helpDocFaqLabel";
// the page that contains all the config props help text
@@ -805,31 +676,25 @@ public interface InstallerI18NResourceKeys {
@I18NMessage("${product.help.config.props}")
String HELP_DOC_RHQ_SERVER_PROP_PARENT_PAGE = "helpDocRHQServerPropParentPage";
- @I18NMessages( { @I18NMessage(locale = "en", value = "New Server"),
- @I18NMessage(locale = "de", value = "Neuer Server") })
+ @I18NMessage(locale = "en", value = "New Server")
String NEW_SERVER_SELECT_ITEM = "newServerSelectItem";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Registered Servers:"),
- @I18NMessage(locale = "de", value = "Registrierte Server:") })
+ @I18NMessage(locale = "en", value = "Registered Servers:")
String REGISTERED_SERVERS_LABEL = "registeredServersLabel";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Server Name"),
- @I18NMessage(locale = "de", value = "Servername") })
+ @I18NMessage(locale = "en", value = "Server Name")
String PROP_HIGH_AVAILABILITY_NAME = "propertyHighAvailabilityName";
@I18NMessage("-ServerName")
String PROP_HIGH_AVAILABILITY_NAME_HELP = "propertyHighAvailabilityNameHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Maintenance Mode At Start"),
- @I18NMessage(locale = "de", value = "Maintenance Mode At Start") })
+ @I18NMessage(locale = "en", value = "Maintenance Mode At Start")
String PROP_MM_AT_START = "propertyMaintenanceModeAtStart";
@I18NMessage("-MaintenanceModeAtStart")
String PROP_MM_AT_START_HELP = "propertyMaintenanceModeAtStartHelp";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Server Public Address"),
- @I18NMessage(locale = "de", value = "HA-Endpunkt-Adresse des Servers") })
+ @I18NMessage(locale = "en", value = "Server Public Address")
String PROP_HIGH_AVAILABILITY_ENDPOINT_ADDRESS = "propertyHighAvailabilityEndpointAddress";
- @I18NMessages( { @I18NMessage(locale = "en", value = "Server Affinity Group Name"),
- @I18NMessage(locale = "de", value = "Name der zugehörigen Servergruppe") })
+ @I18NMessage(locale = "en", value = "Server Affinity Group Name")
String PROP_HIGH_AVAILABILITY_AFFINITY_GROUP = "propertyHighAvailabilityAffinityGroup";
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_de.properties b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_de.properties
new file mode 100644
index 0000000..5fdf56c
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_de.properties
@@ -0,0 +1,82 @@
+createDatabaseUserTitle=Datenbank mit -benutzer anlegen
+createDatabaseUserHelp=Geben Sie die Administratoreninformation hier ein, und clicken Sie den Button, um eine Datenbank mit Benutzer anzulegen.
+adminConnectionUrl=URL der Datenbankverbindung
+adminUsername=Benutzername des Datenbankadministrators
+adminPassword=Passwort des Datenbankadministrators
+experimentalDb=Unterstützung für diese Datenbank ist experimentell und ist nur für Demo-und Testzwecke geeignet.
+createDatabaseNote=DB mit -benutzer anlegen, falls nötig
+createDatabaseButton=Datenbank anlegen
+testDatabaseNote=Überprüfen Sie, dass die Einstellungen für die Datenbank gültig sind
+testDatabaseButton=Verbindung testen
+existingSchemaQuestion=Das gewünschte Datenbankschema existiert schon. Was wollen Sie machen?
+existingSchemaAnswerOverwrite=Überschreiben (vorhandene Daten gehen verloren)
+existingSchemaAnswerUpgrade=Behalten (existierende Daten werden aktualisiert)
+existingSchemaAnswerSkip=Umgehen (Datenbank bleibt wie sie ist)
+invalidNumber=[{1}] ist ein ungültiger Zahlenwert für die Eigenschaft {0}
+invalidBoolean=Die boolesche Eigenschaft {0} muss entweder 'true' oder 'false' sein, war aber [{1}]
+invalidString=Die Eigenschaft {0} muss gesetzt werden.
+saveFailure=Konnte die Einstellungen nicht speichern und den Server vollständig starten.\n\
+Der ${product.shortName} Server wird nicht korrekt funktionieren.\n\
+Grund: {0}
+errorLabel=Fehler
+saveError=Kann die Einstellungen nicht sichern
+invalidDatabaseSettings=Eine Verbindung zur Datenbank ist mit den gebenen Einstellungen für die Datenbank nicht möglich. \n\
+Bitte überprüfen Sie die Einstellungen und stellen Sie sicher, dass die Datenbak aktiv ist
+setPropertiesInstructions=Diese Seite zeigt Ihnen die Konfigurationseinstellungen \n\
+für die Installation des ${product.shortName} Servers. Sie können keinen, einige oder alle\n\
+dieser Werte nach Ihren Anforderungen ändern. Sie können auf den Namen einer Einstellung klicken, um direkt weitere Informationen zu erhalten.\n\
+Bitte beachten sie, dass \n\
+einige dieser Änderungen erst nach einem Neustart des Servers aktiv werden. \n\
+Wenn Sie diese Einstellungen ändern, müssen Sie den Server sofort neu starten, damit \n\
+sie aufgegriffen werden.
+advancedSettingsInstructions=Markieren Sie diese Checkbox, um die standardmäßigen und weiterführende Einstellungen anzuzeigen.
+installButtonsText=Drücken Sie die 'Produktion Installation'-Taste für eine normale Installation durchzuführen.\n\
+Drücken Sie die 'Embedded Installation'-Taste, um schnell eine vollständige Umgebung mit Hilfe der eingebetteten Datenbank und Embedded Agenten zu erstellen. Die Embedded-Installation ist nur für Demonstrations- und Evaluierungszwecke geeignet!
+orText=-- oder --
+saveEmbeddedMode=Embedded Installation
+databaseSettingsInstructions=Die Datenbankeinstellungen definieren die Datenbank für diese Installation. Alle Einstellungen werden benötigt.\n\
+Klicken Sie auf den "Verbindung testen" Button, um die Einstellungen zu validieren.
+installSettingsInstructions=Diese Einstellungen definieren den notwendigen Server-Endpunkt für diese Installation.
+installSettingsNote1=Wählen Sie aus der Liste der registrierten Server, wenn Sie ein Upgrade oder eine Neuinstallation durchführen.
+installSettingsNote2=Geben Sie den Serverendpunkt unten ein, wenn Sie eine Neuinstallation durchführen:
+serverSettingsInstructions=Diese Servereinstellungen konfigurieren den Server für diese Installation. Alle Einstellungen werden benötigt.
+save=Server installieren!
+yesString=Ja
+noString=Nein
+propertyName=Eigenschaft
+value=Wert
+requiresRestart=Neustart erforderlich?
+welcomeTitle=Willkommen bei ${product.shortName}!
+welcomeMessage=Willkommen beim Installationsprogramm von ${product.shortName}. Mit diesem können Sie \n\
+${product.shortName} installieren und konfigurieren. \n\
+Nachdem dies geschehen ist, können Sie sich einloggen und mit ${product.shortName} arbeiten
+starting=Bitte warten Sie bis der Server gestartet ist
+alreadyInstalled=${product.shortName} wird installiert
+alreadyInstalledStartedLink=Fertig! Klicken Sie hier, um fortzufahren!
+startInstallingLink=Klicken Sie hier, um mit der Installation fortzufahren
+backToSettingsLink=Zurück zur Seite mit den Einstellungen
+showAdvancedSettings=Erweiterte Einstellungen anzeigen
+propertyDatabaseType=Datenbanktyp
+propertyDatabaseConnectionUrl=URL der Datenbankverbindung
+propertyDatabaseDriverClass=Klassnname des JDBC-Datenbanktreibers
+propertyDatabaseXADataSourceClass=Klassnname des XA-Datenbanktreibers
+propertyDatabaseUserName=Name des Datenbankbenutzers
+propertyDatabasePassword=Password des Datenbankbenutzers
+propertyBindAddress=IP-Adresse an die der Sever sich binden soll
+propertyHttpsPort=HTTPS Port
+propertyEmbeddedRHQAgentEnabled=Eingebetteten Agent verwenden
+propertyEmbeddedRHQAgentName=Name des eingebetteten Agent
+propertyEmailSmtpHost=Hostname des SMTP Servers
+propertyEmailFromAddress=E-Mail Absenderadresse
+introduceHelpDocs=Die unten aufgeführten Links enthalten weitere Informationen zu ${product.shortName}:
+helpDocRHQServerInstallGuideLabel=${product.shortName} Server Installationsanleitung
+helpDocRHQGuiConsoleUsersGuideLabel=Benutzerhandbuch ${product.shortName} GUI
+helpDocRHQServerUsersGuideLabel=Benutzerhandbuch ${product.shortName} Server
+helpDocRHQAgentUsersGuideLabel=Benutzerhandbuch ${product.shortName} Agent
+helpDocFaqLabel=Häufig gestellte Fragen
+newServerSelectItem=Neuer Server
+registeredServersLabel=Registrierte Server:
+propertyHighAvailabilityName=Servername
+propertyMaintenanceModeAtStart=Maintenance Mode At Start
+propertyHighAvailabilityEndpointAddress=HA-Endpunkt-Adresse des Servers
+propertyHighAvailabilityAffinityGroup=Name der zugehörigen Servergruppe
diff --git a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_fr.properties b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_fr.properties
new file mode 100644
index 0000000..d2a51b4
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_fr.properties
@@ -0,0 +1,47 @@
+invalidNumber=La valeur du paramètre {0} n'est pas un nombre valide [{1}]
+invalidBoolean=La valeur booléenne du paramètre {0} devait être 'true' ou 'false', mais était [{1}]
+saveFailure=Impossible de sauvegarder les paramètres et de déployer entièrement - RHQ Server ne fonctionnera pas correctement\n\
+Cause: {0}
+errorLabel=Erreur
+saveError=Impossible de sauvegarder les paramètres pour une raison inconnue
+invalidDatabaseSettings=Impossible de se connecter à la base de données avec les paramètres donnés. \n\
+Veuillez vérifier les paramètres et que la base de données est opérationnelle.
+setPropertiesInstructions=Cette page vous montre les valeurs actuelles de la configuration \n\
+pour cette installation de RHQ Server. Vous pouvez en changez certains, tous, ou aucun \n\
+d'entre elles pour vos besoin personnels. Veuillez noter que certains de \n\
+ces changements ne prendront place qu'après un redémarrage du \n\
+serveur. Si vous changez l'une de ces valeurs, vous devrez \n\
+immediatement arrêter et redémarrer le serveur pour appliquer les changements.
+save=Installez ${product.shortName} Server!
+yesString=Oui
+noString=Non
+propertyName=Propriété
+value=Valeur
+requiresRestart=Redémarrage nécessaire?
+welcomeTitle=Bienvenue sur ${product.shortName}!
+welcomeMessage=Voici le programme d'installation de ${product.shortName}. Vous allez utiliser cette page \n\
+pour compléter l'installation et configurer ${product.shortName} Server. \n\
+Une fois complétée, vous pourrez vous identifier et commencer à utiliser ${product.shortName}
+starting=Démarrage, veuillez patienter...
+alreadyInstalled=${product.shortName} sera installé
+alreadyInstalledStartedLink=Terminé! Cliquez ici pour commencer!
+startInstallingLink=Cliquez ici pour continuer l'installation
+backToSettingsLink=Retour à la page de configuration
+showAdvancedSettings=Montrer les options avancées
+propertyDatabaseType=Type de Base de Données
+propertyDatabaseConnectionUrl=URL de connexion à la base de données
+propertyDatabaseDriverClass=Classe du driver JDBC de la base de données
+propertyDatabaseUserName=Nom d'utilisateur de la base de données
+propertyDatabasePassword=Mot de passe de la base de données
+propertyBindAddress=Adresse IP à laquelle le serveur doit se lier
+propertyHttpsPort=Port HTTPS Sécurisé
+propertyEmbeddedRHQAgentEnabled=Activer l'Agent embarqué
+propertyEmbeddedRHQAgentName=Nom du Agent embarqué
+propertyEmailFromAddress=E-Mail de l'expéditeur
+introduceHelpDocs=Veuillez consulter la documentation ci-dessous pour en apprendre plus sur ${product.shortName}:
+helpDocRHQServerInstallGuideLabel=Guide d'installation de ${product.shortName} Server
+helpDocRHQGuiConsoleUsersGuideLabel=Guide d'utilisation de la ${product.shortName} GUI Console
+helpDocRHQServerUsersGuideLabel=Guide d'utilisation de ${product.shortName} Server
+helpDocRHQAgentUsersGuideLabel=Guide d'utilisation de ${product.shortName} Agent
+helpDocFaqLabel=Foire Aux Questions
+orText=-- ou --
commit 6e87060f43f7858e89e7a505e3d6e72047ab3eac
Author: Heiko W. Rupp <hwr(a)pilhuhn.de>
Date: Thu Jun 3 11:17:12 2010 +0200
Remove properties that should come from default.
diff --git a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties
index 5c15b50..f98e373 100644
--- a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties
+++ b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties
@@ -1,9 +1,3 @@
-product.shortName=RHQ
-product.name=RHQ
-product.fullName=RHQ
-product.url=${product.url}
-product.sales.email=sales(a)rhq-project.org
-product.support.email=info(a)rhq-project.org
helpDocRoot=http://support.rhq-project.org/display/RHQ/
createDatabaseUserTitle=Criar Base de Dados/Usu\u00E1rio
createDatabaseUserHelp=Entre com as informa\u00E7\u00F5es do administrador do banco de dados e clique no bot\u00E3o para criar o baco de dados e o usu\u00E1rio.
@@ -33,7 +27,7 @@ orText=-- ou --
saveEmbeddedMode=Instala\u00E7\u00E3o habilitada
databaseSettingsInstructions=As propriedades do banco de dados definem o banco de dados configurado para esta instala\u00E7\u00E3o. Todos os campos s\u00E3o necess\u00E1rios. Use o bot\u00E3o "Testar Conex\u00E3o" para validar as propriedades.
installSettingsInstructions=As propriedades de acesso definem localiza\u00E7\u00E3o (endpoint) do servidor.
-installSettingsNote1=No caso de uma atualiza\u00E7\u00E3o ou reinstala\u00E7\u00E3o selecione a partir da lista de servidores registrados\:
+installSettingsNote1=No caso de uma atualiza\u00E7\u00E3o ou reinstala\u00E7\u00E3o selecione a partir da lista de servidores registrados\:
installSettingsNote2=No caso de uma nova instala\u00E7\u00E3o informe as propriedades abaixo\:
serverSettingsInstructions=Todos os campos abaixo s\u00E3o necess\u00E1rios.
save=Instalar Servidor\!
@@ -52,7 +46,7 @@ backToSettingsLink=Retornar \u00E0 p\u00E1gina de configura\u00E7\u00E3o
showAdvancedSettings=Mostrar configura\u00E7\u00F5es avan\u00E7adas
propertyDatabaseType=Tipo de Banco de Dados
propertyDatabaseTypeHelp=-TipoBancoDeDados
-propertyDatabaseConnectionUrl=URL de conex\u00E3o do Banco de Dados
+propertyDatabaseConnectionUrl=URL de conex\u00E3o do Banco de Dados
propertyDatabaseUserName=Usu\u00E1rio do Banco de Dados
propertyDatabasePassword=Senha do Banco de Dados
propertyEmbeddedRHQAgentEnabled=Agente embutido habilitado
commit a2ca57138f6065f65241eb7b721666c3d1e7e850
Author: Heiko W. Rupp <hwr(a)pilhuhn.de>
Date: Sun May 30 10:12:29 2010 +0200
Use this translation for all of pt language for now
diff --git a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties
new file mode 100644
index 0000000..5c15b50
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt.properties
@@ -0,0 +1,75 @@
+product.shortName=RHQ
+product.name=RHQ
+product.fullName=RHQ
+product.url=${product.url}
+product.sales.email=sales(a)rhq-project.org
+product.support.email=info(a)rhq-project.org
+helpDocRoot=http://support.rhq-project.org/display/RHQ/
+createDatabaseUserTitle=Criar Base de Dados/Usu\u00E1rio
+createDatabaseUserHelp=Entre com as informa\u00E7\u00F5es do administrador do banco de dados e clique no bot\u00E3o para criar o baco de dados e o usu\u00E1rio.
+adminConnectionUrl=URL de conex\u00E3o com BD
+adminUsername=Usu\u00E1rio administrador do BD
+adminPassword=Senha de administrador do BD
+experimentalDb=O banco de dados selecionado \u00E9 utilizado apenas para demonstra\u00E7\u00E3o. Ele n\u00E3o deve ser utilizado em ambiente de produ\u00E7\u00E3o. N\u00E3o h\u00E1 suporte dispon\u00EDvel para insta\u00E7\u00E3oes que utilizam H2 ou MS SQL Server como banco de dados.
+createDatabaseNote=Cria um banco de dados e usu\u00E1rio se necess\u00E1rio
+createDatabaseButton=Criar Banco de Dados
+testDatabaseNote=Confirmar configura\u00E7\u00F5es do banco de dados
+testDatabaseButton=Testar Conex\u00E3o
+existingSchemaQuestion=O esquema do banco de dados j\u00E1 existe. O que deseja fazer?
+existingSchemaAnswerOverwrite=Substituir (os dados existentes ser\u00E3o perdidos)
+existingSchemaAnswerUpgrade=Manter (os dados existentes ser\u00E3o mantidos)
+existingSchemaAnswerSkip=Prosseguir (deixar o banco de dados como est\u00E1)
+invalidNumber=O valor da propriedade {0} \u00E9 um n\u00FAmero inv\u00E1lido\: [{1}]
+invalidBoolean=O valor da propriedade booleana {0} deve ser 'true' ou 'false' mas foi atribu\u00EDdo como [{1}]
+invalidString=O valor da propriedade {0} deve ser informado.
+saveFailure=Falha ao gravar as propriedades e implantar - O Servidor RHQ n\u00E3o funcionar\u00E1 apropriadamente\nCausa\: {0}
+errorLabel=Erro
+saveError=Por algum motivo n\u00E3o foi poss\u00EDvel gravar as configura\u00E7\u00F5es.
+invalidDatabaseSettings=N\u00E3o foi poss\u00EDvel conectar ao banco banco de dados com as propriedades informadas. \nFavor verificar as configura\u00E7\u00F5es do banco de dados e certifircar-se de que est\u00E1 em execu\u00E7\u00E3o.
+setPropertiesInstructions=Estas s\u00E3o as configura\u00E7\u00F5es para a instala\u00E7\u00E3o do Servidor RHQ. \nVoc\u00EA pode customizar alguma, todas ou nenhuma conforme necess\u00E1rio. Clique no nome da propriedade para visualizar a ajuda espec\u00EDfica. Altera\u00E7\u00F5es nas configura\u00E7\u00F5es marcadas como "Restart Necess\u00E1rio" \nn\u00E3o ter\u00E3o efeito at\u00E9 que o servidor seja reiniciado. Nesse caso reinicie o servidor imediatamente ap\u00F3s a instala\u00E7\u00E3o ter sido conclu\u00EDda com sucesso.
+advancedSettingsInstructions=Marque esta caixa de sele\u00E7\u00E3o para visualizar as configura\u00E7\u00F5es avan\u00E7adas.
+installButtonsText=Pressione o bot\u00E3o 'Instala\u00E7\u00E3o de Produ\u00E7\u00E3o' para uma instala\u00E7\u00E3o normal.\nPressione o bot\u00E3o 'Instala\u00E7ao Embutida' para criar rapidamente um ambiente completo com a ajuda do banco de dados e do agente embutidos. A instala\u00E7\u00E3o embutida possui apenas o prop\u00F3sito de demonstra\u00E7\u00E3o e avalia\u00E7\u00E3o\!
+orText=-- ou --
+saveEmbeddedMode=Instala\u00E7\u00E3o habilitada
+databaseSettingsInstructions=As propriedades do banco de dados definem o banco de dados configurado para esta instala\u00E7\u00E3o. Todos os campos s\u00E3o necess\u00E1rios. Use o bot\u00E3o "Testar Conex\u00E3o" para validar as propriedades.
+installSettingsInstructions=As propriedades de acesso definem localiza\u00E7\u00E3o (endpoint) do servidor.
+installSettingsNote1=No caso de uma atualiza\u00E7\u00E3o ou reinstala\u00E7\u00E3o selecione a partir da lista de servidores registrados\:
+installSettingsNote2=No caso de uma nova instala\u00E7\u00E3o informe as propriedades abaixo\:
+serverSettingsInstructions=Todos os campos abaixo s\u00E3o necess\u00E1rios.
+save=Instalar Servidor\!
+yesString=Sim
+noString=N\u00E3o
+propertyName=Nome da Propriedade
+value=Valor
+requiresRestart=Restart necess\u00E1rio?
+welcomeTitle=Bem vindo ao RHQ\!
+welcomeMessage=Bem vindo \u00E0 instala\u00E7\u00E3o do RHQ. Utilize esta p\u00E1gina \npara instalar e configurar o Servidor RHQ. \nAp\u00F3s completar a instala\u00E7\u00E3o voc\u00EA poder\u00E1 se autenticar e usar o RHQ.
+starting=Iniciando, por favor aguarde...
+alreadyInstalled=RHQ ser\u00E1 instalado\!
+alreadyInstalledStartedLink=Pronto\! Clique aqui para come\u00E7ar\!
+startInstallingLink=Clique aqui para continuar a instala\u00E7\u00E3o.
+backToSettingsLink=Retornar \u00E0 p\u00E1gina de configura\u00E7\u00E3o
+showAdvancedSettings=Mostrar configura\u00E7\u00F5es avan\u00E7adas
+propertyDatabaseType=Tipo de Banco de Dados
+propertyDatabaseTypeHelp=-TipoBancoDeDados
+propertyDatabaseConnectionUrl=URL de conex\u00E3o do Banco de Dados
+propertyDatabaseUserName=Usu\u00E1rio do Banco de Dados
+propertyDatabasePassword=Senha do Banco de Dados
+propertyEmbeddedRHQAgentEnabled=Agente embutido habilitado
+propertyEmbeddedRHQAgentName=Nome do Agente embutido
+propertyEmbeddedRHQAgentDisableNativeSystem=Desabilitar sistema nativo no Agente embutido
+propertyEmbeddedRHQAgentResetConfiguration=Reconfigurar Agente embutido
+propertyOperationTimeout=Timeout padr\u00E3o para invocar uma opera\u00E7\u00E3o
+introduceHelpDocs=Favor consultar a documenta\u00E7\u00E3o atrav\u00E9s dos links abaixo para saber mais a respeito do RHQ\:
+helpDocRHQServerInstallGuideLabel=RHQ Server - Guia de Instala\u00E7\u00E3o
+helpDocRHQGuiConsoleUsersGuideLabel=RHQ GUI Console - Guia do Usu\u00E1rio
+helpDocRHQServerUsersGuideLabel=RHQ Server - Guia do Usu\u00E1rio
+helpDocRHQAgentUsersGuideLabel=RHQ Agent - Guia do Usu\u00E1rio
+helpDocFaqLabel=Perguntas Frequentes (FAQ)
+helpDocRHQServerPropParentPage=http://support.rhq-project.org/display/RHQ/Configuring+the+Server#ConfiguringtheServer
+newServerSelectItem=Novo Servidor
+registeredServersLabel=Servidores Registrados
+propertyHighAvailabilityName=Nome do Servidor
+propertyMaintenanceModeAtStart=Modo de manuten\u00E7\u00E3o na Inicializa\u00E7\u00E3o
+propertyHighAvailabilityEndpointAddress=Endere\u00E7o p\u00FAblico do Servidor
+propertyHighAvailabilityAffinityGroup=Nome do Grupo de Afinidade do Servidor
diff --git a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt_br.properties b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt_br.properties
deleted file mode 100644
index 5c15b50..0000000
--- a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt_br.properties
+++ /dev/null
@@ -1,75 +0,0 @@
-product.shortName=RHQ
-product.name=RHQ
-product.fullName=RHQ
-product.url=${product.url}
-product.sales.email=sales(a)rhq-project.org
-product.support.email=info(a)rhq-project.org
-helpDocRoot=http://support.rhq-project.org/display/RHQ/
-createDatabaseUserTitle=Criar Base de Dados/Usu\u00E1rio
-createDatabaseUserHelp=Entre com as informa\u00E7\u00F5es do administrador do banco de dados e clique no bot\u00E3o para criar o baco de dados e o usu\u00E1rio.
-adminConnectionUrl=URL de conex\u00E3o com BD
-adminUsername=Usu\u00E1rio administrador do BD
-adminPassword=Senha de administrador do BD
-experimentalDb=O banco de dados selecionado \u00E9 utilizado apenas para demonstra\u00E7\u00E3o. Ele n\u00E3o deve ser utilizado em ambiente de produ\u00E7\u00E3o. N\u00E3o h\u00E1 suporte dispon\u00EDvel para insta\u00E7\u00E3oes que utilizam H2 ou MS SQL Server como banco de dados.
-createDatabaseNote=Cria um banco de dados e usu\u00E1rio se necess\u00E1rio
-createDatabaseButton=Criar Banco de Dados
-testDatabaseNote=Confirmar configura\u00E7\u00F5es do banco de dados
-testDatabaseButton=Testar Conex\u00E3o
-existingSchemaQuestion=O esquema do banco de dados j\u00E1 existe. O que deseja fazer?
-existingSchemaAnswerOverwrite=Substituir (os dados existentes ser\u00E3o perdidos)
-existingSchemaAnswerUpgrade=Manter (os dados existentes ser\u00E3o mantidos)
-existingSchemaAnswerSkip=Prosseguir (deixar o banco de dados como est\u00E1)
-invalidNumber=O valor da propriedade {0} \u00E9 um n\u00FAmero inv\u00E1lido\: [{1}]
-invalidBoolean=O valor da propriedade booleana {0} deve ser 'true' ou 'false' mas foi atribu\u00EDdo como [{1}]
-invalidString=O valor da propriedade {0} deve ser informado.
-saveFailure=Falha ao gravar as propriedades e implantar - O Servidor RHQ n\u00E3o funcionar\u00E1 apropriadamente\nCausa\: {0}
-errorLabel=Erro
-saveError=Por algum motivo n\u00E3o foi poss\u00EDvel gravar as configura\u00E7\u00F5es.
-invalidDatabaseSettings=N\u00E3o foi poss\u00EDvel conectar ao banco banco de dados com as propriedades informadas. \nFavor verificar as configura\u00E7\u00F5es do banco de dados e certifircar-se de que est\u00E1 em execu\u00E7\u00E3o.
-setPropertiesInstructions=Estas s\u00E3o as configura\u00E7\u00F5es para a instala\u00E7\u00E3o do Servidor RHQ. \nVoc\u00EA pode customizar alguma, todas ou nenhuma conforme necess\u00E1rio. Clique no nome da propriedade para visualizar a ajuda espec\u00EDfica. Altera\u00E7\u00F5es nas configura\u00E7\u00F5es marcadas como "Restart Necess\u00E1rio" \nn\u00E3o ter\u00E3o efeito at\u00E9 que o servidor seja reiniciado. Nesse caso reinicie o servidor imediatamente ap\u00F3s a instala\u00E7\u00E3o ter sido conclu\u00EDda com sucesso.
-advancedSettingsInstructions=Marque esta caixa de sele\u00E7\u00E3o para visualizar as configura\u00E7\u00F5es avan\u00E7adas.
-installButtonsText=Pressione o bot\u00E3o 'Instala\u00E7\u00E3o de Produ\u00E7\u00E3o' para uma instala\u00E7\u00E3o normal.\nPressione o bot\u00E3o 'Instala\u00E7ao Embutida' para criar rapidamente um ambiente completo com a ajuda do banco de dados e do agente embutidos. A instala\u00E7\u00E3o embutida possui apenas o prop\u00F3sito de demonstra\u00E7\u00E3o e avalia\u00E7\u00E3o\!
-orText=-- ou --
-saveEmbeddedMode=Instala\u00E7\u00E3o habilitada
-databaseSettingsInstructions=As propriedades do banco de dados definem o banco de dados configurado para esta instala\u00E7\u00E3o. Todos os campos s\u00E3o necess\u00E1rios. Use o bot\u00E3o "Testar Conex\u00E3o" para validar as propriedades.
-installSettingsInstructions=As propriedades de acesso definem localiza\u00E7\u00E3o (endpoint) do servidor.
-installSettingsNote1=No caso de uma atualiza\u00E7\u00E3o ou reinstala\u00E7\u00E3o selecione a partir da lista de servidores registrados\:
-installSettingsNote2=No caso de uma nova instala\u00E7\u00E3o informe as propriedades abaixo\:
-serverSettingsInstructions=Todos os campos abaixo s\u00E3o necess\u00E1rios.
-save=Instalar Servidor\!
-yesString=Sim
-noString=N\u00E3o
-propertyName=Nome da Propriedade
-value=Valor
-requiresRestart=Restart necess\u00E1rio?
-welcomeTitle=Bem vindo ao RHQ\!
-welcomeMessage=Bem vindo \u00E0 instala\u00E7\u00E3o do RHQ. Utilize esta p\u00E1gina \npara instalar e configurar o Servidor RHQ. \nAp\u00F3s completar a instala\u00E7\u00E3o voc\u00EA poder\u00E1 se autenticar e usar o RHQ.
-starting=Iniciando, por favor aguarde...
-alreadyInstalled=RHQ ser\u00E1 instalado\!
-alreadyInstalledStartedLink=Pronto\! Clique aqui para come\u00E7ar\!
-startInstallingLink=Clique aqui para continuar a instala\u00E7\u00E3o.
-backToSettingsLink=Retornar \u00E0 p\u00E1gina de configura\u00E7\u00E3o
-showAdvancedSettings=Mostrar configura\u00E7\u00F5es avan\u00E7adas
-propertyDatabaseType=Tipo de Banco de Dados
-propertyDatabaseTypeHelp=-TipoBancoDeDados
-propertyDatabaseConnectionUrl=URL de conex\u00E3o do Banco de Dados
-propertyDatabaseUserName=Usu\u00E1rio do Banco de Dados
-propertyDatabasePassword=Senha do Banco de Dados
-propertyEmbeddedRHQAgentEnabled=Agente embutido habilitado
-propertyEmbeddedRHQAgentName=Nome do Agente embutido
-propertyEmbeddedRHQAgentDisableNativeSystem=Desabilitar sistema nativo no Agente embutido
-propertyEmbeddedRHQAgentResetConfiguration=Reconfigurar Agente embutido
-propertyOperationTimeout=Timeout padr\u00E3o para invocar uma opera\u00E7\u00E3o
-introduceHelpDocs=Favor consultar a documenta\u00E7\u00E3o atrav\u00E9s dos links abaixo para saber mais a respeito do RHQ\:
-helpDocRHQServerInstallGuideLabel=RHQ Server - Guia de Instala\u00E7\u00E3o
-helpDocRHQGuiConsoleUsersGuideLabel=RHQ GUI Console - Guia do Usu\u00E1rio
-helpDocRHQServerUsersGuideLabel=RHQ Server - Guia do Usu\u00E1rio
-helpDocRHQAgentUsersGuideLabel=RHQ Agent - Guia do Usu\u00E1rio
-helpDocFaqLabel=Perguntas Frequentes (FAQ)
-helpDocRHQServerPropParentPage=http://support.rhq-project.org/display/RHQ/Configuring+the+Server#ConfiguringtheServer
-newServerSelectItem=Novo Servidor
-registeredServersLabel=Servidores Registrados
-propertyHighAvailabilityName=Nome do Servidor
-propertyMaintenanceModeAtStart=Modo de manuten\u00E7\u00E3o na Inicializa\u00E7\u00E3o
-propertyHighAvailabilityEndpointAddress=Endere\u00E7o p\u00FAblico do Servidor
-propertyHighAvailabilityAffinityGroup=Nome do Grupo de Afinidade do Servidor
diff --git a/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml b/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml
index 6872fe3..9ad7a36 100644
--- a/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml
+++ b/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml
@@ -57,7 +57,7 @@
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
<supported-locale>fr</supported-locale>
- <supported-locale>pt_br</supported-locale>
+ <supported-locale>pt</supported-locale>
</locale-config>
</application>
commit 0f044686fe65af9b1f381c2535ba19d4210f74ce
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Wed May 26 22:12:10 2010 +0200
Portuguese (Brazilian) installer messages by Rafael Torres - many thanks!
diff --git a/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt_br.properties b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt_br.properties
new file mode 100644
index 0000000..5c15b50
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/main/resources/InstallerMessages_pt_br.properties
@@ -0,0 +1,75 @@
+product.shortName=RHQ
+product.name=RHQ
+product.fullName=RHQ
+product.url=${product.url}
+product.sales.email=sales(a)rhq-project.org
+product.support.email=info(a)rhq-project.org
+helpDocRoot=http://support.rhq-project.org/display/RHQ/
+createDatabaseUserTitle=Criar Base de Dados/Usu\u00E1rio
+createDatabaseUserHelp=Entre com as informa\u00E7\u00F5es do administrador do banco de dados e clique no bot\u00E3o para criar o baco de dados e o usu\u00E1rio.
+adminConnectionUrl=URL de conex\u00E3o com BD
+adminUsername=Usu\u00E1rio administrador do BD
+adminPassword=Senha de administrador do BD
+experimentalDb=O banco de dados selecionado \u00E9 utilizado apenas para demonstra\u00E7\u00E3o. Ele n\u00E3o deve ser utilizado em ambiente de produ\u00E7\u00E3o. N\u00E3o h\u00E1 suporte dispon\u00EDvel para insta\u00E7\u00E3oes que utilizam H2 ou MS SQL Server como banco de dados.
+createDatabaseNote=Cria um banco de dados e usu\u00E1rio se necess\u00E1rio
+createDatabaseButton=Criar Banco de Dados
+testDatabaseNote=Confirmar configura\u00E7\u00F5es do banco de dados
+testDatabaseButton=Testar Conex\u00E3o
+existingSchemaQuestion=O esquema do banco de dados j\u00E1 existe. O que deseja fazer?
+existingSchemaAnswerOverwrite=Substituir (os dados existentes ser\u00E3o perdidos)
+existingSchemaAnswerUpgrade=Manter (os dados existentes ser\u00E3o mantidos)
+existingSchemaAnswerSkip=Prosseguir (deixar o banco de dados como est\u00E1)
+invalidNumber=O valor da propriedade {0} \u00E9 um n\u00FAmero inv\u00E1lido\: [{1}]
+invalidBoolean=O valor da propriedade booleana {0} deve ser 'true' ou 'false' mas foi atribu\u00EDdo como [{1}]
+invalidString=O valor da propriedade {0} deve ser informado.
+saveFailure=Falha ao gravar as propriedades e implantar - O Servidor RHQ n\u00E3o funcionar\u00E1 apropriadamente\nCausa\: {0}
+errorLabel=Erro
+saveError=Por algum motivo n\u00E3o foi poss\u00EDvel gravar as configura\u00E7\u00F5es.
+invalidDatabaseSettings=N\u00E3o foi poss\u00EDvel conectar ao banco banco de dados com as propriedades informadas. \nFavor verificar as configura\u00E7\u00F5es do banco de dados e certifircar-se de que est\u00E1 em execu\u00E7\u00E3o.
+setPropertiesInstructions=Estas s\u00E3o as configura\u00E7\u00F5es para a instala\u00E7\u00E3o do Servidor RHQ. \nVoc\u00EA pode customizar alguma, todas ou nenhuma conforme necess\u00E1rio. Clique no nome da propriedade para visualizar a ajuda espec\u00EDfica. Altera\u00E7\u00F5es nas configura\u00E7\u00F5es marcadas como "Restart Necess\u00E1rio" \nn\u00E3o ter\u00E3o efeito at\u00E9 que o servidor seja reiniciado. Nesse caso reinicie o servidor imediatamente ap\u00F3s a instala\u00E7\u00E3o ter sido conclu\u00EDda com sucesso.
+advancedSettingsInstructions=Marque esta caixa de sele\u00E7\u00E3o para visualizar as configura\u00E7\u00F5es avan\u00E7adas.
+installButtonsText=Pressione o bot\u00E3o 'Instala\u00E7\u00E3o de Produ\u00E7\u00E3o' para uma instala\u00E7\u00E3o normal.\nPressione o bot\u00E3o 'Instala\u00E7ao Embutida' para criar rapidamente um ambiente completo com a ajuda do banco de dados e do agente embutidos. A instala\u00E7\u00E3o embutida possui apenas o prop\u00F3sito de demonstra\u00E7\u00E3o e avalia\u00E7\u00E3o\!
+orText=-- ou --
+saveEmbeddedMode=Instala\u00E7\u00E3o habilitada
+databaseSettingsInstructions=As propriedades do banco de dados definem o banco de dados configurado para esta instala\u00E7\u00E3o. Todos os campos s\u00E3o necess\u00E1rios. Use o bot\u00E3o "Testar Conex\u00E3o" para validar as propriedades.
+installSettingsInstructions=As propriedades de acesso definem localiza\u00E7\u00E3o (endpoint) do servidor.
+installSettingsNote1=No caso de uma atualiza\u00E7\u00E3o ou reinstala\u00E7\u00E3o selecione a partir da lista de servidores registrados\:
+installSettingsNote2=No caso de uma nova instala\u00E7\u00E3o informe as propriedades abaixo\:
+serverSettingsInstructions=Todos os campos abaixo s\u00E3o necess\u00E1rios.
+save=Instalar Servidor\!
+yesString=Sim
+noString=N\u00E3o
+propertyName=Nome da Propriedade
+value=Valor
+requiresRestart=Restart necess\u00E1rio?
+welcomeTitle=Bem vindo ao RHQ\!
+welcomeMessage=Bem vindo \u00E0 instala\u00E7\u00E3o do RHQ. Utilize esta p\u00E1gina \npara instalar e configurar o Servidor RHQ. \nAp\u00F3s completar a instala\u00E7\u00E3o voc\u00EA poder\u00E1 se autenticar e usar o RHQ.
+starting=Iniciando, por favor aguarde...
+alreadyInstalled=RHQ ser\u00E1 instalado\!
+alreadyInstalledStartedLink=Pronto\! Clique aqui para come\u00E7ar\!
+startInstallingLink=Clique aqui para continuar a instala\u00E7\u00E3o.
+backToSettingsLink=Retornar \u00E0 p\u00E1gina de configura\u00E7\u00E3o
+showAdvancedSettings=Mostrar configura\u00E7\u00F5es avan\u00E7adas
+propertyDatabaseType=Tipo de Banco de Dados
+propertyDatabaseTypeHelp=-TipoBancoDeDados
+propertyDatabaseConnectionUrl=URL de conex\u00E3o do Banco de Dados
+propertyDatabaseUserName=Usu\u00E1rio do Banco de Dados
+propertyDatabasePassword=Senha do Banco de Dados
+propertyEmbeddedRHQAgentEnabled=Agente embutido habilitado
+propertyEmbeddedRHQAgentName=Nome do Agente embutido
+propertyEmbeddedRHQAgentDisableNativeSystem=Desabilitar sistema nativo no Agente embutido
+propertyEmbeddedRHQAgentResetConfiguration=Reconfigurar Agente embutido
+propertyOperationTimeout=Timeout padr\u00E3o para invocar uma opera\u00E7\u00E3o
+introduceHelpDocs=Favor consultar a documenta\u00E7\u00E3o atrav\u00E9s dos links abaixo para saber mais a respeito do RHQ\:
+helpDocRHQServerInstallGuideLabel=RHQ Server - Guia de Instala\u00E7\u00E3o
+helpDocRHQGuiConsoleUsersGuideLabel=RHQ GUI Console - Guia do Usu\u00E1rio
+helpDocRHQServerUsersGuideLabel=RHQ Server - Guia do Usu\u00E1rio
+helpDocRHQAgentUsersGuideLabel=RHQ Agent - Guia do Usu\u00E1rio
+helpDocFaqLabel=Perguntas Frequentes (FAQ)
+helpDocRHQServerPropParentPage=http://support.rhq-project.org/display/RHQ/Configuring+the+Server#ConfiguringtheServer
+newServerSelectItem=Novo Servidor
+registeredServersLabel=Servidores Registrados
+propertyHighAvailabilityName=Nome do Servidor
+propertyMaintenanceModeAtStart=Modo de manuten\u00E7\u00E3o na Inicializa\u00E7\u00E3o
+propertyHighAvailabilityEndpointAddress=Endere\u00E7o p\u00FAblico do Servidor
+propertyHighAvailabilityAffinityGroup=Nome do Grupo de Afinidade do Servidor
diff --git a/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml b/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml
index fc785ed..6872fe3 100644
--- a/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml
+++ b/modules/enterprise/gui/installer-war/src/main/webapp/WEB-INF/faces-config.xml
@@ -57,6 +57,7 @@
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
<supported-locale>fr</supported-locale>
+ <supported-locale>pt_br</supported-locale>
</locale-config>
</application>
commit 6cd39ac10e7c6f8ba3b63fc9dd31eef482c457f2
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 16 03:07:45 2010 -0400
BZ-586503: fix for retrieving event buckets for (auto)groups w/1000+ members
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/event/Event.java b/modules/core/domain/src/main/java/org/rhq/core/domain/event/Event.java
index abf5bc2..8335fdd 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/event/Event.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/event/Event.java
@@ -66,8 +66,6 @@ import org.rhq.core.domain.resource.Resource;
+ " JOIN es.resource res " //
+ " JOIN res.explicitGroups ig " // use explicit here, this is not an authz check
+ " WHERE ig.id = :groupId )"),
- @NamedQuery(name = Event.FIND_EVENTS_FOR_RESOURCES_AND_TIME, query = "SELECT ev FROM Event ev "
- + " JOIN ev.source.resource res WHERE res IN (:resources) AND ev.timestamp BETWEEN :start AND :end "),
@NamedQuery(name = Event.FIND_EVENTS_FOR_RESOURCE_ID_AND_TIME, query = "SELECT ev FROM Event ev "
+ " JOIN ev.source evs JOIN evs.resource res WHERE res.id = :resourceId AND ev.timestamp BETWEEN :start AND :end "),
@NamedQuery(name = Event.FIND_EVENTS_FOR_RESOURCE_ID_AND_TIME_SEVERITY, query = "SELECT ev FROM Event ev "
@@ -96,7 +94,6 @@ public class Event implements Serializable {
public static final String DELETE_BY_EVENT_IDS = "Event.deleteByEventIds";
public static final String DELETE_ALL_BY_RESOURCE = "Event.deleteAllByResource";
public static final String DELETE_ALL_BY_RESOURCE_GROUP = "Event.deleteAllByResourceGroup";
- public static final String FIND_EVENTS_FOR_RESOURCES_AND_TIME = "Event.FIND_EVENTS_FOR_RESOURCES_AND_TIME";
public static final String FIND_EVENTS_FOR_RESOURCE_ID_AND_TIME = "Event.FIND_EVENTS_FOR_RESOURCE_ID_AND_TIME";
public static final String FIND_EVENTS_FOR_RESOURCE_ID_AND_TIME_SEVERITY = "Event.FIND_EVENTS_FOR_RESOURCE_ID_AND_TIME_Severity";
public static final String GET_DETAILS_FOR_EVENT_IDS = "Event.GET_DETAILS_FOR_EVENT_IDS";
@@ -262,8 +259,9 @@ public class Event implements Serializable {
@Override
public String toString() {
- return this.getClass().getName().substring(this.getClass().getName().lastIndexOf(".")+1) + "[" + "id=" + this.id + ", " + "source=" + this.source + ", "
- + "timestamp=" + this.timestamp + ", " + "severity=" + this.severity + ", " + "detail=" + this.detail + "]";
+ return this.getClass().getName().substring(this.getClass().getName().lastIndexOf(".") + 1) + "[" + "id="
+ + this.id + ", " + "source=" + this.source + ", " + "timestamp=" + this.timestamp + ", " + "severity="
+ + this.severity + ", " + "detail=" + this.detail + "]";
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/TimelineAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/TimelineAction.java
index 2625d25..1e02793 100755
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/TimelineAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/visibility/TimelineAction.java
@@ -18,7 +18,6 @@
*/
package org.rhq.enterprise.gui.legacy.action.resource.common.monitor.visibility;
-import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -38,6 +37,7 @@ import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.beans.TimelineBean;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.event.EventManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementPreferences;
import org.rhq.enterprise.server.measurement.MeasurementPreferences.MetricRangePreferences;
@@ -60,32 +60,19 @@ public class TimelineAction extends TilesAction {
long end = rangePreferences.end;
long[] intervals = new long[DefaultConstants.DEFAULT_CHART_POINTS];
- // Get the events count
- ServletContext ctx = getServlet().getServletContext();
-
int resourceId = WebUtility.getOptionalIntRequestParameter(request, ParamConstants.RESOURCE_ID_PARAM, -1);
int groupId = WebUtility.getOptionalIntRequestParameter(request, "groupId", -1);
int parentId = WebUtility.getOptionalIntRequestParameter(request, "parent", -1);
int typeId = WebUtility.getOptionalIntRequestParameter(request, "type", -1);
int ctypeId = WebUtility.getOptionalIntRequestParameter(request, "ctype", -1);
- if (ctypeId > 0 && typeId == -1)
+ if (ctypeId > 0 && typeId == -1) {
typeId = ctypeId;
+ }
EventManagerLocal eventManager = LookupUtil.getEventManager();
- EventSeverity[] eventsCounts;
- if (resourceId > 0) {
- eventsCounts = eventManager.getSeverityBuckets(user.getSubject(), resourceId, begin, end,
- DefaultConstants.DEFAULT_CHART_POINTS);
- } else if (groupId > 0) {
- eventsCounts = eventManager.getSeverityBucketsForCompGroup(user.getSubject(), groupId, begin, end,
- DefaultConstants.DEFAULT_CHART_POINTS);
- } else if (parentId > 0 && typeId > 0) {
- eventsCounts = eventManager.getSeverityBucketsForAutoGroup(user.getSubject(), parentId, typeId, begin, end,
- DefaultConstants.DEFAULT_CHART_POINTS);
- } else {
- log.warn("Invalid input parameter combination, not generating a timeline");
- return null;
- }
+ EntityContext context = new EntityContext(resourceId, groupId, parentId, typeId);
+ EventSeverity[] eventsCounts = eventManager.getSeverityBucketsByContext(user.getSubject(), context, begin, end,
+ DefaultConstants.DEFAULT_CHART_POINTS);
// Create the time intervals beans
TimelineBean[] beans = new TimelineBean[intervals.length];
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/graphs/EventsTimelineUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/graphs/EventsTimelineUIBean.java
index 868306f..6b5776f 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/graphs/EventsTimelineUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/measurement/graphs/EventsTimelineUIBean.java
@@ -3,9 +3,6 @@ package org.rhq.enterprise.gui.measurement.graphs;
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
import org.rhq.core.clientapi.util.TimeUtil;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.enterprise.gui.legacy.DefaultConstants;
@@ -21,8 +18,6 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class EventsTimelineUIBean {
- private final Log log = LogFactory.getLog(EventsTimelineUIBean.class);
-
private EventManagerLocal eventManager = LookupUtil.getEventManager();
private List<TimelineBean> data;
@@ -52,21 +47,8 @@ public class EventsTimelineUIBean {
context = WebUtility.getEntityContext();
- EventSeverity[] eventsCounts;
- if (context.category == EntityContext.Category.Resource) {
- eventsCounts = eventManager.getSeverityBuckets(user.getSubject(), context.resourceId, begin, end,
- numberOfBuckets);
- showLogs = true;
- } else if (context.category == EntityContext.Category.ResourceGroup) {
- eventsCounts = eventManager.getSeverityBucketsForCompGroup(user.getSubject(), context.groupId, begin, end,
- numberOfBuckets);
- } else if (context.category == EntityContext.Category.AutoGroup) {
- eventsCounts = eventManager.getSeverityBucketsForAutoGroup(user.getSubject(), context.parentResourceId,
- context.resourceTypeId, begin, end, numberOfBuckets);
- } else {
- log.warn("Invalid input parameter combination, not generating a timeline");
- return;
- }
+ EventSeverity[] eventsCounts = eventManager.getSeverityBucketsByContext(user.getSubject(), context, begin, end,
+ numberOfBuckets);
data = new ArrayList<TimelineBean>();
long interval = TimeUtil.getInterval(begin, end, numberOfBuckets);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
index ed5995e..f49a11a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
@@ -28,20 +28,17 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.jetbrains.annotations.NotNull;
import org.jboss.annotation.ejb.TransactionTimeout;
@@ -58,8 +55,6 @@ import org.rhq.core.domain.event.EventDefinition;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.domain.event.EventSource;
import org.rhq.core.domain.event.composite.EventComposite;
-import org.rhq.core.domain.resource.Resource;
-import org.rhq.core.domain.resource.group.GroupCategory;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.jdbc.JDBCUtil;
@@ -70,7 +65,6 @@ import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.instrumentation.MeasurementMonitor;
-import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
@@ -78,6 +72,7 @@ import org.rhq.enterprise.server.util.CriteriaQueryRunner;
* Manager for Handling of {@link Event}s.
* @author Heiko W. Rupp
* @author Ian Springer
+ * @author Joseph Marques
*/
@Stateless
@javax.annotation.Resource(name = "RHQ_DS", mappedName = RHQConstants.DATASOURCE_JNDI_NAME)
@@ -104,7 +99,6 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
@javax.annotation.Resource(name = "RHQ_DS")
private DataSource rhqDs;
- private DatabaseType dbType;
@EJB
private AlertConditionCacheManagerLocal alertConditionCacheManager;
@@ -112,24 +106,8 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
@EJB
private AuthorizationManagerLocal authorizationManager;
- @EJB
- private ResourceGroupManagerLocal resGrpMgr;
-
Log log = LogFactory.getLog(EventManagerBean.class);
- @PostConstruct
- public void init() {
- Connection conn = null;
- try {
- conn = rhqDs.getConnection();
- dbType = DatabaseTypeFactory.getDatabaseType(conn);
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- JDBCUtil.safeClose(conn);
- }
- }
-
public void addEventData(Map<EventSource, Set<Event>> events) {
if (events == null || events.size() == 0)
@@ -237,24 +215,6 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
return deleted;
}
- @NotNull
- @SuppressWarnings("unchecked")
- private List<Event> findEventsForResources(Subject subject, List<Resource> resources, long startDate, long endDate) {
-
- if (resources == null || resources.size() == 0)
- return new ArrayList<Event>();
-
- // TODO rewrite using getEvents
-
- Query q = entityManager.createNamedQuery(Event.FIND_EVENTS_FOR_RESOURCES_AND_TIME);
- q.setParameter("resources", resources);
- q.setParameter("start", startDate);
- q.setParameter("end", endDate);
- List<Event> ret = q.getResultList();
-
- return ret;
- }
-
public int[] getEventCounts(Subject subject, int resourceId, long begin, long end, int numBuckets) {
int[] buckets = new int[numBuckets];
@@ -276,86 +236,6 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
return buckets;
}
- public EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets) {
- if (authorizationManager.canViewResource(subject, resourceId) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view event buckets for resource[id=" + resourceId + "]");
- }
-
- try {
- Resource res = entityManager.find(Resource.class, resourceId);
- List<Resource> resources = new ArrayList<Resource>(1);
- resources.add(res);
- return getSeverityBucketsForResources(subject, resources, begin, end, numBuckets);
- } catch (NoResultException nre) {
- return new EventSeverity[numBuckets];
- }
- }
-
- public EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentId, int type, long begin,
- long end, int numBuckets) {
-
- List<Resource> resources = resGrpMgr.findResourcesForAutoGroup(subject, parentId, type);
- for (Resource res : resources) {
- if (authorizationManager.canViewResource(subject, res.getId()) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view event buckets for autoGroup[parentResourceId=" + parentId
- + ", resourceTypeId=" + type + "], root cause: missing permission to view resource[id="
- + res.getId() + "]");
- }
- }
-
- return getSeverityBucketsForResources(subject, resources, begin, end, numBuckets);
-
- }
-
- public EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int groupId, long begin, long end,
- int numBuckets) {
-
- if (authorizationManager.canViewGroup(subject, groupId) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view event buckets for resourceGroup[id=" + groupId + "]");
- }
-
- List<Resource> resources = resGrpMgr.findResourcesForResourceGroup(subject, groupId, GroupCategory.COMPATIBLE);
- return getSeverityBucketsForResources(subject, resources, begin, end, numBuckets);
-
- }
-
- /**
- * Provide the buckets for a timeline with the (most severe) severity for each bucket.
- * @param subject Subject of the caller
- * @param resources List of resources for which we want to know the data
- * @param begin Begin date
- * @param end End date
- * @param numBuckets Number of buckets to distribute into.
- * @return
- */
- private EventSeverity[] getSeverityBucketsForResources(Subject subject, List<Resource> resources, long begin,
- long end, int numBuckets) {
- EventSeverity[] buckets = new EventSeverity[numBuckets];
- if (resources == null || resources.size() == 0) {
- return buckets; // TODO fill with some fake severity 'none' ?
- }
-
- // TODO possibly rewrite query so that the db calculates the buckets (?)
- List<Event> events = findEventsForResources(subject, resources, begin, end);
-
- long timeDiff = end - begin;
- long timePerBucket = timeDiff / numBuckets;
-
- for (Event event : events) {
- long evTime = event.getTimestamp();
- evTime = evTime - begin;
- int bucket = (int) (evTime / timePerBucket);
- if (event.getSeverity().isMoreSevereThan(buckets[bucket])) {
- buckets[bucket] = event.getSeverity();
- }
- }
-
- return buckets;
- }
-
@SuppressWarnings("unchecked")
public EventComposite getEventDetailForEventId(Subject subject, int eventId) throws EventException {
Query q = entityManager.createNamedQuery(Event.GET_DETAILS_FOR_EVENT_IDS);
@@ -424,6 +304,50 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
return results;
}
+ @SuppressWarnings("unchecked")
+ public EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
+ int bucketCount) {
+
+ EventCriteria criteria = new EventCriteria();
+ criteria.addFilterStartTime(begin);
+ criteria.addFilterEndTime(end);
+
+ /*
+ * if the bucket computation is pushed into the database, it saves on data transfer across the wire. this
+ * solution is currently querying N number of strings (event.severity) and N number of longs (event.timestamp),
+ * where N is the number of events between 'begin' and 'end'. if the severity buckets are computed in a single
+ * query, the wire load would only be K integers, where K is the bucketCount.
+ */
+ CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
+ String replacementSelectList = " event.severity, event.timestamp ";
+ generator.alterProjection(replacementSelectList);
+
+ if (authorizationManager.isInventoryManager(subject) == false) {
+ generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE,
+ "source.resource", subject.getId());
+ }
+
+ CriteriaQueryRunner<Object[]> queryRunner = new CriteriaQueryRunner(criteria, generator, entityManager);
+ PageList<Object[]> flyWeights = queryRunner.execute();
+
+ EventSeverity[] buckets = new EventSeverity[bucketCount];
+ long timeDiff = end - begin;
+ long timePerBucket = timeDiff / bucketCount;
+
+ for (Object[] nextFly : flyWeights) {
+ long eventTime = (Long) nextFly[1];
+ EventSeverity eventSeverity = (EventSeverity) nextFly[0];
+
+ eventTime = eventTime - begin;
+ int bucket = (int) (eventTime / timePerBucket);
+ if (eventSeverity.isMoreSevereThan(buckets[bucket])) {
+ buckets[bucket] = eventSeverity;
+ }
+ }
+
+ return buckets;
+ }
+
public PageList<EventComposite> findEventComposites(Subject subject, EntityContext context, long begin, long end,
EventSeverity[] severities, String source, String detail, PageControl pc) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
index f503799..3e4164f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
@@ -91,53 +91,19 @@ public interface EventManagerLocal {
int deleteAllEventsForCompatibleGroup(Subject subject, int groupId);
+ PageList<EventComposite> findEventComposites(Subject subject, EntityContext context, long begin, long end,
+ EventSeverity[] severities, String source, String detail, PageControl pc);
+
+ PageList<EventComposite> findEventCompositesByCriteria(Subject subject, EventCriteria criteria);
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- /**
- * Provide the buckets for a timeline with the (most severe) severity for each bucket.
- * @param subject Subject of the caller
- * @param resourceId Id of the resource for which we want to know the data
- * @param begin Begin date
- * @param end End date
- * @param numBuckets Number of buckets to distribute into.
- * @return
- * @throws FetchException TODO
- */
- EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
-
- /**
- * Provide the buckets for a timeline with the (most severe) severity for each bucket.
- * @param subject Subject of the caller
- * @param parentId Id of the parent of the autogroup for which we want to know the data
- * @param type Id of the children type of the autogroup
- * @param begin Begin date
- * @param end End date
- * @param numBuckets Number of buckets to distribute into.
- * @return
- */
- EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentId, int type, long begin, long end,
- int numBuckets);
-
- /**
- * Provide the buckets for a timeline with the (most severe) severity for each bucket.
- * @param subject Subject of the caller
- * @param groupId Id of the compatible group for which we want to know the data
- * @param begin Begin date
- * @param end End date
- * @param numBuckets Number of buckets to distribute into.
- * @return
- * @throws FetchException TODO
- */
- EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int groupId, long begin, long end, int numBuckets);
-
- PageList<EventComposite> findEventComposites(Subject subject, EntityContext context, long begin, long end,
- EventSeverity[] severities, String source, String detail, PageControl pc);
-
- PageList<EventComposite> findEventCompositesByCriteria(Subject subject, EventCriteria criteria);
+ EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
+ int bucketCount);
PageList<Event> findEventsByCriteria(Subject subject, EventCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
index 424a529..b227152 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerRemote.java
@@ -29,6 +29,7 @@ import org.rhq.core.domain.criteria.EventCriteria;
import org.rhq.core.domain.event.Event;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.system.ServerVersion;
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
@@ -37,26 +38,9 @@ import org.rhq.enterprise.server.system.ServerVersion;
public interface EventManagerRemote {
@WebMethod
- EventSeverity[] getSeverityBuckets( //
+ EventSeverity[] getSeverityBucketsByContext( //
@WebParam(name = "subject") Subject subject, //
- @WebParam(name = "resourceId") int resourceId, //
- @WebParam(name = "begin") long begin, //
- @WebParam(name = "end") long end, //
- @WebParam(name = "numBuckets") int numBuckets);
-
- @WebMethod
- EventSeverity[] getSeverityBucketsForAutoGroup( //
- @WebParam(name = "subject") Subject subject, //
- @WebParam(name = "parentResourceId") int parentResourceId, //
- @WebParam(name = "resourceTypeId") int resourceTypeId, //
- @WebParam(name = "begin") long begin, //
- @WebParam(name = "end") long end, //
- @WebParam(name = "numBuckets") int numBuckets);
-
- @WebMethod
- EventSeverity[] getSeverityBucketsForCompGroup( //
- @WebParam(name = "subject") Subject subject, //
- @WebParam(name = "resourceGroupId") int resourceGroupId, //
+ @WebParam(name = "context") EntityContext context, //
@WebParam(name = "begin") long begin, //
@WebParam(name = "end") long end, //
@WebParam(name = "numBuckets") int numBuckets);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index 2892d58..d6bb99c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -126,6 +126,7 @@ import org.rhq.enterprise.server.auth.SubjectException;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.authz.RoleManagerLocal;
import org.rhq.enterprise.server.bundle.BundleManagerLocal;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
import org.rhq.enterprise.server.configuration.ConfigurationUpdateStillInProgressException;
import org.rhq.enterprise.server.content.AdvisoryException;
@@ -721,19 +722,9 @@ public class WebservicesManagerBean implements WebservicesRemote {
return eventManager.findEventsByCriteria(subject, criteria);
}
- public EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets) {
- return eventManager.getSeverityBuckets(subject, resourceId, begin, end, numBuckets);
- }
-
- public EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
- long begin, long end, int numBuckets) {
- return eventManager.getSeverityBucketsForAutoGroup(subject, parentResourceId, resourceTypeId, begin, end,
- numBuckets);
- }
-
- public EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int resourceGroupId, long begin, long end,
+ public EventSeverity[] getSeverityBucketsByContext(Subject subject, EntityContext context, long begin, long end,
int numBuckets) {
- return eventManager.getSeverityBucketsForCompGroup(subject, resourceGroupId, begin, end, numBuckets);
+ return eventManager.getSeverityBucketsByContext(subject, context, begin, end, numBuckets);
}
//EVENTMANAGER: END ----------------------------------
commit 3bb9ae8d8d7e387a5ec769041c367483284ea68b
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 16 03:07:04 2010 -0400
BZ-586503: fix compile error loading events in the timeline view
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/events/EventEventsJSON.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/events/EventEventsJSON.jsp
index 87a791d..0bad7a1 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/events/EventEventsJSON.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/events/EventEventsJSON.jsp
@@ -14,6 +14,7 @@
<%@ page import="java.util.regex.Pattern"%>
<%@ page import="java.util.*"%>
<%@ page import="org.rhq.core.domain.event.EventSeverity"%>
+<%@ page import="org.rhq.enterprise.server.common.EntityContext"%>
<%@ page import="org.rhq.core.domain.util.PageOrdering"%>
<%@ page contentType="text/javascript" language="java" %>
@@ -32,8 +33,8 @@
boolean tooManyEvents = false;
PageList<EventComposite> list =
- eventManager.findEvents(subject, new int[] {resourceId}, begin, end, null,
- null, null, new PageControl(0,10000, new OrderingField("ev.timestamp", PageOrdering.ASC)));
+ eventManager.findEventComposites(subject, EntityContext.forResource(resourceId), begin, end, null,
+ null, null, new PageControl(0,10000, new OrderingField("timestamp", PageOrdering.ASC)));
/* TODO GH: Add alert to screen
if (list.getTotalSize() != list.size()) {
commit 823e1f291747019a3a15e8d47cdee1f56421b133
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 16 00:54:05 2010 -0400
BZ-594516: support implicit substring matching for bracketed properties
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/framework/ExpressionEvaluator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/framework/ExpressionEvaluator.java
index 8540c63..69e6ac0 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/framework/ExpressionEvaluator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/framework/ExpressionEvaluator.java
@@ -494,7 +494,7 @@ public class ExpressionEvaluator implements Iterable<ExpressionEvaluator.Result>
// (SELECT max(mdt.id.timestamp) FROM MeasurementDataTrait mdt WHERE sched.id = mdt.schedule.id)
String traitName = parseTraitName(originalTokens);
addJoinCondition(JoinCondition.SCHEDULES);
- populatePredicateCollections(METRIC_DEF_ALIAS + ".name", traitName, false);
+ populatePredicateCollections(METRIC_DEF_ALIAS + ".name", "%" + traitName + "%", false);
populatePredicateCollections(TRAIT_ALIAS + ".value", value);
whereStatics.add(TRAIT_ALIAS + ".schedule = " + JoinCondition.SCHEDULES.alias);
whereStatics.add(TRAIT_ALIAS
@@ -532,7 +532,7 @@ public class ExpressionEvaluator implements Iterable<ExpressionEvaluator.Result>
addJoinCondition(joinCondition);
addJoinCondition(definitionJoinCondition);
- populatePredicateCollections(PROP_SIMPLE_ALIAS + ".name", propertyName, false);
+ populatePredicateCollections(PROP_SIMPLE_ALIAS + ".name", "%" + propertyName + "%", false);
populatePredicateCollections(PROP_SIMPLE_ALIAS + ".stringValue", value);
whereStatics.add(PROP_SIMPLE_ALIAS + ".configuration = " + joinCondition.alias);
@@ -707,6 +707,7 @@ public class ExpressionEvaluator implements Iterable<ExpressionEvaluator.Result>
whereConditions.put(predicateName, argumentName);
whereReplacements.put(argumentName, value);
+
whereReplacementTypes.put(argumentName, expressionType);
}
@@ -1036,7 +1037,8 @@ public class ExpressionEvaluator implements Iterable<ExpressionEvaluator.Result>
ending = QueryUtility.getEscapeClause();
}
}
- result += whereCondition.getKey() + whereConditionOperator + ":" + whereCondition.getValue() + ending;
+ result += whereCondition.getKey() + whereConditionOperator + ":" + whereCondition.getValue()
+ + ending;
}
first = false;
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/definition/framework/test/ExpressionEvaluatorTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/definition/framework/test/ExpressionEvaluatorTest.java
index 1719aae..7b958ef 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/definition/framework/test/ExpressionEvaluatorTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/group/definition/framework/test/ExpressionEvaluatorTest.java
@@ -21,13 +21,10 @@ package org.rhq.enterprise.server.resource.group.definition.framework.test;
import java.util.Arrays;
import java.util.List;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.rhq.enterprise.server.resource.group.definition.framework.ExpressionEvaluator;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
-import org.rhq.enterprise.server.util.LookupUtil;
import org.rhq.enterprise.server.util.QueryUtility;
public class ExpressionEvaluatorTest extends AbstractEJB3Test {
@@ -70,7 +67,7 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
"SELECT res.id FROM Resource res " + //
" JOIN res.pluginConfiguration pluginConf, PropertySimple simple, PropertyDefinition simpleDef " + //
" JOIN res.resourceType.pluginConfigurationDefinition pluginConfDef " + //
- " WHERE simple.name = :arg1 " + //
+ " WHERE simple.name LIKE :arg1 ESCAPE '" + escapeChar + "'" + //
" AND simple.stringValue = :arg2 " + //
" AND simple.configuration = pluginConf " + //
" AND simpleDef.configurationDefinition = pluginConfDef " + //
@@ -81,8 +78,8 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
"SELECT res.id FROM Resource res " + //
" JOIN res.resourceConfiguration conf, PropertySimple simple, PropertyDefinition simpleDef " + //
" JOIN res.resourceType.resourceConfigurationDefinition confDef " + //
- " WHERE simple.name = :arg1 " + //
- " AND simple.stringValue like :arg2 ESCAPE '" + escapeChar + "'" + //
+ " WHERE simple.name LIKE :arg1 ESCAPE '" + escapeChar + "'" + //
+ " AND simple.stringValue LIKE :arg2 ESCAPE '" + escapeChar + "'" + //
" AND simple.configuration = conf " + //
" AND simpleDef.configurationDefinition = confDef " + //
" AND simple.name = simpleDef.name AND simpleDef.type != 'PASSWORD' " },
@@ -103,7 +100,7 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
" SELECT simple.stringValue FROM Resource res " + //
" JOIN res.resourceConfiguration conf, PropertySimple simple, PropertyDefinition simpleDef " + //
" JOIN res.resourceType.resourceConfigurationDefinition confDef " + //
- " WHERE simple.name = :arg1 " + //
+ " WHERE simple.name LIKE :arg1 ESCAPE '" + escapeChar + "'" + //
" AND simple.configuration = conf " + //
" AND simpleDef.configurationDefinition = confDef " + //
" AND simple.name = simpleDef.name AND simpleDef.type != 'PASSWORD' " + //
@@ -112,7 +109,7 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
" SELECT res.id FROM Resource res " + //
" JOIN res.resourceConfiguration conf, PropertySimple simple, PropertyDefinition simpleDef " + //
" JOIN res.resourceType.resourceConfigurationDefinition confDef " + //
- " WHERE simple.name = :arg1 " + //
+ " WHERE simple.name LIKE :arg1 ESCAPE '" + escapeChar + "'" + //
" AND simple.stringValue = :arg2 " + //
" AND simple.configuration = conf " + //
" AND simpleDef.configurationDefinition = confDef " + //
@@ -124,7 +121,7 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
" SELECT res.id " + //
" FROM Resource res JOIN res.schedules sched JOIN sched.definition def, MeasurementDataTrait trait" + //
" WHERE res.resourceType.name = :arg1 " + //
- " AND def.name = :arg2 " + //
+ " AND def.name LIKE :arg2 ESCAPE '" + escapeChar + "'" + //
" AND trait.value = :arg3 " + //
" AND trait.schedule = sched " + //
" AND trait.id.timestamp = " + //
@@ -150,7 +147,7 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
"SELECT res.id FROM Resource res " + //
" JOIN res.pluginConfiguration pluginConf, PropertySimple simple, PropertyDefinition simpleDef " + //
" JOIN res.resourceType.pluginConfigurationDefinition pluginConfDef " + //
- " WHERE simple.name = :arg1 " + //
+ " WHERE simple.name LIKE :arg1 ESCAPE '" + escapeChar + "'" + //
" AND simple.stringValue IS NULL " + //
" AND simple.configuration = pluginConf " + //
" AND simpleDef.configurationDefinition = pluginConfDef " + //
@@ -199,13 +196,15 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
expectedGroupResult = cleanUp(expectedGroupResult);
actualGroupResult = cleanUp(actualGroupResult);
- //System.out.println("Expected[" + i + "]: \"" + expectedTopResult + "\"");
- //System.out.println("Received[" + i + "]: \"" + actualTopResult + "\"");
- assert expectedTopResult.equalsIgnoreCase(actualTopResult)
- && expectedGroupResult.equalsIgnoreCase(actualGroupResult) : "TestCase[" + i + "] = \""
- + inputExpressions + "\" failed. \n" + "Expected Top Result: \"" + expectedTopResult + "\"\n"
- + "Received Top Result: \"" + actualTopResult + "\"\n" + "Expected Group Result: \""
- + expectedGroupResult + "\"\n" + "Received Group Result: \"" + actualGroupResult + "\"\n";
+ boolean success = expectedTopResult.equalsIgnoreCase(actualTopResult)
+ && expectedGroupResult.equalsIgnoreCase(actualGroupResult);
+ if (!success) {
+ System.out.println("TestCase[" + i + "] = \"" + inputExpressions + "\" failed. \n"
+ + "Expected Top Result: \"" + expectedTopResult + "\"\n" + "Received Top Result: \""
+ + actualTopResult + "\"\n" + "Expected Group Result: \"" + expectedGroupResult + "\"\n"
+ + "Received Group Result: \"" + actualGroupResult + "\"\n");
+ }
+ assert success;
}
} finally {
getTransactionManager().rollback();
@@ -215,11 +214,14 @@ public class ExpressionEvaluatorTest extends AbstractEJB3Test {
@Test(groups = "integration.session")
public void testTokenizer() {
- String[] input = { "resource.child.name", "resource.pluginConfiguration[partition]",
- "resource.pluginConfiguration[partition].contains", "resource.pluginConfiguration[partition.name].contains" };
- String[][] expectedOutput = { { "resource", "child", "name" },
- { "resource", "pluginConfiguration[partition]" },
- { "resource", "pluginConfiguration[partition]", "contains" },
+ String[] input = { "resource.child.name", //
+ "resource.pluginConfiguration[partition]", //
+ "resource.pluginConfiguration[partition].contains", //
+ "resource.pluginConfiguration[partition.name].contains" };
+
+ String[][] expectedOutput = { { "resource", "child", "name" }, //
+ { "resource", "pluginConfiguration[partition]" }, //
+ { "resource", "pluginConfiguration[partition]", "contains" }, //
{ "resource", "pluginConfiguration[partition.name]", "contains" } };
ExpressionEvaluator evaluator = new ExpressionEvaluator();
commit c1a231d4fd8eac13c0d42903181b48db1747a2e9
Author: Joseph Marques <joseph(a)redhat.com>
Date: Tue Jun 15 17:00:59 2010 -0400
BZ-586503: fix for listing event histories for (auto)groups w/1000+ members
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
index a52a1be..31119fa 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java
@@ -22,11 +22,9 @@
*/
package org.rhq.core.domain.auth;
-import org.rhq.core.domain.authz.Role;
-import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.util.Recordizable;
-
-import org.jetbrains.annotations.NotNull;
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -45,9 +43,11 @@ import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Set;
+import org.jetbrains.annotations.NotNull;
+
+import org.rhq.core.domain.authz.Role;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.util.Recordizable;
/**
* @author Greg Hinkle
@@ -119,13 +119,33 @@ import java.util.Set;
+ "FROM Resource res, IN (res.implicitGroups) g, IN (g.roles) r, IN (r.subjects) s "
+ "WHERE s = :subject AND res.id IN (:resourceIds)"),
- @NamedQuery(name = Subject.QUERY_CAN_VIEW_GROUP, query = "SELECT count(g) " + "FROM ResourceGroup g "
- + "WHERE (g.id IN (SELECT rg.id " + " FROM ResourceGroup rg "
- + " JOIN rg.roles r " + " JOIN r.subjects s "
- + " WHERE s = :subject) " + " OR g.id IN (SELECT rg.id "
- + " FROM ResourceGroup rg " + " JOIN rg.clusterResourceGroup crg "
- + " JOIN crg.roles r " + " JOIN r.subjects s "
- + " WHERE crg.recursive = true AND s = :subject)) " + " AND g.id = :groupId"),
+ @NamedQuery(name = Subject.QUERY_CAN_VIEW_GROUP, query = "" //
+ + "SELECT count(g) " //
+ + " FROM ResourceGroup g " //
+ + " WHERE (g.id IN (SELECT rg.id " //
+ + " FROM ResourceGroup rg " //
+ + " JOIN rg.roles r " //
+ + " JOIN r.subjects s " //
+ + " WHERE s = :subject) " //
+ + " OR g.id IN (SELECT rg.id " //
+ + " FROM ResourceGroup rg " //
+ + " JOIN rg.clusterResourceGroup crg " //
+ + " JOIN crg.roles r " //
+ + " JOIN r.subjects s " //
+ + " WHERE crg.recursive = true AND s = :subject)) " //
+ + " AND g.id = :groupId"),
+
+ @NamedQuery(name = Subject.QUERY_CAN_VIEW_AUTO_GROUP, query = "" //
+ + "SELECT COUNT(res.id) " //
+ + " FROM Resource res " //
+ + " WHERE res.parentResource.id = :parentResourceId " //
+ + " AND res.resourceType.id = :resourceTypeId " //
+ + " AND ( :subjectId = -1 OR res.id IN ( SELECT ires " //
+ + " FROM Resource ires " //
+ + " JOIN ires.implicitGroups g " //
+ + " JOIN g.roles r " //
+ + " JOIN r.subjects s " //
+ + " WHERE s.id = :subjectId ) ) "),
/*
* No easy way to test whether ALL resources are in some group in some role in some subject where
@@ -164,7 +184,7 @@ import java.util.Set;
@SequenceGenerator(name = "RHQ_SUBJECT_ID_SEQ", sequenceName = "RHQ_SUBJECT_ID_SEQ")
@Table(name = "RHQ_SUBJECT")
/*@Cache(usage= CacheConcurrencyStrategy.TRANSACTIONAL)*/
-public class Subject implements Serializable, Recordizable {
+public class Subject implements Serializable, Recordizable {
public static final String QUERY_FIND_ALL = "Subject.findAll";
public static final String QUERY_FIND_BY_IDS = "Subject.findByIds";
public static final String QUERY_FIND_BY_NAME = "Subject.findByName";
@@ -182,6 +202,7 @@ public class Subject implements Serializable, Recordizable {
public static final String QUERY_CAN_VIEW_RESOURCE = "Subject.canViewResource";
public static final String QUERY_CAN_VIEW_RESOURCES = "Subject.canViewResources";
public static final String QUERY_CAN_VIEW_GROUP = "Subject.canViewGroup";
+ public static final String QUERY_CAN_VIEW_AUTO_GROUP = "Subject.canViewAutoGroup";
public static final String QUERY_GET_RESOURCES_BY_PERMISSION = "Subject.getResourcesByPermission";
@@ -447,80 +468,80 @@ public class Subject implements Serializable, Recordizable {
return true;
}
-/*
- public void writeExternal(ObjectOutput out) throws IOException {
- ExternalizableStrategy.Subsystem strategy = ExternalizableStrategy.getStrategy();
- out.writeChar(strategy.id());
-
- if (ExternalizableStrategy.Subsystem.REMOTEAPI == strategy) {
- writeExternalRemote(out);
- } else if (ExternalizableStrategy.Subsystem.REFLECTIVE_SERIALIZATION == strategy) {
- EntitySerializer.writeExternalRemote(this, out);
- // reflective serialization misses sessionId because it's not a persistence annotated
- out.writeInt(this.sessionId == null ? 0 : this.sessionId);
- } else {
- writeExternalAgent(out);
+ /*
+ public void writeExternal(ObjectOutput out) throws IOException {
+ ExternalizableStrategy.Subsystem strategy = ExternalizableStrategy.getStrategy();
+ out.writeChar(strategy.id());
+
+ if (ExternalizableStrategy.Subsystem.REMOTEAPI == strategy) {
+ writeExternalRemote(out);
+ } else if (ExternalizableStrategy.Subsystem.REFLECTIVE_SERIALIZATION == strategy) {
+ EntitySerializer.writeExternalRemote(this, out);
+ // reflective serialization misses sessionId because it's not a persistence annotated
+ out.writeInt(this.sessionId == null ? 0 : this.sessionId);
+ } else {
+ writeExternalAgent(out);
+ }
+ }
+
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ char c = in.readChar();
+ if (ExternalizableStrategy.Subsystem.REMOTEAPI.id() == c) {
+ readExternalRemote(in);
+ } else if (ExternalizableStrategy.Subsystem.REFLECTIVE_SERIALIZATION.id() == c) {
+ EntitySerializer.readExternalRemote(this, in);
+ // reflective serialization misses sessionId because it's not a persistence annotated
+ this.sessionId = in.readInt();
+ } else {
+ readExternalAgent(in);
+ }
}
- }
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- char c = in.readChar();
- if (ExternalizableStrategy.Subsystem.REMOTEAPI.id() == c) {
- readExternalRemote(in);
- } else if (ExternalizableStrategy.Subsystem.REFLECTIVE_SERIALIZATION.id() == c) {
- EntitySerializer.readExternalRemote(this, in);
- // reflective serialization misses sessionId because it's not a persistence annotated
+ public void writeExternalAgent(ObjectOutput out) throws IOException {
+ out.writeInt(this.id);
+ out.writeUTF(this.name);
+ out.writeInt(this.sessionId);
+ }
+
+ public void readExternalAgent(ObjectInput in) throws IOException, ClassNotFoundException {
+ this.id = in.readInt();
+ this.name = in.readUTF();
this.sessionId = in.readInt();
- } else {
- readExternalAgent(in);
}
- }
- public void writeExternalAgent(ObjectOutput out) throws IOException {
- out.writeInt(this.id);
- out.writeUTF(this.name);
- out.writeInt(this.sessionId);
- }
-
- public void readExternalAgent(ObjectInput in) throws IOException, ClassNotFoundException {
- this.id = in.readInt();
- this.name = in.readUTF();
- this.sessionId = in.readInt();
- }
-
- // It is assumed that the object is clean of Hibernate proxies (i.e. HibernateDetachUtility has been run if necessary)
- public void writeExternalRemote(ObjectOutput out) throws IOException {
- out.writeInt(this.id);
- out.writeUTF(this.name);
- out.writeUTF((null == firstName) ? "" : firstName);
- out.writeUTF((null == lastName) ? "" : lastName);
- out.writeUTF((null == emailAddress) ? "" : emailAddress);
- out.writeUTF((null == smsAddress) ? "" : smsAddress);
- out.writeUTF((null == phoneNumber) ? "" : phoneNumber);
- out.writeUTF((null == department) ? "" : department);
- out.writeBoolean(factive);
- out.writeBoolean(fsystem);
- out.writeObject(configuration);
- out.writeObject(roles);
- // not supplied by remote: subjectNotifications
- out.writeInt(this.sessionId == null ? 0 : this.sessionId);
- }
-
- @SuppressWarnings("unchecked")
- public void readExternalRemote(ObjectInput in) throws IOException, ClassNotFoundException {
- this.id = in.readInt();
- this.name = in.readUTF();
- this.firstName = in.readUTF();
- this.lastName = in.readUTF();
- this.emailAddress = in.readUTF();
- this.smsAddress = in.readUTF();
- this.phoneNumber = in.readUTF();
- this.department = in.readUTF();
- this.factive = in.readBoolean();
- this.fsystem = in.readBoolean();
- this.configuration = (Configuration) in.readObject();
- this.roles = (Set<Role>) in.readObject();
- this.sessionId = in.readInt();
- }*/
+ // It is assumed that the object is clean of Hibernate proxies (i.e. HibernateDetachUtility has been run if necessary)
+ public void writeExternalRemote(ObjectOutput out) throws IOException {
+ out.writeInt(this.id);
+ out.writeUTF(this.name);
+ out.writeUTF((null == firstName) ? "" : firstName);
+ out.writeUTF((null == lastName) ? "" : lastName);
+ out.writeUTF((null == emailAddress) ? "" : emailAddress);
+ out.writeUTF((null == smsAddress) ? "" : smsAddress);
+ out.writeUTF((null == phoneNumber) ? "" : phoneNumber);
+ out.writeUTF((null == department) ? "" : department);
+ out.writeBoolean(factive);
+ out.writeBoolean(fsystem);
+ out.writeObject(configuration);
+ out.writeObject(roles);
+ // not supplied by remote: subjectNotifications
+ out.writeInt(this.sessionId == null ? 0 : this.sessionId);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void readExternalRemote(ObjectInput in) throws IOException, ClassNotFoundException {
+ this.id = in.readInt();
+ this.name = in.readUTF();
+ this.firstName = in.readUTF();
+ this.lastName = in.readUTF();
+ this.emailAddress = in.readUTF();
+ this.smsAddress = in.readUTF();
+ this.phoneNumber = in.readUTF();
+ this.department = in.readUTF();
+ this.factive = in.readBoolean();
+ this.fsystem = in.readBoolean();
+ this.configuration = (Configuration) in.readObject();
+ this.roles = (Set<Role>) in.readObject();
+ this.sessionId = in.readInt();
+ }*/
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/EventCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/EventCriteria.java
index c6e12e0..9912c1c 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/EventCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/EventCriteria.java
@@ -22,6 +22,9 @@
*/
package org.rhq.core.domain.criteria;
+import java.util.Arrays;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@@ -40,7 +43,7 @@ public class EventCriteria extends Criteria {
private Integer filterId;
private String filterDetail;
private String filterSourceName; // requires overrides
- private EventSeverity filterSeverity;
+ private List<EventSeverity> filterSeverities;
private Long filterStartTime; // requires overrides
private Long filterEndTime; // requires overrides
private Integer filterResourceId; // requires overrides
@@ -73,6 +76,7 @@ public class EventCriteria extends Criteria {
+ " FROM Resource res " //
+ " JOIN res.parentResource parent " //
+ " WHERE parent.id = ? )");
+ filterOverrides.put("severities", "severity IN ( ? )");
}
@Override
@@ -100,8 +104,10 @@ public class EventCriteria extends Criteria {
this.filterEndTime = filterEndTime;
}
- public void addFilterSeverity(EventSeverity filterSeverity) {
- this.filterSeverity = filterSeverity;
+ public void addFilterSeverities(EventSeverity... filterSeverities) {
+ if (filterSeverities != null) {
+ this.filterSeverities = Arrays.asList(filterSeverities);
+ }
}
public void addFilterResourceId(Integer filterResourceId) {
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/event/EventDefinition.java b/modules/core/domain/src/main/java/org/rhq/core/domain/event/EventDefinition.java
index 19464df..75f7b73 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/event/EventDefinition.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/event/EventDefinition.java
@@ -22,9 +22,6 @@
*/
package org.rhq.core.domain.event;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
import java.io.Serializable;
import javax.persistence.Column;
@@ -35,8 +32,6 @@ import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@@ -50,10 +45,6 @@ import org.rhq.core.domain.resource.ResourceType;
* @author Ian Springer
*/
@Entity
-@NamedQueries( { @NamedQuery(name = EventDefinition.QUERY_EVENT_DEFINITIONS_BY_RESOURCE_TYPE_ID, query = "" //
- + "SELECT ed " //
- + " FROM EventDefinition ed " //
- + " WHERE ed.resourceTypeId = :resourceTypeId ") })
@Table(name = EventDefinition.TABLE_NAME)
@SequenceGenerator(name = "idGenerator", sequenceName = EventDefinition.TABLE_NAME + "_ID_SEQ", allocationSize = 100)
public class EventDefinition implements Serializable {
@@ -61,8 +52,6 @@ public class EventDefinition implements Serializable {
public static final String TABLE_NAME = "RHQ_EVENT_DEF";
- public static final String QUERY_EVENT_DEFINITIONS_BY_RESOURCE_TYPE_ID = "EventDefinition.findByResourceTypeId";
-
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "idGenerator")
@@ -167,7 +156,8 @@ public class EventDefinition implements Serializable {
@Override
public String toString() {
- return this.getClass().getName().substring(this.getClass().getName().lastIndexOf(".")+1) + "[" + "id=" + this.id + ", " + "resourceType.name="
+ return this.getClass().getName().substring(this.getClass().getName().lastIndexOf(".") + 1) + "[" + "id="
+ + this.id + ", " + "resourceType.name="
+ ((this.resourceType != null) ? this.resourceType.getName() : "null") + ", " + "name=" + this.name + "]";
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/event/EventHistoryUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/event/EventHistoryUIBean.java
index 089c705..8b033d7 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/event/EventHistoryUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/event/EventHistoryUIBean.java
@@ -212,19 +212,9 @@ public class EventHistoryUIBean extends PagedDataTableUIBean {
return results;
}
- if (context.category == EntityContext.Category.Resource) {
- results = eventManager.findEvents(getSubject(), new int[] { context.resourceId },
- rangePreferences.begin, rangePreferences.end, severities, source, search, pc);
- } else if (context.category == EntityContext.Category.ResourceGroup) {
- results = eventManager.findEventsForCompGroup(getSubject(), context.groupId, rangePreferences.begin,
- rangePreferences.end, severities, source, search, pc);
- } else if (context.category == EntityContext.Category.AutoGroup) {
- results = eventManager.findEventsForAutoGroup(getSubject(), context.parentResourceId,
- context.resourceTypeId, rangePreferences.begin, rangePreferences.end, severities, source, search,
- pc);
- } else {
- log.error(context.getUnknownContextMessage());
- }
+ results = eventManager.findEventComposites(getSubject(), context, rangePreferences.begin,
+ rangePreferences.end, severities, source, search, pc);
+
return results;
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventDetailsAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventDetailsAction.java
index 21eaed5..9109345 100755
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventDetailsAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventDetailsAction.java
@@ -46,6 +46,7 @@ import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.action.BaseAction;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.event.EventManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementPreferences;
import org.rhq.enterprise.server.measurement.MeasurementPreferences.MetricRangePreferences;
@@ -87,22 +88,11 @@ public class EventDetailsAction extends BaseAction {
int type = WebUtility.getOptionalIntRequestParameter(request, "type", -1);
EventManagerLocal eventManager = LookupUtil.getEventManager();
- PageList<EventComposite> events;
Subject subject = user.getSubject();
- if (resourceId > -1) {
- events = eventManager.findEventsForResource(subject, resourceId, begin, begin + interval, null,
- new PageControl(0, MAX_EVENTS_PER_DOT));
- } else if (groupId > -1) {
- events = eventManager.findEventsForCompGroup(subject, groupId, begin, begin + interval, null,
- new PageControl(0, MAX_EVENTS_PER_DOT));
- } else if (parent > -1 && type > -1) {
- events = eventManager.findEventsForAutoGroup(subject, parent, type, begin, begin + interval, null,
- new PageControl(0, MAX_EVENTS_PER_DOT));
- } else {
- log.error("Unknown input combination, can't compute events for input");
- return null;
- }
+ EntityContext context = new EntityContext(resourceId, groupId, parent, type);
+ PageList<EventComposite> events = eventManager.findEventComposites(subject, context, begin, begin
+ + interval, null, null, null, new PageControl(0, MAX_EVENTS_PER_DOT));
MessageResources res = getResources(request);
StringBuffer html;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventsFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventsFormPrepareAction.java
index c931662..45f17ba 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventsFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/events/EventsFormPrepareAction.java
@@ -40,6 +40,7 @@ import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.action.resource.common.monitor.visibility.MetricsControlFormPrepareAction;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.event.EventManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementPreferences;
import org.rhq.enterprise.server.measurement.MeasurementPreferences.MetricRangePreferences;
@@ -108,23 +109,10 @@ public class EventsFormPrepareAction extends MetricsControlFormPrepareAction {
// Perform the query and get the (filtered) events
EventSeverity eventSeverityFilter = getSeverityFromString(eForm.getSevFilter());
- EventSeverity[] filters = new EventSeverity[] { eventSeverityFilter };
-
- List<EventComposite> events;
- if (resourceId > 0) {
- events = eventManager.findEvents(subject, new int[] { resourceId }, begin, end, filters, sourceFilter,
- searchString, pc);
- } else if (groupId > 0) {
- events = eventManager.findEventsForCompGroup(subject, groupId, begin, end, filters, /*eventId,*/
- sourceFilter, searchString, pc);
-
- } else if (parent > 0 && type > 0) {
- events = eventManager.findEventsForAutoGroup(subject, parent, type, begin, end, filters, /*eventId,*/
- sourceFilter, searchString, pc);
- } else {
- log.warn("Invalid input combination - can not list events ");
- return null;
- }
+
+ EntityContext context = new EntityContext(resourceId, groupId, parent, type);
+ List<EventComposite> events = eventManager.findEventComposites(subject, context, begin, end,
+ new EventSeverity[] { eventSeverityFilter }, sourceFilter, searchString, pc);
// highlight filter info
for (EventComposite event : events) {
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/DefinitionFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/DefinitionFormPrepareAction.java
index bf20899..08c83f3 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/DefinitionFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/DefinitionFormPrepareAction.java
@@ -42,6 +42,7 @@ import org.rhq.core.domain.measurement.MeasurementSchedule;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.resource.composite.ResourceFacets;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.enterprise.gui.legacy.Constants;
import org.rhq.enterprise.gui.legacy.action.resource.ResourceForm.FormContext;
@@ -111,8 +112,8 @@ public abstract class DefinitionFormPrepareAction extends TilesAction {
} else {
throw new IllegalArgumentException("Unsupported context: " + formContext);
}
- int eventDefinitionCount = LookupUtil.getEventManager().getEventDefinitionCountForResourceType(type.getId());
- request.setAttribute("showEvents", eventDefinitionCount > 0);
+ ResourceFacets facets = LookupUtil.getResourceTypeManager().getResourceFacets(type.getId());
+ request.setAttribute("showEvents", facets.isEvent());
return null;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
index 77932d0..dccedaa 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
@@ -175,6 +175,29 @@ public class AuthorizationManagerBean implements AuthorizationManagerLocal {
return (count != 0);
}
+ public boolean canViewAutoGroup(Subject subject, int parentResourceId, int resourceTypeId) {
+ if (isInventoryManager(subject)) {
+ return true;
+ }
+
+ Query query = entityManager.createNamedQuery(Subject.QUERY_CAN_VIEW_AUTO_GROUP);
+ query.setParameter("parentResourceId", parentResourceId);
+ query.setParameter("resourceTypeId", resourceTypeId);
+
+ query.setParameter("subject", -1);
+ long baseCount = (Long) query.getSingleResult();
+
+ query.setParameter("subject", subject);
+ long subjectCount = (Long) query.getSingleResult();
+
+ /*
+ * an auto-group is viewable if the count of resources with parent/type filters is identical
+ * to the count of those same resources additionally filtered by standard authorization
+ *
+ */
+ return (baseCount == subjectCount);
+ }
+
public boolean isInventoryManager(Subject subject) {
return hasGlobalPermission(subject, Permission.MANAGE_INVENTORY);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerLocal.java
index 8efe3c7..cbf8cc4 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerLocal.java
@@ -21,7 +21,9 @@ package org.rhq.enterprise.server.authz;
import java.util.Collection;
import java.util.List;
import java.util.Set;
+
import javax.ejb.Local;
+
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.resource.Resource;
@@ -67,6 +69,17 @@ public interface AuthorizationManagerLocal {
boolean canViewGroup(Subject subject, int groupId);
/**
+ * Returns true if the current user has some role attached to this auto-group.
+ *
+ * @param subject the current subject or caller
+ * @param parentResourceId the id of the parent resource filter for this auto-group
+ * @param resourceTypeId the id of the resource type filter for this auto-group
+ *
+ * @return true if the current user has some role attached to this auto-group
+ */
+ boolean canViewAutoGroup(Subject subject, int parentResourceId, int resourceTypeId);
+
+ /**
* Returns true if the current user possesses either: 1) the specified resource permission for the specified
* resource, or 2) the global MANAGE_INVENTORY permission which, by definition, gives full access to the inventory
* (all resources and all groups)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/EntityContext.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/EntityContext.java
index 18e7461..0330286 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/EntityContext.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/common/EntityContext.java
@@ -90,6 +90,18 @@ public class EntityContext {
}
}
+ public static EntityContext forResource(int resourceId) {
+ return new EntityContext(resourceId, null, null, null);
+ }
+
+ public static EntityContext forGroup(int groupId) {
+ return new EntityContext(null, groupId, null, null);
+ }
+
+ public static EntityContext forAutoGroup(int parentResourceId, int resourceTypeId) {
+ return new EntityContext(null, null, parentResourceId, resourceTypeId);
+ }
+
public String getLegacyKey() {
switch (category) {
case Resource:
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
index a540f39..ed5995e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerBean.java
@@ -20,10 +20,8 @@ package org.rhq.enterprise.server.event;
import java.sql.Connection;
import java.sql.PreparedStatement;
-import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -64,19 +62,17 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.group.GroupCategory;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import org.rhq.core.domain.util.PageOrdering;
-import org.rhq.core.server.PersistenceUtility;
import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.alert.engine.AlertConditionCacheManagerLocal;
import org.rhq.enterprise.server.alert.engine.AlertConditionCacheStats;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.measurement.instrumentation.MeasurementMonitor;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
-import org.rhq.enterprise.server.util.QueryUtility;
/**
* Manager for Handling of {@link Event}s.
@@ -243,7 +239,7 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
@NotNull
@SuppressWarnings("unchecked")
- public List<Event> findEventsForResources(Subject subject, List<Resource> resources, long startDate, long endDate) {
+ private List<Event> findEventsForResources(Subject subject, List<Resource> resources, long startDate, long endDate) {
if (resources == null || resources.size() == 0)
return new ArrayList<Event>();
@@ -259,80 +255,13 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
return ret;
}
- public PageList<EventComposite> findEventsForAutoGroup(Subject subject, int parent, int type, long begin,
- long endDate, EventSeverity[] severities, PageControl pc) {
-
- List<Resource> resources = resGrpMgr.findResourcesForAutoGroup(subject, parent, type);
- int[] resourceIds = new int[resources.size()];
- int i = 0;
- for (Resource res : resources)
- resourceIds[i++] = res.getId();
-
- PageList<EventComposite> comp = findEvents(subject, resourceIds, begin, endDate, severities, null, null, pc);
- return comp;
- }
-
- public PageList<EventComposite> findEventsForAutoGroup(Subject subject, int parent, int type, long begin,
- long endDate, EventSeverity[] severities, String source, String searchString, PageControl pc) {
-
- List<Resource> resources = resGrpMgr.findResourcesForAutoGroup(subject, parent, type);
- for (Resource res : resources) {
- if (authorizationManager.canViewResource(subject, res.getId()) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view event history for autoGroup[parentResourceId=" + parent
- + ", resourceTypeId=" + type + "], root cause: missing permission to view resource[id="
- + res.getId() + "]");
- }
- }
-
- int[] resourceIds = new int[resources.size()];
- int i = 0;
- for (Resource res : resources) {
- resourceIds[i++] = res.getId();
- }
-
- PageList<EventComposite> comp = findEvents(subject, resourceIds, begin, endDate, severities, source,
- searchString, pc);
-
- return comp;
- }
-
- public PageList<EventComposite> findEventsForCompGroup(Subject subject, int groupId, long begin, long endDate,
- EventSeverity[] severities, PageControl pc) {
-
- List<Resource> resources = resGrpMgr.findResourcesForResourceGroup(subject, groupId, GroupCategory.COMPATIBLE);
- int[] resourceIds = new int[resources.size()];
- int i = 0;
- for (Resource res : resources) {
- resourceIds[i++] = res.getId();
- }
-
- PageList<EventComposite> comp = findEvents(subject, resourceIds, begin, endDate, severities, null, null, pc);
- return comp;
- }
-
- public PageList<EventComposite> findEventsForCompGroup(Subject subject, int groupId, long begin, long endDate,
- EventSeverity[] severities, String source, String searchString, PageControl pc) {
-
- List<Resource> resources = resGrpMgr.findResourcesForResourceGroup(subject, groupId, GroupCategory.COMPATIBLE);
- int[] resourceIds = new int[resources.size()];
- int i = 0;
- for (Resource res : resources) {
- resourceIds[i++] = res.getId();
- }
-
- PageList<EventComposite> comp = findEvents(subject, resourceIds, begin, endDate, severities, source,
- searchString, pc);
-
- return comp;
- }
-
public int[] getEventCounts(Subject subject, int resourceId, long begin, long end, int numBuckets) {
int[] buckets = new int[numBuckets];
// TODO possibly rewrite query so that the db calculates the buckets (?)
- List<EventComposite> events = findEventsForResource(subject, resourceId, begin, end, null, null);
+ List<EventComposite> events = findEventComposites(subject, EntityContext.forResource(resourceId), begin, end,
+ null, null, null, PageControl.getUnlimitedInstance());
long timeDiff = end - begin;
long timePerBucket = timeDiff / numBuckets;
@@ -427,170 +356,6 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
return buckets;
}
- @NotNull
- public PageList<EventComposite> findEventsForResource(Subject subject, int resourceId, long startDate,
- long endDate, EventSeverity[] severities, PageControl pc) {
-
- PageList<EventComposite> comp = findEvents(subject, new int[] { resourceId }, startDate, endDate, severities,
- null, null, pc);
- return comp;
- }
-
- public PageList<EventComposite> findEvents(Subject subject, int[] resourceIds, long begin, long end,
- EventSeverity[] severities, String source, String searchString, PageControl pc) {
-
- if (pc == null) {
- pc = new PageControl();
- }
-
- PageList<EventComposite> pl = new PageList<EventComposite>(pc);
-
- if (resourceIds == null || resourceIds.length == 0) {
- return pl;
- }
-
- /*
- * We're still here - either the specified event was not found or we got called without
- * passing any specific event. Return a bunch of events for the resource etc.
- */
- String query = setupEventsQuery(resourceIds, severities, source, searchString, pc, false);
- runEventsQuery(resourceIds, begin, end, severities, source, searchString, pc, pl, query);
- query = setupEventsQuery(resourceIds, severities, source, searchString, pc, true);
- int totals = runEventsCountQuery(resourceIds, begin, end, severities, source, searchString, pc, pl, query);
- pl.setTotalSize(totals);
-
- return pl;
- }
-
- private void runEventsQuery(int[] resourceIds, long begin, long end, EventSeverity[] severities, String source,
- String searchString, PageControl pc, PageList<EventComposite> pl, String query) {
- Connection conn = null;
- PreparedStatement stm = null;
- ResultSet rs = null;
- try {
- conn = rhqDs.getConnection();
- stm = conn.prepareStatement(query);
- int i = 1;
- JDBCUtil.bindNTimes(stm, resourceIds, i);
- i += resourceIds.length;
- stm.setLong(i++, begin);
- stm.setLong(i++, end);
- if (severities != null) {
- for (int j = 0; j < severities.length; j++) {
- stm.setString(i++, severities[j].toString());
- }
- }
- if (isFilled(searchString))
- stm.setString(i++, QueryUtility.formatSearchParameter(searchString));
- if (isFilled(source))
- stm.setString(i++, QueryUtility.formatSearchParameter(source));
-
- rs = stm.executeQuery();
- while (rs.next()) {
- EventComposite ec = new EventComposite(rs.getString(1), rs.getInt(6), rs.getString(7), rs.getInt(2),
- EventSeverity.valueOf(rs.getString(4)), rs.getString(3), rs.getLong(5));
- pl.add(ec);
- }
-
- } catch (SQLException sq) {
- log.error("runEventsQuery: Error retrieving events: " + sq.getMessage(), sq);
- log.error("query is [" + query + "].");
- // these values should be useful in working out how we built the query in setupEventsQuery()
- log.error("resourceIds[] has [" + resourceIds.length + "] members.");
- log.error("severities are [" + ((null == severities) ? severities : Arrays.asList(severities)) + "].");
- log.error("source is [" + source + "].");
- log.error("searchString is [" + searchString + "].");
- log.error("PageControl is [" + pc + "].");
- } finally {
- JDBCUtil.safeClose(conn, stm, rs);
- }
- return;
- }
-
- private int runEventsCountQuery(int[] resourceIds, long begin, long end, EventSeverity[] severities, String source,
- String searchString, PageControl pc, PageList<EventComposite> pl, String query) {
- Connection conn = null;
- PreparedStatement stm = null;
- ResultSet rs = null;
- int num = 0;
- try {
- conn = rhqDs.getConnection();
- stm = conn.prepareStatement(query);
- int i = 1;
- JDBCUtil.bindNTimes(stm, resourceIds, i);
- i += resourceIds.length;
- stm.setLong(i++, begin);
- stm.setLong(i++, end);
- if (severities != null) {
- for (int j = 0; j < severities.length; j++) {
- stm.setString(i++, severities[j].toString());
- }
- }
- if (isFilled(searchString))
- stm.setString(i++, QueryUtility.formatSearchParameter(searchString));
- if (isFilled(source))
- stm.setString(i++, QueryUtility.formatSearchParameter(source));
-
- rs = stm.executeQuery();
- while (rs.next()) {
- num = rs.getInt(1);
- }
-
- } catch (SQLException sq) {
- log.error("runEventsCountQuery: Error retrieving events: " + sq.getMessage(), sq);
- } finally {
- JDBCUtil.safeClose(conn, stm, rs);
- }
- return num;
- }
-
- private String setupEventsQuery(int[] resourceIds, EventSeverity[] severities, String source, String searchString,
- PageControl pc, boolean isCountQuery) {
- String query;
-
- if (isCountQuery) {
- query = "SELECT count(ev.id) ";
- } else {
- query = "SELECT ev.detail, ev.id AS evid, evs.location, ev.severity, ev.timestamp, res.id AS resid, res.name ";
- }
- query += " FROM RHQ_Event ev ";
- query += " INNER JOIN RHQ_Event_Source evs ON evs.id = ev.event_source_id ";
- if (!isCountQuery) {
- // only join on rhq_resource if necessary, which it isn't for the count query
- query += " LEFT JOIN rhq_resource res ON evs.resource_id = res.id ";
- }
- query += " WHERE evs.resource_id IN ( ";
-
- query += JDBCUtil.generateInBinds(resourceIds.length);
- query += " ) ";
-
- query += " AND ev.timestamp BETWEEN ? AND ? ";
- if (severities != null) {
- query += " AND ev.severity IN ( ";
- query += JDBCUtil.generateInBinds(severities.length);
- query += " ) ";
- }
- if (isFilled(searchString))
- query += " AND upper(ev.detail) LIKE ? " + QueryUtility.getEscapeClause();
- if (isFilled(source))
- query += " AND upper(evs.location) LIKE ? " + QueryUtility.getEscapeClause();
- if (!isCountQuery) {
- pc.initDefaultOrderingField("ev.timestamp", PageOrdering.DESC);
- if (this.dbType instanceof PostgresqlDatabaseType) {
- query = PersistenceUtility.addPostgresNativePagingSortingToQuery(query, pc);
- } else if (this.dbType instanceof OracleDatabaseType) {
- query = PersistenceUtility.addOracleNativePagingSortingToQuery(query, pc);
- } else if (this.dbType instanceof H2DatabaseType) {
- query = PersistenceUtility.addH2NativePagingSortingToQuery(query, pc);
- } else if (this.dbType instanceof SQLServerDatabaseType) {
- query = PersistenceUtility.addSQLServerNativePagingSortingToQuery(query, pc, true);
- } else {
- throw new RuntimeException("Unknown database type : " + this.dbType);
- }
- }
- return query;
- }
-
@SuppressWarnings("unchecked")
public EventComposite getEventDetailForEventId(Subject subject, int eventId) throws EventException {
Query q = entityManager.createNamedQuery(Event.GET_DETAILS_FOR_EVENT_IDS);
@@ -615,18 +380,6 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
}
}
- public int getEventDefinitionCountForResourceType(int resourceTypeId) {
- Query query = PersistenceUtility.createCountQuery(entityManager,
- EventDefinition.QUERY_EVENT_DEFINITIONS_BY_RESOURCE_TYPE_ID);
- query.setParameter("resourceTypeId", resourceTypeId);
- long result = (Long) query.getSingleResult();
- return (int) result;
- }
-
- private boolean isFilled(String in) {
- return in != null && !in.equals("");
- }
-
public int deleteEvents(Subject subject, List<Integer> eventIds) {
if (eventIds == null || eventIds.size() == 0) {
return 0; // nothing to delete, thus 0 were deleted
@@ -671,41 +424,69 @@ public class EventManagerBean implements EventManagerLocal, EventManagerRemote {
return results;
}
- public PageList<EventComposite> findEventsForResource(Subject subject, int resourceId, long startDate,
- long endDate, EventSeverity severity, String source, String detail, PageControl pc) {
+ public PageList<EventComposite> findEventComposites(Subject subject, EntityContext context, long begin, long end,
+ EventSeverity[] severities, String source, String detail, PageControl pc) {
- if (authorizationManager.canViewResource(subject, resourceId) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view event history for resource[id=" + resourceId + "]");
+ if (context.category == EntityContext.Category.Resource) {
+ if (authorizationManager.canViewResource(subject, context.resourceId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view event history for resource[id=" + context.resourceId + "]");
+ }
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ if (authorizationManager.canViewGroup(subject, context.groupId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view event history for resourceGroup[id=" + context.groupId + "]");
+ }
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ if (authorizationManager.canViewAutoGroup(subject, context.parentResourceId, context.resourceTypeId) == false) {
+ throw new PermissionException("User [" + subject.getName()
+ + "] does not have permission to view event history for autoGroup[parentResourceId="
+ + context.parentResourceId + ", resourceTypeId=" + context.resourceTypeId + "]");
+ }
}
- EventSeverity[] severities = { severity };
- PageList<EventComposite> comp = findEvents(subject, new int[] { resourceId }, startDate, endDate, severities,
- source, detail, pc);
- return comp;
- }
-
- public PageList<EventComposite> findEventsForCompGroup(Subject subject, int groupId, long begin, long endDate,
- EventSeverity severity, String source, String searchString, PageControl pc) {
-
- if (authorizationManager.canViewGroup(subject, groupId) == false) {
- throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to view event history for resourceGroup[id=" + groupId + "]");
+ EventCriteria criteria = new EventCriteria();
+ criteria.addFilterStartTime(begin);
+ criteria.addFilterEndTime(end);
+ criteria.addFilterSeverities(severities);
+ criteria.addFilterSourceName(source);
+ criteria.addFilterDetail(detail);
+
+ criteria.setPageControl(pc);
+
+ if (context.category == EntityContext.Category.Resource) {
+ criteria.addFilterResourceId(context.resourceId);
+ } else if (context.category == EntityContext.Category.ResourceGroup) {
+ criteria.addFilterResourceGroupId(context.groupId);
+ } else if (context.category == EntityContext.Category.AutoGroup) {
+ criteria.addFilterAutoGroupParentResourceId(context.parentResourceId);
+ criteria.addFilterAutoGroupResourceTypeId(context.resourceTypeId);
}
- EventSeverity[] severities = { severity };
-
- return findEventsForCompGroup(subject, groupId, begin, endDate, severities, source, searchString, pc);
+ return findEventCompositesByCriteria(subject, criteria);
}
- public PageList<EventComposite> findEventsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
- long begin, long end, EventSeverity severity, String source, String detail, PageControl pc) {
+ @SuppressWarnings("unchecked")
+ public PageList<EventComposite> findEventCompositesByCriteria(Subject subject, EventCriteria criteria) {
+ CriteriaQueryGenerator generator = new CriteriaQueryGenerator(criteria);
+ String replacementSelectList = "" //
+ + " new org.rhq.core.domain.event.composite.EventComposite( " //
+ + " event.detail," //
+ + " event.source.resource.id," //
+ + " event.source.resource.name," //
+ + " event.id," //
+ + " event.severity," //
+ + " event.source.location," //
+ + " event.timestamp ) ";
+ generator.alterProjection(replacementSelectList);
- EventSeverity[] severities = { severity };
+ if (authorizationManager.isInventoryManager(subject) == false) {
+ generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE,
+ "source.resource", subject.getId());
+ }
- PageList<EventComposite> comp = findEventsForAutoGroup(subject, parentResourceId, resourceTypeId, begin, end,
- severities, source, detail, pc);
- return comp;
+ CriteriaQueryRunner<EventComposite> queryRunner = new CriteriaQueryRunner(criteria, generator, entityManager);
+ return queryRunner.execute();
}
@SuppressWarnings("unchecked")
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
index 4d88a92..f503799 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/event/EventManagerLocal.java
@@ -34,9 +34,9 @@ import org.rhq.core.domain.event.EventDefinition;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.domain.event.EventSource;
import org.rhq.core.domain.event.composite.EventComposite;
-import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.common.EntityContext;
/**
* Interface for the Event Manager
@@ -51,7 +51,7 @@ public interface EventManagerLocal {
* Add the passed events to the database
* @param events a set of events.
*/
- public void addEventData(Map<EventSource, Set<Event>> events);
+ void addEventData(Map<EventSource, Set<Event>> events);
/**
* Deletes event data older than the specified time.
@@ -59,45 +59,9 @@ public interface EventManagerLocal {
* @param deleteUpToTime event data older than this time will be deleted
* @return number of deleted Events
*/
- public int purgeEventData(Date deleteUpToTime) throws SQLException;
+ int purgeEventData(Date deleteUpToTime) throws SQLException;
- /**
- * Retrieve the events for the given resources that happened in the given time frame.
- * @param subject
- * @param resources Resources we are interested in
- * @param startDate Start time of interest
- * @param endDate End time of interest
- * @return List of Events for that time frame.
- */
- public List<Event> findEventsForResources(Subject subject, List<Resource> resources, long startDate, long endDate);
-
- /**
- * Retrieve the events for the given resource that happened in the given time frame.
- * @param subject
- * @param resourceId
- * @param startDate
- * @param endDate
- * @param severity Severity of events we are interested in. Pass 'null' for all events.
- * @param pc TODO
- * @return
- */
- public PageList<EventComposite> findEventsForResource(Subject subject, int resourceId, long startDate,
- long endDate, EventSeverity[] severities, PageControl pc);
-
- public PageList<EventComposite> findEventsForCompGroup(Subject subject, int groupId, long begin, long endDate,
- EventSeverity[] severities, PageControl pc);
-
- public PageList<EventComposite> findEventsForCompGroup(Subject subject, int groupId, long begin, long endDate,
- EventSeverity[] severities, String source, String searchString, PageControl pc);
-
- public PageList<EventComposite> findEventsForAutoGroup(Subject subject, int parent, int type, long begin,
- long endDate, EventSeverity[] severities, PageControl pc);
-
- public PageList<EventComposite> findEventsForAutoGroup(Subject subject, int parent, int type, long begin,
- long endDate, EventSeverity[] severities, String source, String searchString, PageControl pc);
-
- public Map<EventSeverity, Integer> getEventCountsBySeverity(Subject subject, int resourceId, long startDate,
- long endDate);
+ Map<EventSeverity, Integer> getEventCountsBySeverity(Subject subject, int resourceId, long startDate, long endDate);
/**
* Retrieve the count of events for the given resource in the time between begin and end, nicely separated
@@ -109,35 +73,7 @@ public interface EventManagerLocal {
* @param numBuckets Number of buckets to distribute into.
* @return
*/
- public int[] getEventCounts(Subject subject, int resourceId, long begin, long end, int numBuckets);
-
- /**
- * Provide the buckets for a timeline with the (most severe) severity for each bucket.
- * @param subject Subject of the caller
- * @param parentId Id of the parent of the autogroup for which we want to know the data
- * @param type Id of the children type of the autogroup
- * @param begin Begin date
- * @param end End date
- * @param numBuckets Number of buckets to distribute into.
- * @return
- */
- public EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentId, int type, long begin,
- long end, int numBuckets);
-
- /**
- * Return a {@link PageList} of {@link Event} objects, that match the input
- * @param subject
- * @param resourceIds We want events for those resources
- * @param begin Begin time for the events display
- * @param end End time for the events display
- * @param severity Severity we are interested in. Null for all
- * @param source TODO
- * @param searchString TODO
- * @param pc {@link PageControl} to specify the list size
- * @return List of Events
- */
- public PageList<EventComposite> findEvents(Subject subject, int[] resourceIds, long begin, long end,
- EventSeverity[] severities, String source, String searchString, PageControl pc);
+ int[] getEventCounts(Subject subject, int resourceId, long begin, long end, int numBuckets);
/**
* Obtain detail information about the passed event
@@ -145,17 +81,15 @@ public interface EventManagerLocal {
* @param eventId ID of the desired event.
* @return
*/
- public EventComposite getEventDetailForEventId(Subject subject, int eventId) throws EventException;
+ EventComposite getEventDetailForEventId(Subject subject, int eventId) throws EventException;
- public void deleteEventSourcesForDefinition(EventDefinition def);
+ void deleteEventSourcesForDefinition(EventDefinition def);
- public int deleteEvents(Subject subject, List<Integer> eventIds);
+ int deleteEvents(Subject subject, List<Integer> eventIds);
- public int deleteAllEventsForResource(Subject subject, int resourceId);
+ int deleteAllEventsForResource(Subject subject, int resourceId);
- public int deleteAllEventsForCompatibleGroup(Subject subject, int groupId);
-
- public int getEventDefinitionCountForResourceType(int resourceTypeId);
+ int deleteAllEventsForCompatibleGroup(Subject subject, int groupId);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
@@ -163,15 +97,6 @@ public interface EventManagerLocal {
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- public PageList<EventComposite> findEventsForResource(Subject subject, int resourceId, long startDate,
- long endDate, EventSeverity severity, String source, String detail, PageControl pc);
-
- PageList<EventComposite> findEventsForAutoGroup(Subject subject, int parentResourceId, int resourceTypeId,
- long begin, long end, EventSeverity severity, String source, String detail, PageControl pc);
-
- public PageList<EventComposite> findEventsForCompGroup(Subject subject, int groupId, long begin, long endDate,
- EventSeverity severity, String source, String searchString, PageControl pc);
-
/**
* Provide the buckets for a timeline with the (most severe) severity for each bucket.
* @param subject Subject of the caller
@@ -182,7 +107,20 @@ public interface EventManagerLocal {
* @return
* @throws FetchException TODO
*/
- public EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
+ EventSeverity[] getSeverityBuckets(Subject subject, int resourceId, long begin, long end, int numBuckets);
+
+ /**
+ * Provide the buckets for a timeline with the (most severe) severity for each bucket.
+ * @param subject Subject of the caller
+ * @param parentId Id of the parent of the autogroup for which we want to know the data
+ * @param type Id of the children type of the autogroup
+ * @param begin Begin date
+ * @param end End date
+ * @param numBuckets Number of buckets to distribute into.
+ * @return
+ */
+ EventSeverity[] getSeverityBucketsForAutoGroup(Subject subject, int parentId, int type, long begin, long end,
+ int numBuckets);
/**
* Provide the buckets for a timeline with the (most severe) severity for each bucket.
@@ -194,8 +132,12 @@ public interface EventManagerLocal {
* @return
* @throws FetchException TODO
*/
- public EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int groupId, long begin, long end,
- int numBuckets);
+ EventSeverity[] getSeverityBucketsForCompGroup(Subject subject, int groupId, long begin, long end, int numBuckets);
+
+ PageList<EventComposite> findEventComposites(Subject subject, EntityContext context, long begin, long end,
+ EventSeverity[] severities, String source, String detail, PageControl pc);
+
+ PageList<EventComposite> findEventCompositesByCriteria(Subject subject, EventCriteria criteria);
PageList<Event> findEventsByCriteria(Subject subject, EventCriteria criteria);
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java
index c96ff3d..1527c20 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/event/test/EventManagerTest.java
@@ -31,6 +31,7 @@ import javax.persistence.Query;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
+import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.event.Event;
import org.rhq.core.domain.event.EventDefinition;
import org.rhq.core.domain.event.EventSeverity;
@@ -40,6 +41,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageControl;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.event.EventManagerLocal;
import org.rhq.enterprise.server.test.AbstractEJB3Test;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -157,14 +159,18 @@ public class EventManagerTest extends AbstractEJB3Test {
assert bucketCounts : "Expected bucket counts were [0 1 0] Received [" + buckets[0] + " " + buckets[1]
+ " " + buckets[2] + "]";
- List<EventComposite> res = eventManager.findEventsForResource(null, resourceId, t1, t2, null,
- new PageControl());
+ PageControl pc = PageControl.getUnlimitedInstance();
+ EntityContext context = EntityContext.forResource(resourceId);
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ List<EventComposite> res = eventManager
+ .findEventComposites(overlord, context, t1, t2, null, null, null, pc);
assert res.size() == 1 : "Expected 1 Event, got " + res.size();
- res = eventManager.findEventsForResource(null, resourceId, t1, t2,
- new EventSeverity[] { EventSeverity.INFO }, null);
+ res = eventManager.findEventComposites(overlord, context, t1, t2,
+ new EventSeverity[] { EventSeverity.INFO }, null, null, pc);
assert res.size() == 1 : "Expected 1 Event, got " + res.size();
- res = eventManager.findEventsForResource(null, resourceId, t1, t2,
- new EventSeverity[] { EventSeverity.WARN }, null);
+ res = eventManager.findEventComposites(overlord, context, t1, t2,
+ new EventSeverity[] { EventSeverity.WARN }, null, null, pc);
assert res.size() == 0 : "Expected 0 Events, got " + res.size();
} finally {
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
index 8ab68e2..7f06451 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
@@ -73,6 +73,7 @@ import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.enterprise.server.common.EntityContext;
import org.rhq.enterprise.server.event.EventManagerLocal;
import org.rhq.enterprise.server.measurement.CallTimeDataManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDataManagerLocal;
@@ -402,9 +403,11 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
EventManagerLocal mgr = LookupUtil.getEventManager();
mgr.addEventData(eventMap);
- PageList<EventComposite> persistedEvents = mgr.findEvents(LookupUtil.getSubjectManager().getOverlord(),
- new int[] { res.getId() }, timestamp - 1L, timestamp + count + 1L,
- new EventSeverity[] { EventSeverity.DEBUG }, null, null, new PageControl());
+
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+ PageList<EventComposite> persistedEvents = mgr.findEventComposites(overlord, EntityContext.forResource(res
+ .getId()), timestamp - 1L, timestamp + count + 1L, new EventSeverity[] { EventSeverity.DEBUG }, null, null,
+ new PageControl());
assert persistedEvents.getTotalSize() == count : "did not persist all events, only persisted: "
+ persistedEvents.getTotalSize();
commit d6d18ab7f37b99601fdb2d2db534c49809992e5a
Author: hudson auto <wnstb(a)yahoo.com>
Date: Wed Jun 16 01:07:27 2010 -0400
[maven-release-plugin] prepare for next development iteration
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 2a07f14..eda9133 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index efde94a..bc7965b 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 688d8eb..2cf950b 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 7cd8310..ee81a94 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index ee01bfc..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 80a199f..a51f92b 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 0df1f75..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index ffc418f..e0ced84 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index da3b665..0911918 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index b2c2577..d47d4c8 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index bb3432c..e1ce7ef 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 482bfeb..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 2639069..7739177 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index e2dccee..eeb7e81 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index d0f6617..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index b601a7d..bc41dc5 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 84990bb..d9f1c1c 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 834ad7e..8942239 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index fcce359..8b9da9c 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index c17afbe..611eb9d 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index e99884a..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index c27636e..df05645 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index e6bb81a..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index bae4186..dcb1f88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 394f225..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 03519f9..783942c 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index 8eadafe..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 9c24928..3b0dbb8 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 95ad6aa..33966bd 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 867e469..605267f 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 62e3e77..910b617 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index e024682..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 7f960f7..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index b902af4..3fd11e8 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 2f4f860..bf15866 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 813ab07..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index c491f48..dd5bc18 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index 9b2ee35..c0973f3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 5942436..a62fee8 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index e33b01b..3193539 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index b7258a6..e69bfbc 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index 73130e7..ca33bb7 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index d33ae1d..af75153 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index baf9c5c..09839b8 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index f30f1b2..73f405e 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 460ff4a..4c44f10 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 984c8f0..0033d1b 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 4e814f4..61965f2 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 f37dc98..7451668 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index f137724..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 560ee44..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 930af85..2b16f4a 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index c2eb782..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index ed87cb1..a6cba32 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 39f2b68..9c7cc74 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 31100a9..ebdd3da 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 737f253..06c8981 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 6f8d635..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 9c7c566..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index fd0b704..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index 34cc544..d056f74 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index db20cbc..28dc9b1 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 8d9c768..a0721a9 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index eaaf3e9..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 771bb57..c37598e 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index bb01845..cc160c9 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 15a65f9..b4f9208 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 2efbd0f..963223b 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index c647907..d920440 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index c0b357f..d5aaad5 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index c3690b5..30889f7 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 8c846d8..b79645d 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 9563432..f7cf265 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 4db3be3..acb08ef 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 3f5de4f..7dd0fde 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 1c046f6..65fa7b8 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 1409b7c..853c020 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 76dd0c7..a0ade77 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 6eb2874..b9ed2b3 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 3f673be..b3846fa 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 e1a5853..443e524 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index dd2139f..ac9885a 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index b08e7b3..d0c9053 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index cdbcef0..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 4a5d341..1acdb0f 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 55202b0..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index a21b855..97b83b0 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 0d1de76..85d6105 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1decdaf..283ab6a 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 79a612b..5a4466c 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index b7ec02e..a190dcd 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 5775abb..8f4e675 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 425a7d8..0d41574 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 91fcf15..7719b14 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index ac27d7c..2d9d715 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index cea5596..3579496 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 3532a4d..41df1b8 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index a0d89ab..205d5b0 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index 27452ab..e299efa 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-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 072fd7c..b3d5e87 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>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 8f60554..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index a0daf87..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index e41de4b..ca7c648 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.GA_QA39</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit a9e657dadfa2dcc21675caae91aa5ca6fa3df27a
Author: hudson auto <wnstb(a)yahoo.com>
Date: Wed Jun 16 01:05:51 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_GA_QA39
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..2a07f14 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..efde94a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..688d8eb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..7cd8310 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..ee01bfc 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..80a199f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..0df1f75 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..ffc418f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..da3b665 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..b2c2577 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..bb3432c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..482bfeb 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..2639069 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..e2dccee 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..d0f6617 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..b601a7d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..84990bb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..834ad7e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..fcce359 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 611eb9d..c17afbe 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..e99884a 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..c27636e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..e6bb81a 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..bae4186 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..394f225 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..03519f9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..8eadafe 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..9c24928 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..95ad6aa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..867e469 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..62e3e77 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..e024682 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..7f960f7 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6ae155a..b902af4 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -1,13 +1,11 @@
-<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">
+<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>
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..2f4f860 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..813ab07 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index dd5bc18..c491f48 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index c0973f3..9b2ee35 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index a62fee8..5942436 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 3193539..e33b01b 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index e69bfbc..b7258a6 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index ca33bb7..73130e7 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index af75153..d33ae1d 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index 09839b8..baf9c5c 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..f30f1b2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 4c44f10..460ff4a 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index 0033d1b..984c8f0 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 61965f2..4e814f4 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 7451668..f37dc98 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..f137724 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..560ee44 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..930af85 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..c2eb782 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..ed87cb1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 9c7cc74..39f2b68 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 ebdd3da..31100a9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..737f253 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..6f8d635 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..9c7c566 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..fd0b704 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index d056f74..34cc544 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 28dc9b1..db20cbc 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..8d9c768 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..eaaf3e9 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..771bb57 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..bb01845 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..15a65f9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..2efbd0f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..c647907 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..c0b357f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..c3690b5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..8c846d8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..9563432 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..4db3be3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..3f5de4f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 65fa7b8..1c046f6 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..1409b7c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 a0ade77..76dd0c7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..6eb2874 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 b3846fa..3f673be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..e1a5853 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..dd2139f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..b08e7b3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..cdbcef0 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..4a5d341 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..55202b0 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..a21b855 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..0d1de76 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1decdaf 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..79a612b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..b7ec02e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..5775abb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..425a7d8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..91fcf15 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..ac27d7c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..cea5596 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..3532a4d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..a0d89ab 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..27452ab 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</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 b3d5e87..072fd7c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..8f60554 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..a0daf87 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index ca7c648..e41de4b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.GA_QA39</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit b9bc76cf5db1de1917dbc9532062c800efab85de
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 23:22:21 2010 -0400
fix typo from previous commit
diff --git a/release.sh b/release.sh
index 0257d41..7418fd7 100755
--- a/release.sh
+++ b/release.sh
@@ -22,7 +22,7 @@ abort()
usage()
{
- abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USER install|deploy" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips deploy"
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USERNAME install|deploy" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips deploy"
}
@@ -39,7 +39,7 @@ fi
RELEASE_VERSION="$2"
DEVELOPMENT_VERSION="$3"
RELEASE_BRANCH="$4"
-GIT_USER="$5"
+GIT_USERNAME="$5"
MAVEN_RELEASE_PERFORM_GOAL="$6"
@@ -153,7 +153,7 @@ elif [ -z "$WORKING_DIR" ]; then
MAVEN_SETTINGS_FILE="$HOME/release/m2-settings.xml"
fi
-PROJECT_GIT_URL="ssh://${GIT_USER}@git.fedorahosted.org/git/rhq/rhq.git"
+PROJECT_GIT_URL="ssh://${GIT_USERNAME}@git.fedorahosted.org/git/rhq/rhq.git"
MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --batch-mode --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
@@ -186,6 +186,7 @@ echo "PATH=$PATH"
echo "============================= Local Variables ================================="
echo "WORKING_DIR=$WORKING_DIR"
echo "PROJECT_NAME=$PROJECT_NAME"
+echo "PROJECT_GIT_URL=$PROJECT_GIT_URL"
echo "RELEASE_TYPE=$RELEASE_TYPE"
echo "RELEASE_VERSION=$RELEASE_VERSION"
echo "DEVELOPMENT_VERSION=$DEVELOPMENT_VERSION"
commit 8fe4294a6523f136918f1b0b310dc25b8fa227ea
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 20:52:55 2010 -0400
add new param to specify the goal to execute after checking out the release tag to actually "perform" the release; add more error handling for commands that fail
diff --git a/release.sh b/release.sh
index 0dd6ab2..0257d41 100755
--- a/release.sh
+++ b/release.sh
@@ -22,14 +22,14 @@ abort()
usage()
{
- abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USER" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips"
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USER install|deploy" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips deploy"
}
# Process command line args.
EXE=`basename $0`
-if [ "$#" -ne 5 ]; then
+if [ "$#" -ne 6 ]; then
usage
fi
RELEASE_TYPE="$1"
@@ -40,6 +40,7 @@ RELEASE_VERSION="$2"
DEVELOPMENT_VERSION="$3"
RELEASE_BRANCH="$4"
GIT_USER="$5"
+MAVEN_RELEASE_PERFORM_GOAL="$6"
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
@@ -263,26 +264,27 @@ if [ -d "$WORKING_DIR" ]; then
if [ "$GIT_STATUS_EXIT_CODE" -le 1 ]; then
echo "Checking out a clean copy of the release branch ($RELEASE_BRANCH)..."
git checkout "$RELEASE_BRANCH"
- [ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
+ [ "$?" -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
git reset --hard "origin/$RELEASE_BRANCH"
- [ $? -ne 0 ] && abort "Failed to reset release branch ($RELEASE_BRANCH)."
+ [ "$?" -ne 0 ] && abort "Failed to reset release branch ($RELEASE_BRANCH)."
git clean -dxf
- [ $? -ne 0 ] && abort "Failed to clean release branch ($RELEASE_BRANCH)."
+ [ "$?" -ne 0 ] && abort "Failed to clean release branch ($RELEASE_BRANCH)."
git pull
- [ $? -ne 0 ] && abort "Failed to update release branch ($RELEASE_BRANCH)."
+ [ "$?" -ne 0 ] && abort "Failed to update release branch ($RELEASE_BRANCH)."
else
echo "$WORKING_DIR does not appear to be a git working directory ('git status' returned $GIT_STATUS_EXIT_CODE) - removing it so we can freshly clone the repo..."
cd ..
rm -rf "$WORKING_DIR"
+ [ "$?" -ne 0 ] && abort "Failed to remove bogus working directory ($WORKING_DIR)."
fi
fi
if [ ! -d "$WORKING_DIR" ]; then
echo "Cloning the $PROJECT_NAME git repo (this will take about 10-15 minutes)..."
git clone "$PROJECT_GIT_URL" "$WORKING_DIR"
- [ $? -ne 0 ] && abort "Failed to clone $PROJECT_NAME git repo ($PROJECT_GIT_URL)."
+ [ "$?" -ne 0 ] && abort "Failed to clone $PROJECT_NAME git repo ($PROJECT_GIT_URL)."
cd "$CLONE_DIR"
git checkout "$RELEASE_BRANCH"
- [ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
+ [ "$?" -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
fi
@@ -291,28 +293,25 @@ fi
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
# NOTE: There is no need to do a mvn clean below, since we just did either a clone or clean checkout above.
mvn install $MAVEN_ARGS -Ddbreset
-if [ "$?" -ne 0 ]; then
- abort "Test build failed. Please see above Maven output for details, fix any issues, then try again."
-fi
+[ "$?" -ne 0 ] && abort "Test build failed. Please see above Maven output for details, fix any issues, then try again."
echo
echo "Test build succeeded!"
-# Clean up the snapshot jars produced by the test build.
+# Clean up the snapshot jars produced by the test build from module target dirs.
-echo "Cleaning up snapshot jars produced by test build..."
+echo "Cleaning up snapshot jars produced by test build from module target dirs..."
mvn clean $MAVEN_ARGS
+[ "$?" -ne 0 ] && abort "Failed to cleanup snbapshot jars produced by test build from module target dirs. Please see above Maven output for details, fix any issues, then try again."
# Do a dry run of tagging the release.
echo "Doing a dry run of tagging the release..."
mvn release:prepare $MAVEN_ARGS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
-EXIT_CODE=$?
+[ "$?" -ne 0 ] && abort "Tagging dry run failed. Please see above Maven output for details, fix any issues, then try again."
mvn release:clean $MAVEN_ARGS
-if [ "$EXIT_CODE" -ne 0 ]; then
- abort "Tagging dry run failed. Please see above Maven output for details, fix any issues, then try again."
-fi
+[ "$?" -ne 0 ] && abort "Failed to cleanup release plugin working files from tagging dry run. Please see above Maven output for details, fix any issues, then try again."
echo
echo "Tagging dry run succeeded!"
@@ -320,12 +319,8 @@ echo "Tagging dry run succeeded!"
# If the dry run succeeded, tag it for real.
echo "Tagging the release..."
-mvn release:prepare $MAVEN_ARGS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
-EXIT_CODE=$?
-mvn release:clean $MAVEN_ARGS
-if [ "$EXIT_CODE" -ne 0 ]; then
- abort "Tagging failed. Please see above Maven output for details, fix any issues, then try again."
-fi
+mvn release:prepare $MAVEN_ARGS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false -Dusername=$GIT_USERNAME
+[ "$?" -ne 0 ] && abort "Tagging failed. Please see above Maven output for details, fix any issues, then try again."
echo
echo "Tagging succeeded!"
@@ -334,12 +329,12 @@ echo "Tagging succeeded!"
echo "Checking out release tag $RELEASE_TAG..."
git checkout "$RELEASE_TAG"
+[ "$?" -ne 0 ] && abort "Checkout of release tag ($RELEASE_TAG) failed. Please see above git output for details, fix any issues, then try again."
git clean -dxf
+[ "$?" -ne 0 ] && abort "Failed to cleanup unversioned files. Please see above git output for details, fix any issues, then try again."
echo "Building release from tag and publishing Maven artifacts (this will take about 10-15 minutes)..."
-mvn deploy $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
-if [ "$?" -ne 0 ]; then
- abort "Release build failed. Please see above Maven output for details, fix any issues, then try again."
-fi
+mvn $MAVEN_RELEASE_PERFORM_GOAL $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
+[ "$?" -ne 0 ] && abort "Release build failed. Please see above Maven output for details, fix any issues, then try again."
echo
echo "Release build succeeded!"
commit a79391f1070e8c982b1456ed9affb188c49b484e
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 19:12:43 2010 -0400
...
diff --git a/release.sh b/release.sh
index 2443188..0dd6ab2 100755
--- a/release.sh
+++ b/release.sh
@@ -264,7 +264,7 @@ if [ -d "$WORKING_DIR" ]; then
echo "Checking out a clean copy of the release branch ($RELEASE_BRANCH)..."
git checkout "$RELEASE_BRANCH"
[ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
- git reset --hard
+ git reset --hard "origin/$RELEASE_BRANCH"
[ $? -ne 0 ] && abort "Failed to reset release branch ($RELEASE_BRANCH)."
git clean -dxf
[ $? -ne 0 ] && abort "Failed to clean release branch ($RELEASE_BRANCH)."
commit 48cb00360b3a4d8ccfb4222faabb1da00b2efd51
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 18:37:39 2010 -0400
do git pull after doing git reset, rather than before
diff --git a/release.sh b/release.sh
index d20073d..2443188 100755
--- a/release.sh
+++ b/release.sh
@@ -258,18 +258,18 @@ if [ -d "$WORKING_DIR" ]; then
git status >/dev/null 2>&1
GIT_STATUS_EXIT_CODE=$?
# Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any uncommitted changes,
- # and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $CLONE_DIR
- # is a git working copy.
+ # and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $WORKING_DIR
+ # is truly a git working copy.
if [ "$GIT_STATUS_EXIT_CODE" -le 1 ]; then
echo "Checking out a clean copy of the release branch ($RELEASE_BRANCH)..."
git checkout "$RELEASE_BRANCH"
[ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
- git pull
- [ $? -ne 0 ] && abort "Failed to update release branch ($RELEASE_BRANCH)."
git reset --hard
[ $? -ne 0 ] && abort "Failed to reset release branch ($RELEASE_BRANCH)."
git clean -dxf
[ $? -ne 0 ] && abort "Failed to clean release branch ($RELEASE_BRANCH)."
+ git pull
+ [ $? -ne 0 ] && abort "Failed to update release branch ($RELEASE_BRANCH)."
else
echo "$WORKING_DIR does not appear to be a git working directory ('git status' returned $GIT_STATUS_EXIT_CODE) - removing it so we can freshly clone the repo..."
cd ..
commit c7e6d2bbde3be634678e326bc7854af5e615d2bc
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 17:43:48 2010 -0400
validate mvn and git versions
diff --git a/release.sh b/release.sh
index f747ad0..d20073d 100755
--- a/release.sh
+++ b/release.sh
@@ -100,7 +100,7 @@ if [ "$RELEASE_TYPE" = "enterprise" ]; then
fi
-# Make sure M2_HOME points to a valid Maven 2 install.
+# Make sure M2_HOME points to a valid Maven 2.1.x or 2.2.x install.
if [ -z "$M2_HOME" ]; then
abort "M2_HOME environment variable is not set - M2_HOME must point to a Maven, $MINIMUM_MAVEN_VERSION or later, install dir."
@@ -117,16 +117,26 @@ if ! which mvn >/dev/null 2>&1; then
abort "mvn not found in PATH ($PATH) - M2_HOME must point to a Maven, $MINIMUM_MAVEN_VERSION or later, install dir."
fi
-# TODO: Check that Maven is a supported version (2.1.0 <= maven.version < 3.0.0).
+mvn -version >/dev/null
+[ $? -ne 0 ] && abort "mvn --version failed with exit code $?."
+MAVEN_VERSION=`mvn -version | head -1 | sed 's|[^0-9]*\([^ ]*\).*|\1|'`
+if echo $MAVEN_VERSION | grep -v "^2.[12]"; then
+ abort "Unsupported Maven version - $MAVEN_VERSION. Only Maven 2.1.x or 2.2.x are supported. Please update the value of M2_HOME, then try again."
+fi
-# Make sure git is in the PATH.
+# Make sure git 1.6.x or 1.7.x is in the PATH.
if ! which git >/dev/null 2>&1; then
abort "git not found in PATH ($PATH)."
fi
-# TODO: Check for a minimum git version.
+git --version >/dev/null
+[ $? -ne 0 ] && abort "git --version failed with exit code $?."
+GIT_VERSION=`git --version | sed 's|[^0-9]*\([^ ]*\).*|\1|'`
+if echo $GIT_VERSION | grep -v "^1.[67]"; then
+ abort "Unsupported git version - $GIT_VERSION. Only git 1.6.x or 1.7.x are supported. Please add a directory containing a supported version of git to your PATH, then try again."
+fi
# Set various local variables.
@@ -144,7 +154,7 @@ fi
PROJECT_GIT_URL="ssh://${GIT_USER}@git.fedorahosted.org/git/rhq/rhq.git"
-MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --errors -Penterprise,dist,release"
+MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --batch-mode --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav -Djava5.home=$JAVA5_HOME/jre"
fi
@@ -297,7 +307,7 @@ mvn clean $MAVEN_ARGS
# Do a dry run of tagging the release.
echo "Doing a dry run of tagging the release..."
-mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
+mvn release:prepare $MAVEN_ARGS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
EXIT_CODE=$?
mvn release:clean $MAVEN_ARGS
if [ "$EXIT_CODE" -ne 0 ]; then
@@ -310,7 +320,7 @@ echo "Tagging dry run succeeded!"
# If the dry run succeeded, tag it for real.
echo "Tagging the release..."
-mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
+mvn release:prepare $MAVEN_ARGS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
EXIT_CODE=$?
mvn release:clean $MAVEN_ARGS
if [ "$EXIT_CODE" -ne 0 ]; then
commit 409fd76ac765136e1cf2a193d8227880adc2e750
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 16:36:28 2010 -0400
remove more Java6 API usages
diff --git a/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTest.java b/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTest.java
index eb686bb..888339c 100644
--- a/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTest.java
+++ b/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTest.java
@@ -41,7 +41,7 @@ public class ScriptTest {
public void testScript(String script, @Optional("") String scriptArgs) throws Exception {
List<String> args = createRequiredArgs(script);
- if (!scriptArgs.isEmpty()) {
+ if (scriptArgs.length() != 0) {
args.addAll(getOptioalArgs(scriptArgs));
}
diff --git a/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTestRunner.java b/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTestRunner.java
index ee6e8d6..fadf9a2 100644
--- a/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTestRunner.java
+++ b/modules/cli-tests/src/main/java/org/rhq/enterprise/remoting/cli/ScriptTestRunner.java
@@ -57,7 +57,7 @@ public class ScriptTestRunner {
private boolean hasFailures;
public ScriptTestRunner() {
- singleTestMode = testName != null && !testName.isEmpty() && !testName.equals("${test}");
+ singleTestMode = testName != null && testName.length() != 0 && !testName.equals("${test}");
if (singleTestMode) {
scriptFilter = new FilenameFilter() {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 6288fcb..25bdc9f 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -1519,7 +1519,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
PackageVersion packageVersion = null;
//default version to 1.0 if is null, not provided for any reason.
- if ((version == null) || (version.trim().isEmpty())) {
+ if ((version == null) || (version.trim().length() == 0)) {
version = "1.0";
}
commit d2c55f80a795a1605522aa757faef5707d0d7072
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 15:19:08 2010 -0400
add missing 'git pull'
diff --git a/release.sh b/release.sh
index d70b1bf..f747ad0 100755
--- a/release.sh
+++ b/release.sh
@@ -254,8 +254,12 @@ if [ -d "$WORKING_DIR" ]; then
echo "Checking out a clean copy of the release branch ($RELEASE_BRANCH)..."
git checkout "$RELEASE_BRANCH"
[ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
+ git pull
+ [ $? -ne 0 ] && abort "Failed to update release branch ($RELEASE_BRANCH)."
git reset --hard
+ [ $? -ne 0 ] && abort "Failed to reset release branch ($RELEASE_BRANCH)."
git clean -dxf
+ [ $? -ne 0 ] && abort "Failed to clean release branch ($RELEASE_BRANCH)."
else
echo "$WORKING_DIR does not appear to be a git working directory ('git status' returned $GIT_STATUS_EXIT_CODE) - removing it so we can freshly clone the repo..."
cd ..
commit dc7af8a3f3dfe58d50eea9a434e49c416899941d
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 14:57:28 2010 -0400
update root pom to reflect that the minimum Java version for RHQ has been upgraded from 5 to 6
diff --git a/pom.xml b/pom.xml
index 7006a03..ae5b534 100644
--- a/pom.xml
+++ b/pom.xml
@@ -693,8 +693,8 @@
<maxmem>512M</maxmem>
<!-- compiler options -->
- <source>1.5</source>
- <target>1.5</target>
+ <source>1.6</source>
+ <target>1.6</target>
<optimize>false</optimize>
</configuration>
</plugin>
@@ -805,7 +805,7 @@
<version>2.0.10</version>
</requireMavenVersion>
<requireJavaVersion>
- <version>[1.5,1.8)</version> <!-- 1.5.x, 1.6.x, 1.7.x -->
+ <version>[1.6,1.8)</version> <!-- 1.6.x, 1.7.x -->
</requireJavaVersion>
</rules>
</configuration>
@@ -981,13 +981,13 @@
</properties>
</profile>
- <!-- Set the java5.home prop to a Java5 JRE dir to enforce that only Java5 APIs are used. -->
+ <!-- Set the java6.home prop to a Java6 JRE dir to enforce that only Java6 APIs are used. -->
<profile>
<id>check-java-api</id>
<activation>
<property>
- <name>java5.home</name>
+ <name>java6.home</name>
</property>
</activation>
@@ -1001,7 +1001,7 @@
<inherited>false</inherited>
<configuration>
<tasks>
- <echo>java5.home=${java5.home}</echo>
+ <echo>java6.home=${java6.home}</echo>
</tasks>
</configuration>
<goals>
@@ -1015,7 +1015,7 @@
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArguments>
- <bootclasspath>${java5.home}/lib/rt.jar${path.separator}${java5.home}/lib/jsse.jar${path.separator}${java5.home}/lib/jce.jar</bootclasspath>
+ <bootclasspath>${java6.home}/lib/rt.jar${path.separator}${java6.home}/lib/jsse.jar${path.separator}${java6.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
commit 013754514dd1784fdab958d768e14b5b462ae4cf
Merge: 7ad92f5... ac70ccd...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 14:51:44 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit ac70ccdc97ecd9d53508004328422d7429c034cc
Author: Joseph Marques <joseph(a)redhat.com>
Date: Tue Jun 15 14:44:32 2010 -0400
BZ-603187: remove named parameter no longer used
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index 95cbdff..269e4d3 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -363,7 +363,7 @@ import org.rhq.core.domain.util.Summary;
@NamedQuery(name = Resource.QUERY_FIND_EXPLICIT_IDS_BY_RESOURCE_GROUP_ADMIN, query = "" //
+ "SELECT res.id " //
+ " FROM ResourceGroup rg, IN (rg.explicitResources) res " //
- + " WHERE rg.id = :groupId AND res.inventoryStatus = :inventoryStatus"),
+ + " WHERE rg.id = :groupId"),
@NamedQuery(name = Resource.QUERY_FIND_IMPLICIT_IDS_BY_RESOURCE_GROUP_ADMIN, query = "" //
+ "SELECT res.id " //
+ " FROM ResourceGroup rg, IN (rg.implicitResources) res " //
commit 7ad92f55fed3fffa0c496dc0bbb84dec6097ecf1
Merge: a71f828... 5d65bd9...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 14:25:37 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit a71f8284c91de84c7329b1ea7336c0fb3648a4d0
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 14:24:16 2010 -0400
get rid of usage of String.isEmpty() Java6 API in RetrieveContentBitsRunner; misc improvements to release.sh
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java
index e9a82de..3bdafda 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/content/RetrieveContentBitsRunner.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -82,7 +82,7 @@ public class RetrieveContentBitsRunner implements Runnable {
serverService.completeRetrievePackageBitsRequest(response, inputStream);
}
ResourcePackageDetails pkgDetails = request.getPackageDetails();
- if ((pkgDetails != null) && ((pkgDetails.getSHA256() == null) || (pkgDetails.getSHA256().trim().isEmpty()))) {
+ if ((pkgDetails != null) && ((pkgDetails.getSHA256() == null) || (pkgDetails.getSHA256().trim().length() == 0))) {
InputStream is;
try {
is = contentManager.performGetPackageBits(request.getResourceId(), request.getPackageDetails());
@@ -91,7 +91,7 @@ public class RetrieveContentBitsRunner implements Runnable {
e.printStackTrace();
}
}
- if ((pkgDetails != null) && ((pkgDetails.getMD5() == null) || (pkgDetails.getMD5().trim().isEmpty()))) {
+ if ((pkgDetails != null) && ((pkgDetails.getMD5() == null) || (pkgDetails.getMD5().trim().length() == 0))) {
InputStream is;
try {
is = contentManager.performGetPackageBits(request.getResourceId(), request.getPackageDetails());
diff --git a/release.sh b/release.sh
index 2e02f83..d70b1bf 100755
--- a/release.sh
+++ b/release.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/sh -x
# Constants
@@ -151,6 +151,9 @@ fi
if [ -z "$RHQ_RELEASE_QUIET" ]; then
MAVEN_ARGS="$MAVEN_ARGS --debug"
fi
+if [ -n "$RHQ_RELEASE_ADDITIONAL_MAVEN_ARGS" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS $RHQ_RELEASE_ADDITIONAL_MAVEN_ARGS"
+fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
@@ -272,10 +275,8 @@ fi
# Run a test build before tagging. This will also publish the snapshot artifacts to the local repo to "bootstrap" the repo.
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
-# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
-# TODO: Remove the -Dmaven.test.skip=true - this was added temporarily to speed up development and testing of this release script.
# NOTE: There is no need to do a mvn clean below, since we just did either a clone or clean checkout above.
-mvn install $MAVEN_ARGS -Dmaven.test.skip=true
+mvn install $MAVEN_ARGS -Ddbreset
if [ "$?" -ne 0 ]; then
abort "Test build failed. Please see above Maven output for details, fix any issues, then try again."
fi
@@ -315,12 +316,13 @@ echo
echo "Tagging succeeded!"
-# Checkout the tag and build it.
+# Checkout the tag and build and publish the Maven artifacts.
echo "Checking out release tag $RELEASE_TAG..."
git checkout "$RELEASE_TAG"
-echo "Building release from tag (this will take about 5-10 minutes)..."
-mvn install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
+git clean -dxf
+echo "Building release from tag and publishing Maven artifacts (this will take about 10-15 minutes)..."
+mvn deploy $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
if [ "$?" -ne 0 ]; then
abort "Release build failed. Please see above Maven output for details, fix any issues, then try again."
fi
commit 5d65bd9dbe5a04f9d7a5f1840b0d8f10ea1d0723
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Jun 15 13:57:31 2010 -0400
BZ 604251 another place where the old H2 name still lived - change to new package name
diff --git a/modules/core/dbutils/src/main/java/org/rhq/core/db/H2DatabaseType.java b/modules/core/dbutils/src/main/java/org/rhq/core/db/H2DatabaseType.java
index 0fe6751..92b2111 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/H2DatabaseType.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/H2DatabaseType.java
@@ -46,7 +46,7 @@ public abstract class H2DatabaseType extends DatabaseType {
}
public String getHibernateDialect() {
- return "org.rhq.core.domain.dialect.H2CustomDialect";
+ return "org.rhq.core.server.H2CustomDialect";
}
/**
commit 3fdd19f4e7bc7a24d7eafa5edd3cf8ab823a6ffc
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Jun 15 12:53:49 2010 -0500
BZ 604251 use the proper classname for the H2 dialect
diff --git a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
index a7d1392..a420df5 100644
--- a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
+++ b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
@@ -640,7 +640,7 @@ public class ConfigurationBean {
dialect = "org.hibernate.dialect.Oracle10gDialect";
quartzDriverDelegateClass = "org.quartz.impl.jdbcjobstore.oracle.OracleDelegate";
} else if (db.toLowerCase().indexOf("h2") > -1) {
- dialect = "org.rhq.core.domain.dialect.H2CustomDialect";
+ dialect = "org.rhq.core.server.H2CustomDialect";
} else if (db.toLowerCase().indexOf("sqlserver") > -1) {
dialect = "org.hibernate.dialect.SQLServerDialect";
quartzDriverDelegateClass = "org.quartz.impl.jdbcjobstore.MSSQLDelegate";
commit 479520e5788d154cbea28bd8f0b0ed86863c1668
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 11:58:37 2010 -0400
a few inmprovements
diff --git a/release.sh b/release.sh
index dfb8619..2e02f83 100755
--- a/release.sh
+++ b/release.sh
@@ -67,32 +67,36 @@ if ! javap java.util.Deque >/dev/null 2>&1; then
abort "java.util.Deque not found - Java version appears to be less than 1.6 - Jave version must be 1.6 or later."
fi
+# TODO: Check that JDK version is < 1.7.
-# Make sure JAVA5_HOME points to a valid JDK 1.5 install.
+
+# If this is an enterprise release, make sure JAVA5_HOME points to a valid JDK 1.5 install.
# We need this to validate only Java 5 or earlier APIs are used in all modules, except the CLI, which requires Java 6.
-if [ -z "$JAVA5_HOME" ]; then
- abort "JAVA5_HOME environment variable is not set - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
-fi
+if [ "$RELEASE_TYPE" = "enterprise" ]; then
+ if [ -z "$JAVA5_HOME" ]; then
+ abort "JAVA5_HOME environment variable is not set - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
+ fi
-if [ ! -d "$JAVA5_HOME" ]; then
- abort "JAVA5_HOME ($JAVA5_HOME) does not exist or is not a directory - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
-fi
+ if [ ! -d "$JAVA5_HOME" ]; then
+ abort "JAVA5_HOME ($JAVA5_HOME) does not exist or is not a directory - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
+ fi
-if [ ! -x "$JAVA5_HOME/bin/java" ]; then
- abort "$JAVA5_HOME/bin/java does not exist or is not executable - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
-fi
+ if [ ! -x "$JAVA5_HOME/bin/java" ]; then
+ abort "$JAVA5_HOME/bin/java does not exist or is not executable - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
+ fi
-if [ ! -x "$JAVA5_HOME/bin/javac" ]; then
- abort "$JAVA5_HOME/bin/javac does not exist or is not executable - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
-fi
+ if [ ! -x "$JAVA5_HOME/bin/javac" ]; then
+ abort "$JAVA5_HOME/bin/javac does not exist or is not executable - JAVA5_HOME must point to a JDK (not JRE) 1.5 install dir."
+ fi
-if ! "$JAVA5_HOME/bin/javap" java.lang.Enum >/dev/null 2>&1; then
- abort "java.lang.Enum not found - JAVA5_HOME ($JAVA5_HOME) version appears to be less than 1.5 - version must be 1.5.x."
-fi
+ if ! "$JAVA5_HOME/bin/javap" java.lang.Enum >/dev/null 2>&1; then
+ abort "java.lang.Enum not found - JAVA5_HOME ($JAVA5_HOME) version appears to be less than 1.5 - version must be 1.5.x."
+ fi
-if "$JAVA5_HOME/bin/javap" java.util.Deque >/dev/null 2>&1; then
- abort "java.util.Deque found - JAVA5_HOME ($JAVA5_HOME) version appears to be greater than or equal to 1.6 - version must be 1.5.x."
+ if "$JAVA5_HOME/bin/javap" java.util.Deque >/dev/null 2>&1; then
+ abort "java.util.Deque found - JAVA5_HOME ($JAVA5_HOME) version appears to be greater than or equal to 1.6 - version must be 1.5.x."
+ fi
fi
@@ -113,6 +117,8 @@ if ! which mvn >/dev/null 2>&1; then
abort "mvn not found in PATH ($PATH) - M2_HOME must point to a Maven, $MINIMUM_MAVEN_VERSION or later, install dir."
fi
+# TODO: Check that Maven is a supported version (2.1.0 <= maven.version < 3.0.0).
+
# Make sure git is in the PATH.
@@ -120,7 +126,7 @@ if ! which git >/dev/null 2>&1; then
abort "git not found in PATH ($PATH)."
fi
-# TODO: Check for a minimum git version?
+# TODO: Check for a minimum git version.
# Set various local variables.
@@ -140,7 +146,7 @@ PROJECT_GIT_URL="ssh://${GIT_USER}@git.fedorahosted.org/git/rhq/rhq.git"
MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav"
+ MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav -Djava5.home=$JAVA5_HOME/jre"
fi
if [ -z "$RHQ_RELEASE_QUIET" ]; then
MAVEN_ARGS="$MAVEN_ARGS --debug"
@@ -148,6 +154,7 @@ fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
+# TODO: Set MAVEN_OPTS environment variable.
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
@@ -158,7 +165,7 @@ RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
echo
echo "========================== Environment Variables =============================="
echo "JAVA_HOME=$JAVA_HOME"
-echo "JAVA5_HOME=$JAVA5_HOME"
+[ "$RELEASE_TYPE" = "enterprise" ] && echo "JAVA5_HOME=$JAVA5_HOME"
echo "M2_HOME=$M2_HOME"
echo "MAVEN_OPTS=$MAVEN_OPTS"
echo "PATH=$PATH"
@@ -236,17 +243,18 @@ EOF
if [ -d "$WORKING_DIR" ]; then
cd "$WORKING_DIR"
git status >/dev/null 2>&1
+ GIT_STATUS_EXIT_CODE=$?
# Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any uncommitted changes,
# and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $CLONE_DIR
# is a git working copy.
- if [ $? -le 1 ]; then
+ if [ "$GIT_STATUS_EXIT_CODE" -le 1 ]; then
echo "Checking out a clean copy of the release branch ($RELEASE_BRANCH)..."
git checkout "$RELEASE_BRANCH"
[ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
git reset --hard
git clean -dxf
else
- echo "$WORKING_DIR does not appear to be a git working directory - removing it so we can freshly clone the repo..."
+ echo "$WORKING_DIR does not appear to be a git working directory ('git status' returned $GIT_STATUS_EXIT_CODE) - removing it so we can freshly clone the repo..."
cd ..
rm -rf "$WORKING_DIR"
fi
@@ -264,10 +272,9 @@ fi
# Run a test build before tagging. This will also publish the snapshot artifacts to the local repo to "bootstrap" the repo.
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
-# TODO: Add -Djava5.home=$JAVA5_HOME/jre to the below mvn command line once the Java6 API usages have been removed from the Deployer class.
# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
# TODO: Remove the -Dmaven.test.skip=true - this was added temporarily to speed up development and testing of this release script.
-# NOTE: No need to do a mvn clean, since we just did either a clone or clean checkout above.
+# NOTE: There is no need to do a mvn clean below, since we just did either a clone or clean checkout above.
mvn install $MAVEN_ARGS -Dmaven.test.skip=true
if [ "$?" -ne 0 ]; then
abort "Test build failed. Please see above Maven output for details, fix any issues, then try again."
commit 9a7e6db3f4db56667c16a8a80b928326682e9908
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Tue Jun 15 09:57:26 2010 -0400
introduce JDK6 API usage
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
index fa81429..c8111fc 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
@@ -245,8 +245,6 @@ public class Deployer {
public DeploymentDiskUsage estimateDiskUsage() throws Exception {
final DeploymentDiskUsage diskUsage = new DeploymentDiskUsage();
- /*
- OH TO BE ABLE TO USE A MODERN JDK - THIS NEEDS JDK6
File partition = this.deploymentData.getDestinationDir();
long usableSpace = partition.getUsableSpace();
while (usableSpace == 0L && partition != null) {
@@ -257,8 +255,6 @@ public class Deployer {
}
diskUsage.setMaxDiskUsable(usableSpace);
- */
- diskUsage.setMaxDiskUsable(Long.MAX_VALUE);
Set<File> zipFiles = this.deploymentData.getZipFiles();
for (File zipFile : zipFiles) {
diff --git a/modules/plugins/filetemplate-bundle/src/main/java/org/rhq/plugins/filetemplate/ProcessingRecipeContext.java b/modules/plugins/filetemplate-bundle/src/main/java/org/rhq/plugins/filetemplate/ProcessingRecipeContext.java
index ff1a31e..10bc624 100644
--- a/modules/plugins/filetemplate-bundle/src/main/java/org/rhq/plugins/filetemplate/ProcessingRecipeContext.java
+++ b/modules/plugins/filetemplate-bundle/src/main/java/org/rhq/plugins/filetemplate/ProcessingRecipeContext.java
@@ -23,7 +23,6 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -38,7 +37,6 @@ import org.rhq.core.domain.bundle.BundleResourceDeployment;
import org.rhq.core.domain.bundle.BundleResourceDeploymentHistory;
import org.rhq.core.domain.content.PackageVersion;
import org.rhq.core.pluginapi.bundle.BundleManagerProvider;
-import org.rhq.core.system.OperatingSystemType;
import org.rhq.core.system.ProcessExecution;
import org.rhq.core.system.ProcessExecutionResults;
import org.rhq.core.system.SystemInfo;
@@ -262,33 +260,12 @@ public class ProcessingRecipeContext extends RecipeContext {
}
private void ensureExecutable(File scriptFile) {
- boolean success;
-
- try {
- Method m = File.class.getMethod("setExecutable", Boolean.TYPE, Boolean.TYPE);
- Boolean r = (Boolean) m.invoke(scriptFile, Boolean.TRUE, Boolean.TRUE);
- success = r.booleanValue();
- } catch (Exception e) {
- // Oh, if only we'd just stop dilly-dallying and move to JDK6 already
- if (this.systemInfo.getOperatingSystemType() != OperatingSystemType.WINDOWS) {
- ProcessExecution pe = new ProcessExecution("chmod");
- pe.setArguments(new String[] { "u+x", scriptFile.getAbsolutePath() });
- pe.setWaitForCompletion(30000L);
- pe.setCheckExecutableExists(false);
- pe.setWorkingDirectory(scriptFile.getParent());
- ProcessExecutionResults chmodResults = this.systemInfo.executeProcess(pe);
- success = (chmodResults.getExitCode() != null && chmodResults.getExitCode().intValue() == 0);
- } else {
- success = true; // assume we can execute it on windows
- }
- }
-
+ boolean success = scriptFile.setExecutable(true, true);
if (!success) {
String msg = "Cannot ensure that script [" + scriptFile + "] is executable";
audit("ensureExecutable", BundleResourceDeploymentHistory.Status.FAILURE, msg);
throw new RuntimeException(msg);
}
-
return;
}
commit 166cfc6067a2233b4810a729e10608c5c0ef87db
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Jun 15 08:52:03 2010 -0400
tweak to get it running within Hudson
diff --git a/release.sh b/release.sh
index 6fff4dc..dfb8619 100755
--- a/release.sh
+++ b/release.sh
@@ -127,16 +127,17 @@ fi
if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
echo "We appear to be running in a Hudson job."
- WORK_DIR="$WORKSPACE"
-elif [ -z "$WORK_DIR" ]; then
- WORK_DIR="$HOME/release"
+ WORKING_DIR="$WORKSPACE"
+ MAVEN_LOCAL_REPO_DIR="$HOME/.m2/hudson-$JOB_NAME-repository"
+ MAVEN_SETTINGS_FILE="$HOME/.m2/hudson-$JOB_NAME-settings.xml"
+elif [ -z "$WORKING_DIR" ]; then
+ WORKING_DIR="$HOME/release/rhq"
+ MAVEN_LOCAL_REPO_DIR="$HOME/release/m2-repository"
+ MAVEN_SETTINGS_FILE="$HOME/release/m2-settings.xml"
fi
-cd "$WORK_DIR"
-PROJECT_GIT_URL="ssh://$GIT_USER@git.fedorahosted.org/git/rhq/rhq.git"
+PROJECT_GIT_URL="ssh://${GIT_USER}@git.fedorahosted.org/git/rhq/rhq.git"
-MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
-MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav"
@@ -162,7 +163,7 @@ echo "M2_HOME=$M2_HOME"
echo "MAVEN_OPTS=$MAVEN_OPTS"
echo "PATH=$PATH"
echo "============================= Local Variables ================================="
-echo "WORK_DIR=$WORK_DIR"
+echo "WORKING_DIR=$WORKING_DIR"
echo "PROJECT_NAME=$PROJECT_NAME"
echo "RELEASE_TYPE=$RELEASE_TYPE"
echo "RELEASE_VERSION=$RELEASE_VERSION"
@@ -232,9 +233,8 @@ EOF
# Clone and/or checkout the source from git.
-CLONE_DIR="$WORK_DIR/rhq"
-if [ -d "$CLONE_DIR" ]; then
- cd "$CLONE_DIR"
+if [ -d "$WORKING_DIR" ]; then
+ cd "$WORKING_DIR"
git status >/dev/null 2>&1
# Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any uncommitted changes,
# and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $CLONE_DIR
@@ -246,13 +246,14 @@ if [ -d "$CLONE_DIR" ]; then
git reset --hard
git clean -dxf
else
- cd "$WORK_DIR"
- rm -rf "$CLONE_DIR"
+ echo "$WORKING_DIR does not appear to be a git working directory - removing it so we can freshly clone the repo..."
+ cd ..
+ rm -rf "$WORKING_DIR"
fi
fi
-if [ ! -d "$CLONE_DIR" ]; then
+if [ ! -d "$WORKING_DIR" ]; then
echo "Cloning the $PROJECT_NAME git repo (this will take about 10-15 minutes)..."
- git clone "$PROJECT_GIT_URL"
+ git clone "$PROJECT_GIT_URL" "$WORKING_DIR"
[ $? -ne 0 ] && abort "Failed to clone $PROJECT_NAME git repo ($PROJECT_GIT_URL)."
cd "$CLONE_DIR"
git checkout "$RELEASE_BRANCH"
commit bea23b1d636584751ebe09c4e0b851d22f777fd8
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Jun 15 11:25:04 2010 +0200
BZ 535718 - explicitly clean up state
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ListChildResourcesUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ListChildResourcesUIBean.java
index 73d72f9..97aff97 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ListChildResourcesUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ListChildResourcesUIBean.java
@@ -119,6 +119,7 @@ public class ListChildResourcesUIBean extends PagedDataTableUIBean {
FacesContextUtility.removeSessionScopedBean(CreateNewConfigurationChildResourceUIBean.class);
FacesContextUtility.removeSessionScopedBean(CreateNewPackageChildResourceUIBean.class);
FacesContextUtility.removeSessionScopedBean(UploadNewChildPackageUIBean.class);
+ FacesContextUtility.removeSessionScopedBean(ManuallyAddChildResourceUIBean.class);
} catch (Throwable t) {
// if any error happens whatsoever, continue processing as if this code didn't exist
}
@@ -369,4 +370,4 @@ public class ListChildResourcesUIBean extends PagedDataTableUIBean {
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ManuallyAddChildResourceUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ManuallyAddChildResourceUIBean.java
index 51126bf..31b6342 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ManuallyAddChildResourceUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ManuallyAddChildResourceUIBean.java
@@ -74,6 +74,10 @@ public class ManuallyAddChildResourceUIBean {
throw new IllegalStateException(this.type.getName() + " resources cannot be manually added to inventory.");
}
+ lookupConfigurationAndDef();
+ }
+
+ private void lookupConfigurationAndDef() {
this.configurationDefinition = lookupConfigurationDefinition();
if (this.configurationDefinition != null) {
this.configuration = lookupConfiguration();
@@ -128,6 +132,10 @@ public class ManuallyAddChildResourceUIBean {
}
if (this.configurationDefinition == null) {
+ lookupConfigurationAndDef();
+ }
+
+ if (this.configurationDefinition == null) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"There are no connection properties defined for " + this.type);
return OUTCOME_BAD_TYPE;
@@ -182,10 +190,12 @@ public class ManuallyAddChildResourceUIBean {
outcome = OUTCOME_SUCCESS;
}
+ cleanup();
return outcome;
}
public String cancel() {
+ cleanup();
return OUTCOME_SUCCESS;
}
@@ -236,6 +246,15 @@ public class ManuallyAddChildResourceUIBean {
}
}
+ private void cleanup() {
+ // clean out fields for next usage
+ this.configuration = null;
+ this.configurationDefinition = null;
+ this.type = null;
+ this.selectedTemplateName = null;
+
+ }
+
public String getName() {
return name;
}
@@ -267,4 +286,4 @@ public class ManuallyAddChildResourceUIBean {
public void setSelectedTemplateName(String selectedTemplateName) {
this.selectedTemplateName = selectedTemplateName;
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/inventory-beans.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/inventory-beans.xml
index fb313ca..7a23e56 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/inventory-beans.xml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/inventory-beans.xml
@@ -40,7 +40,7 @@
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
-
+
<!-- /rhq/admin/listAlertTemplates.xhtml & others -->
@@ -138,7 +138,7 @@
<managed-bean>
<managed-bean-name>ManuallyAddChildResourceUIBean</managed-bean-name>
<managed-bean-class>org.rhq.enterprise.gui.inventory.resource.ManuallyAddChildResourceUIBean</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
+ <managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<!-- /rhq/resource/inventory/edit-general.xhtml -->
commit 5c1450b689c6d8fc22da0bf5c74eddf55be61e52
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Tue Jun 15 11:08:59 2010 +0200
BZ 603646 - don't enable the re-enable feature for definitions
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/config/AlertDefinitionActive.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/config/AlertDefinitionActive.jsp
index ed6b4fa..6b69b37 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/config/AlertDefinitionActive.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/config/AlertDefinitionActive.jsp
@@ -19,7 +19,7 @@
<html:img page="/images/icon_available_red.gif" width="12" height="12" border="0"/>
<fmt:message key="alert.config.props.PB.ActiveNo"/>
- <c:if test="${not alertDef.deleted}">
+ <c:if test="${not alertDef.deleted && not empty alert.id}">
<a href="/alerts/RenableAlertDefinition.do?id=${Resource.id}&a=${alert.id}&mode=${param.mode}&ad=${alertDef.id}">click to re-enable</a>
</c:if>
</td>
commit ba8f90c694f4e0131bea1d06c1c02d599dc30e90
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 22:38:54 2010 -0400
Add LGPL to license
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatServerComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatServerComponent.java
index b1fd1af..3597999 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatServerComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatServerComponent.java
@@ -1,20 +1,24 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 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.
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
*
* 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.
+ * GNU General Public License and the GNU Lesser 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.
+ * and the GNU Lesser 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.jboss.on.plugins.tomcat;
@@ -414,9 +418,9 @@ public class TomcatServerComponent implements JMXComponent, MeasurementFacet, Op
public OperationResult invokeOperation(String name, Configuration parameters) throws InterruptedException,
Exception {
SupportedOperations operation = Enum.valueOf(SupportedOperations.class, name.toUpperCase());
-
+
addScriptsEnvironment(parameters);
-
+
return operationsDelegate.invoke(operation, parameters);
}
@@ -445,20 +449,20 @@ public class TomcatServerComponent implements JMXComponent, MeasurementFacet, Op
}
}
}
-
+
private void addScriptsEnvironment(Configuration operationParameters) {
Configuration pluginConfiguration = resourceContext.getPluginConfiguration();
-
- PropertyList startScriptEnv = pluginConfiguration.getList(
- TomcatServerOperationsDelegate.START_SCRIPT_ENVIRONMENT_PROPERTY);
-
- PropertyList shutdownScriptEnv = pluginConfiguration.getList(
- TomcatServerOperationsDelegate.SHUTDOWN_SCRIPT_ENVIRONMENT_PROPERTY);
-
+
+ PropertyList startScriptEnv = pluginConfiguration
+ .getList(TomcatServerOperationsDelegate.START_SCRIPT_ENVIRONMENT_PROPERTY);
+
+ PropertyList shutdownScriptEnv = pluginConfiguration
+ .getList(TomcatServerOperationsDelegate.SHUTDOWN_SCRIPT_ENVIRONMENT_PROPERTY);
+
if (startScriptEnv != null) {
operationParameters.put(startScriptEnv);
}
-
+
if (shutdownScriptEnv != null) {
operationParameters.put(shutdownScriptEnv);
}
commit 3fef1ffc220bdd083ab2ee27a96d562b6f1ca21b
Merge: fbf3af5... 3e00383...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 22:26:53 2010 -0400
Merge branch 'release-3.0.0' into release-3.0.0-jay
commit 3e003835d43d1e287acc1466ccc7f2fa9546788f
Merge: 75b760a... 2ab165b...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 22:26:20 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit 2ab165b46f2b14ca61e9ba00d3e836365eb52484
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 16:01:46 2010 -0400
BZ 602762 - do not set any hashcode if rpm returned there filler value indicating it wasn't set (this filler value is a string of all-zeros)
diff --git a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
index 872faac..7755073 100644
--- a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
+++ b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
@@ -171,10 +171,12 @@ public class RpmPackageDiscoveryDelegate {
packageDetails.setClassification(category);
packageDetails.setDisplayName(name);
packageDetails.setFileName(fileName);
- if (md5.length() <= 32) {
- packageDetails.setMD5(md5);
- } else {
- packageDetails.setSHA256(md5); // md5's can only be 32 chars, anything more and we assume its a SHA256
+ if (!md5.startsWith("00000000000000000000000000000000")) {
+ if (md5.length() <= 32) {
+ packageDetails.setMD5(md5);
+ } else {
+ packageDetails.setSHA256(md5); // md5's can only be 32 chars, anything more and we assume its a SHA256
+ }
}
packageDetails.setFileSize(fileSize);
packageDetails.setLicenseName(license);
commit 8b2395040220079a45f67900568aa3616f7941cc
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 13:26:58 2010 -0400
BZ 602329 auto installer now knows to expect encrypted db password
diff --git a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
index 6f6235a..a7d1392 100644
--- a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
+++ b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
@@ -18,11 +18,6 @@
*/
package org.rhq.enterprise.installer;
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.InetAddress;
import java.sql.Connection;
@@ -546,6 +541,23 @@ public class ConfigurationBean {
public StartPageResults save() {
LOG.info("Installer raw values: " + configuration);
+ // if auto-install is enabled, the db password will be encrypted - decrypt it internally and we'll re-encrypt later
+ if (isAutoinstallEnabled()) {
+ try {
+ PropertyItemWithValue prop = getConfigurationPropertyFromAll(ServerProperties.PROP_DATABASE_PASSWORD);
+ String pass = prop.getValue();
+ pass = decodePassword(pass);
+ prop.setValue(pass);
+ // log the unencrypted pw, but only at the trace level so it isn't put in the log file
+ // unless someone explicitly enables the trace level so they can see the pass that is to be used for debugging
+ LOG.trace(">" + pass);
+ } catch (Exception e) {
+ LOG.fatal("Could not decrypt the password for some reason - auto-installation failed", e);
+ lastError = I18Nmsg.getMsg(InstallerI18NResourceKeys.SAVE_ERROR, ThrowableUtil.getAllMessages(e));
+ return StartPageResults.ERROR;
+ }
+ }
+
// its possible the JDBC URL was changed, clear the factory cache in case the DB version is different now
DatabaseTypeFactory.clearDatabaseTypeCache();
@@ -733,7 +745,7 @@ public class ConfigurationBean {
// encode database password and set updated properties
String pass = configurationAsProperties.getProperty(ServerProperties.PROP_DATABASE_PASSWORD);
pass = encryptPassword(pass);
- configurationAsProperties.setProperty(ServerProperties.PROP_DATABASE_PASSWORD,pass);
+ configurationAsProperties.setProperty(ServerProperties.PROP_DATABASE_PASSWORD, pass);
serverInfo.setServerProperties(configurationAsProperties);
@@ -765,13 +777,30 @@ public class ConfigurationBean {
try {
SecureIdentityLoginModule lm = new SecureIdentityLoginModule();
- Class clazz = SecureIdentityLoginModule.class;
- Method m = clazz.getDeclaredMethod("encode",String.class);
+ Class<?> clazz = SecureIdentityLoginModule.class;
+ Method m = clazz.getDeclaredMethod("encode", String.class);
m.setAccessible(true);
- String res = (String) m.invoke(lm,password);
+ String res = (String) m.invoke(lm, password);
return res;
} catch (Exception e) {
- throw new Exception("Encoding db password failed: " , e);
+ throw new Exception("Encoding db password failed: ", e);
+ }
+ }
+
+ private String decodePassword(String encrypedPassword) throws Exception {
+
+ // We need to do some mumbo jumbo, as the interesting method is private
+ // in SecureIdentityLoginModule
+
+ try {
+ SecureIdentityLoginModule lm = new SecureIdentityLoginModule();
+ Class<?> clazz = SecureIdentityLoginModule.class;
+ Method m = clazz.getDeclaredMethod("decode", String.class);
+ m.setAccessible(true);
+ char[] res = (char[]) m.invoke(lm, encrypedPassword);
+ return new String(res);
+ } catch (Exception e) {
+ throw new Exception("Decoding db password failed: ", e);
}
}
commit 2572cb8e7ac373105ffc932a0287f7201f399753
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 13:26:25 2010 -0400
BZ 602486 - remove JDK6 usage temporarily - reinstate this once JDK6 is allowed
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
index c8111fc..fa81429 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
@@ -245,6 +245,8 @@ public class Deployer {
public DeploymentDiskUsage estimateDiskUsage() throws Exception {
final DeploymentDiskUsage diskUsage = new DeploymentDiskUsage();
+ /*
+ OH TO BE ABLE TO USE A MODERN JDK - THIS NEEDS JDK6
File partition = this.deploymentData.getDestinationDir();
long usableSpace = partition.getUsableSpace();
while (usableSpace == 0L && partition != null) {
@@ -255,6 +257,8 @@ public class Deployer {
}
diskUsage.setMaxDiskUsable(usableSpace);
+ */
+ diskUsage.setMaxDiskUsable(Long.MAX_VALUE);
Set<File> zipFiles = this.deploymentData.getZipFiles();
for (File zipFile : zipFiles) {
commit b9493cf606733e940a43a7766e8ea91ef1786b58
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 13:25:18 2010 -0400
BZ 602762 - platform plugin needs to set SHA256/MD5 properly
diff --git a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
index 74cc8b7..872faac 100644
--- a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
+++ b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
@@ -171,7 +171,11 @@ public class RpmPackageDiscoveryDelegate {
packageDetails.setClassification(category);
packageDetails.setDisplayName(name);
packageDetails.setFileName(fileName);
- packageDetails.setMD5(md5);
+ if (md5.length() <= 32) {
+ packageDetails.setMD5(md5);
+ } else {
+ packageDetails.setSHA256(md5); // md5's can only be 32 chars, anything more and we assume its a SHA256
+ }
packageDetails.setFileSize(fileSize);
packageDetails.setLicenseName(license);
packageDetails.setLongDescription(description.toString());
commit b62aee0bebe55d1351bc69f2f3d97039afa14a8b
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Jun 14 11:14:42 2010 -0400
just a comment added to talk about bind address vs. public address
diff --git a/modules/enterprise/agent/src/main/resources/agent-configuration.xml b/modules/enterprise/agent/src/main/resources/agent-configuration.xml
index b087a76..f36b459 100644
--- a/modules/enterprise/agent/src/main/resources/agent-configuration.xml
+++ b/modules/enterprise/agent/src/main/resources/agent-configuration.xml
@@ -883,6 +883,18 @@ commands named "config", "setconfig" and "setup" and the command line options
adapters that are available. If you want the agent to use
a specific IP or address, then you must define the
bind-address here.
+
+ Notice about bind-address and bind-port:
+ If you use transport param "serverBindAddress", that will
+ actually be the address the agent will use to bind its
+ socket and the rhq.communications.connector.bind-address
+ will be the public address the RHQ Server will use to
+ talk to the agent.
+ If you use transport param "serverBindPort", that will
+ actually be the port the agent will use for its server
+ socket and the rhq.communications.connector.bind-port
+ will be the public port the RHQ Server will use to
+ talk to the agent.
-->
<entry key="rhq.communications.connector.rhqtype" value="agent" />
<entry key="rhq.communications.connector.transport" value="socket" />
commit cfa1b8d643d1899bca8e07b56213482a62df8b2b
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Mon Jun 14 11:14:42 2010 -0400
just a comment added to talk about bind address vs. public address
diff --git a/modules/enterprise/agent/src/main/resources/agent-configuration.xml b/modules/enterprise/agent/src/main/resources/agent-configuration.xml
index b087a76..f36b459 100644
--- a/modules/enterprise/agent/src/main/resources/agent-configuration.xml
+++ b/modules/enterprise/agent/src/main/resources/agent-configuration.xml
@@ -883,6 +883,18 @@ commands named "config", "setconfig" and "setup" and the command line options
adapters that are available. If you want the agent to use
a specific IP or address, then you must define the
bind-address here.
+
+ Notice about bind-address and bind-port:
+ If you use transport param "serverBindAddress", that will
+ actually be the address the agent will use to bind its
+ socket and the rhq.communications.connector.bind-address
+ will be the public address the RHQ Server will use to
+ talk to the agent.
+ If you use transport param "serverBindPort", that will
+ actually be the port the agent will use for its server
+ socket and the rhq.communications.connector.bind-port
+ will be the public port the RHQ Server will use to
+ talk to the agent.
-->
<entry key="rhq.communications.connector.rhqtype" value="agent" />
<entry key="rhq.communications.connector.transport" value="socket" />
commit 0f34ac2c5509187eb3d991ff4e21c47b60f539da
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 16:01:46 2010 -0400
BZ 602762 - do not set any hashcode if rpm returned there filler value indicating it wasn't set (this filler value is a string of all-zeros)
diff --git a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
index 872faac..7755073 100644
--- a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
+++ b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
@@ -171,10 +171,12 @@ public class RpmPackageDiscoveryDelegate {
packageDetails.setClassification(category);
packageDetails.setDisplayName(name);
packageDetails.setFileName(fileName);
- if (md5.length() <= 32) {
- packageDetails.setMD5(md5);
- } else {
- packageDetails.setSHA256(md5); // md5's can only be 32 chars, anything more and we assume its a SHA256
+ if (!md5.startsWith("00000000000000000000000000000000")) {
+ if (md5.length() <= 32) {
+ packageDetails.setMD5(md5);
+ } else {
+ packageDetails.setSHA256(md5); // md5's can only be 32 chars, anything more and we assume its a SHA256
+ }
}
packageDetails.setFileSize(fileSize);
packageDetails.setLicenseName(license);
commit 4cc744f43e8e2442851162d5c61392a54b63d190
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 13:26:58 2010 -0400
BZ 602329 auto installer now knows to expect encrypted db password
diff --git a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
index 6f6235a..a7d1392 100644
--- a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
+++ b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ConfigurationBean.java
@@ -18,11 +18,6 @@
*/
package org.rhq.enterprise.installer;
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.InetAddress;
import java.sql.Connection;
@@ -546,6 +541,23 @@ public class ConfigurationBean {
public StartPageResults save() {
LOG.info("Installer raw values: " + configuration);
+ // if auto-install is enabled, the db password will be encrypted - decrypt it internally and we'll re-encrypt later
+ if (isAutoinstallEnabled()) {
+ try {
+ PropertyItemWithValue prop = getConfigurationPropertyFromAll(ServerProperties.PROP_DATABASE_PASSWORD);
+ String pass = prop.getValue();
+ pass = decodePassword(pass);
+ prop.setValue(pass);
+ // log the unencrypted pw, but only at the trace level so it isn't put in the log file
+ // unless someone explicitly enables the trace level so they can see the pass that is to be used for debugging
+ LOG.trace(">" + pass);
+ } catch (Exception e) {
+ LOG.fatal("Could not decrypt the password for some reason - auto-installation failed", e);
+ lastError = I18Nmsg.getMsg(InstallerI18NResourceKeys.SAVE_ERROR, ThrowableUtil.getAllMessages(e));
+ return StartPageResults.ERROR;
+ }
+ }
+
// its possible the JDBC URL was changed, clear the factory cache in case the DB version is different now
DatabaseTypeFactory.clearDatabaseTypeCache();
@@ -733,7 +745,7 @@ public class ConfigurationBean {
// encode database password and set updated properties
String pass = configurationAsProperties.getProperty(ServerProperties.PROP_DATABASE_PASSWORD);
pass = encryptPassword(pass);
- configurationAsProperties.setProperty(ServerProperties.PROP_DATABASE_PASSWORD,pass);
+ configurationAsProperties.setProperty(ServerProperties.PROP_DATABASE_PASSWORD, pass);
serverInfo.setServerProperties(configurationAsProperties);
@@ -765,13 +777,30 @@ public class ConfigurationBean {
try {
SecureIdentityLoginModule lm = new SecureIdentityLoginModule();
- Class clazz = SecureIdentityLoginModule.class;
- Method m = clazz.getDeclaredMethod("encode",String.class);
+ Class<?> clazz = SecureIdentityLoginModule.class;
+ Method m = clazz.getDeclaredMethod("encode", String.class);
m.setAccessible(true);
- String res = (String) m.invoke(lm,password);
+ String res = (String) m.invoke(lm, password);
return res;
} catch (Exception e) {
- throw new Exception("Encoding db password failed: " , e);
+ throw new Exception("Encoding db password failed: ", e);
+ }
+ }
+
+ private String decodePassword(String encrypedPassword) throws Exception {
+
+ // We need to do some mumbo jumbo, as the interesting method is private
+ // in SecureIdentityLoginModule
+
+ try {
+ SecureIdentityLoginModule lm = new SecureIdentityLoginModule();
+ Class<?> clazz = SecureIdentityLoginModule.class;
+ Method m = clazz.getDeclaredMethod("decode", String.class);
+ m.setAccessible(true);
+ char[] res = (char[]) m.invoke(lm, encrypedPassword);
+ return new String(res);
+ } catch (Exception e) {
+ throw new Exception("Decoding db password failed: ", e);
}
}
commit 3eeda5cf1a1a779ac337411bf68af016ceb7ef46
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 13:26:25 2010 -0400
BZ 602486 - remove JDK6 usage temporarily - reinstate this once JDK6 is allowed
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
index c8111fc..fa81429 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/updater/Deployer.java
@@ -245,6 +245,8 @@ public class Deployer {
public DeploymentDiskUsage estimateDiskUsage() throws Exception {
final DeploymentDiskUsage diskUsage = new DeploymentDiskUsage();
+ /*
+ OH TO BE ABLE TO USE A MODERN JDK - THIS NEEDS JDK6
File partition = this.deploymentData.getDestinationDir();
long usableSpace = partition.getUsableSpace();
while (usableSpace == 0L && partition != null) {
@@ -255,6 +257,8 @@ public class Deployer {
}
diskUsage.setMaxDiskUsable(usableSpace);
+ */
+ diskUsage.setMaxDiskUsable(Long.MAX_VALUE);
Set<File> zipFiles = this.deploymentData.getZipFiles();
for (File zipFile : zipFiles) {
commit 83d0bd01759ddc48af69697273f08bbf361bb7a4
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Jun 10 13:25:18 2010 -0400
BZ 602762 - platform plugin needs to set SHA256/MD5 properly
diff --git a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
index 74cc8b7..872faac 100644
--- a/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
+++ b/modules/plugins/platform/src/main/java/org/rhq/plugins/platform/content/RpmPackageDiscoveryDelegate.java
@@ -171,7 +171,11 @@ public class RpmPackageDiscoveryDelegate {
packageDetails.setClassification(category);
packageDetails.setDisplayName(name);
packageDetails.setFileName(fileName);
- packageDetails.setMD5(md5);
+ if (md5.length() <= 32) {
+ packageDetails.setMD5(md5);
+ } else {
+ packageDetails.setSHA256(md5); // md5's can only be 32 chars, anything more and we assume its a SHA256
+ }
packageDetails.setFileSize(fileSize);
packageDetails.setLicenseName(license);
packageDetails.setLongDescription(description.toString());
commit 3ca36f84289c820c6076ebbeb4ba2f22124b9d13
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 18:36:28 2010 -0400
add another command-line arg for specifying the GIT username to use to clone the repo
diff --git a/release.sh b/release.sh
index 1f62e0d..6fff4dc 100755
--- a/release.sh
+++ b/release.sh
@@ -4,7 +4,6 @@
PROJECT_NAME="rhq"
PROJECT_DISPLAY_NAME="RHQ"
-PROJECT_GIT_URL="ssh://git.fedorahosted.org/git/rhq/rhq.git"
PROJECT_GIT_WEB_URL="http://git.fedorahosted.org/git/?p=rhq/rhq.git"
TAG_PREFIX="RHQ"
MINIMUM_MAVEN_VERSION="2.1.0"
@@ -23,14 +22,14 @@ abort()
usage()
{
- abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0"
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH GIT_USER" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0 ips"
}
# Process command line args.
EXE=`basename $0`
-if [ "$#" -ne 4 ]; then
+if [ "$#" -ne 5 ]; then
usage
fi
RELEASE_TYPE="$1"
@@ -38,10 +37,9 @@ if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; th
usage "Invalid release type: $RELEASE_TYPE"
fi
RELEASE_VERSION="$2"
-TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
-RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
DEVELOPMENT_VERSION="$3"
RELEASE_BRANCH="$4"
+GIT_USER="$5"
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
@@ -126,6 +124,7 @@ fi
# Set various local variables.
+
if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
echo "We appear to be running in a Hudson job."
WORK_DIR="$WORKSPACE"
@@ -134,6 +133,7 @@ elif [ -z "$WORK_DIR" ]; then
fi
cd "$WORK_DIR"
+PROJECT_GIT_URL="ssh://$GIT_USER@git.fedorahosted.org/git/rhq/rhq.git"
MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
@@ -148,6 +148,9 @@ if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
+TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
+RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
+
# Print out a summary of the environment.
commit fbf3af509bebc876eb122e9079b039d01b734adc
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 17:58:13 2010 -0400
[BZ 602701] Change some operation description wording.
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 b0d9364..4ba4d91 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
@@ -152,7 +152,7 @@
<operation
name="start"
displayName="Start"
- description="Start this Tomcat server. The script used is specified in Control Properties.">
+ description="Start this Tomcat server. The script used is specified in the Control section of Connection Properties.">
<results>
<c:simple-property
name="operationResult"
@@ -163,7 +163,7 @@
<operation
name="shutdown"
displayName="Shutdown"
- description="Shutdown this Tomcat server. The script used is specified in Control Properties.">
+ description="Shutdown this Tomcat server. The script used is specified in the Control section of Connection Properties.">
<results>
<c:simple-property
name="operationResult"
@@ -174,7 +174,7 @@
<operation
name="restart"
displayName="Restart"
- description="Restart this Tomcat server. The scripts used are specified in Control Properties.">
+ description="Restart this Tomcat server. The scripts used are specified in the Control section of Connection Properties.">
<results>
<c:simple-property
name="operationResult"
commit a2d48a8e49a4cc5e238cae07998bcb135c8c03c4
Merge: 3f60aad... 6a37f3e...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 17:57:37 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit 3f60aad4a731dcb0a3f422048065573b6e1552b3
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 17:56:20 2010 -0400
script now assumes release branch already exists and requires user to specify the name of the release branch via a command-line argument
diff --git a/release.sh b/release.sh
index 186fe1b..1f62e0d 100755
--- a/release.sh
+++ b/release.sh
@@ -23,14 +23,14 @@ abort()
usage()
{
- abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.GA 3.0.0-SNAPSHOT"
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION RELEASE_BRANCH" "Example: $EXE enterprise 3.0.0.GA 3.0.0-SNAPSHOT release-3.0.0"
}
# Process command line args.
EXE=`basename $0`
-if [ "$#" -ne 3 ]; then
+if [ "$#" -ne 4 ]; then
usage
fi
RELEASE_TYPE="$1"
@@ -41,8 +41,7 @@ RELEASE_VERSION="$2"
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
DEVELOPMENT_VERSION="$3"
-BRANCH="master"
-RELEASE_BRANCH="release-$RELEASE_VERSION"
+RELEASE_BRANCH="$4"
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
@@ -238,8 +237,9 @@ if [ -d "$CLONE_DIR" ]; then
# and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $CLONE_DIR
# is a git working copy.
if [ $? -le 1 ]; then
- echo "Checking out a clean copy of the master branch..."
- git checkout "$BRANCH"
+ echo "Checking out a clean copy of the release branch ($RELEASE_BRANCH)..."
+ git checkout "$RELEASE_BRANCH"
+ [ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
git reset --hard
git clean -dxf
else
@@ -248,20 +248,15 @@ if [ -d "$CLONE_DIR" ]; then
fi
fi
if [ ! -d "$CLONE_DIR" ]; then
- echo "Cloning the RHQ git repo (this will take about 10-15 minutes)..."
- git clone ssh://git.fedorahosted.org/git/rhq/rhq.git
+ echo "Cloning the $PROJECT_NAME git repo (this will take about 10-15 minutes)..."
+ git clone "$PROJECT_GIT_URL"
+ [ $? -ne 0 ] && abort "Failed to clone $PROJECT_NAME git repo ($PROJECT_GIT_URL)."
cd "$CLONE_DIR"
- git checkout "$BRANCH"
+ git checkout "$RELEASE_BRANCH"
+ [ $? -ne 0 ] && abort "Failed to checkout release branch ($RELEASE_BRANCH)."
fi
-# Create a branch for the release, so we don't have to make any changes to master.
-
-echo "Creating release branch $RELEASE_BRANCH and checking it out..."
-git push origin master:$RELEASE_BRANCH
-git checkout $RELEASE_BRANCH
-
-
# Run a test build before tagging. This will also publish the snapshot artifacts to the local repo to "bootstrap" the repo.
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
commit 75b760ab54c80ba0e5e7396b4085739b620a9272
Merge: 84eaac0... 6a37f3e...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 17:40:57 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit 6a37f3e3ecd936b75944958b5d65688af08f20b8
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 14 17:15:02 2010 -0400
BZ-603187: remove resources from containing groups when they are uninventoried
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 4f63893..7fe7a5e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -276,6 +276,11 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
toBeDeletedQuery.setParameter("resourceId", resourceId);
List<Integer> toBeDeletedResourceIds = toBeDeletedQuery.getResultList();
+ boolean hasErrors = uninventoryResourcesBulkDelete(overlord, toBeDeletedResourceIds);
+ if (hasErrors) {
+ throw new IllegalArgumentException("Could not remove resources from their containing groups");
+ }
+
Query markDeletedQuery = entityManager.createNamedQuery(Resource.QUERY_MARK_RESOURCES_FOR_ASYNC_DELETION);
markDeletedQuery.setParameter("resourceId", resourceId);
markDeletedQuery.setParameter("status", InventoryStatus.UNINVENTORIED);
@@ -320,7 +325,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
throw new IllegalArgumentException("Only the overlord can execute out-of-band async resource delete method");
}
- boolean hasErrors = doBulkDelete(user, resourceId);
+ boolean hasErrors = uninventoryResourceBulkDeleteAsyncWork(user, resourceId);
if (hasErrors) {
return; // return early if there were any errors, because we can't remove the resource yet
}
@@ -336,12 +341,23 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
return;
}
- private boolean doBulkDelete(Subject overlord, int resourceId) {
+ private boolean uninventoryResourcesBulkDelete(Subject overlord, List<Integer> resourceIds) {
String[] nativeQueriesToExecute = new String[] { //
ResourceGroup.QUERY_DELETE_EXPLICIT_BY_RESOURCE_IDS, // unmap from explicit groups
ResourceGroup.QUERY_DELETE_IMPLICIT_BY_RESOURCE_IDS // unmap from implicit groups
};
+ boolean hasErrors = false;
+ for (String nativeQueryToExecute : nativeQueriesToExecute) {
+ // execute all in new transactions, continuing on error, but recording whether errors occurred
+ hasErrors |= resourceManager.bulkNativeQueryDeleteInNewTransaction(overlord, nativeQueryToExecute,
+ resourceIds);
+ }
+
+ return hasErrors;
+ }
+
+ private boolean uninventoryResourceBulkDeleteAsyncWork(Subject overlord, int resourceId) {
String[] namedQueriesToExecute = new String[] { //
ResourceRepo.DELETE_BY_RESOURCES, //
MeasurementBaseline.QUERY_DELETE_BY_RESOURCES, // baseline BEFORE schedules
@@ -384,11 +400,6 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
boolean supportsCascade = DatabaseTypeFactory.getDefaultDatabaseType().supportsSelfReferringCascade();
boolean hasErrors = false;
- for (String nativeQueryToExecute : nativeQueriesToExecute) {
- // execute all in new transactions, continuing on error, but recording whether errors occurred
- hasErrors |= resourceManager.bulkNativeQueryDeleteInNewTransaction(overlord, nativeQueryToExecute,
- resourceIds);
- }
for (String namedQueryToExecute : namedQueriesToExecute) {
// execute all in new transactions, continuing on error, but recording whether errors occurred
@@ -1244,7 +1255,6 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
public List<Integer> findExplicitResourceIdsByResourceGroup(int resourceGroupId) {
Query query = entityManager.createNamedQuery(Resource.QUERY_FIND_EXPLICIT_IDS_BY_RESOURCE_GROUP_ADMIN);
query.setParameter("groupId", resourceGroupId);
- query.setParameter("inventoryStatus", InventoryStatus.COMMITTED);
List<Integer> results = query.getResultList();
return results;
commit 84eaac0659c9b048f7dd467559002fdbac4ded6d
Merge: 648c5af... e402642...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 16:42:07 2010 -0400
Merge branch 'release-3.0.0' of ssh://git.fedorahosted.org/git/rhq/rhq into release-3.0.0
commit e4026421c5f55169952bc5850112997b3f256678
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 16:30:37 2010 -0400
update all pom versions to 3.0.0-SNAPSHOT and update maven release plugin to v2.0
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 93d64b1..eda9133 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 5c13740..bc7965b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 6455596..2cf950b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 5cf2cae..ee81a94 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 4508318..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 3f509dc..a51f92b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 7110509..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index bbc12ff..e0ced84 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 98ce51c..0911918 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 6b89b88..d47d4c8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index b2cb78a..e1ce7ef 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index fa96b61..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 8cda7a3..7739177 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index a29a0d7..eeb7e81 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index f6bacb7..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index 7f82785..bc41dc5 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 6d0c906..d9f1c1c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 58c1427..8942239 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 29c7863..8b9da9c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index accfc79..611eb9d 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index e45b090..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index d041d44..df05645 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 615c7cd..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index f1a0bcd..dcb1f88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index a23ac44..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index b6cbe86..783942c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index e6ffa5c..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 53de64f..3b0dbb8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index dd54c81..33966bd 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index e0314b8..605267f 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 88abaa3..910b617 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 186abcd..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index f0d66bd..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index eec7602..6ae155a 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 76024a6..bf15866 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 0a313de..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 8d2c323..dd5bc18 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,13 +3,12 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0.Beta1</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 ea7bbe2..c0973f3 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,14 +3,12 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
- <artifactId>alert-irc</artifactId>
- <version>3.0.0.Beta1</version>
-
+ <artifactId>alert-irc</artifactId>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 0048059..a62fee8 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,14 +3,12 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
- <artifactId>alert-microblog</artifactId>
- <version>3.0.0.Beta1</version>
-
+ <artifactId>alert-microblog</artifactId>
<name>RHQ Enterprise Server Microblog Alert Plugin</name>
@@ -187,4 +185,4 @@
</profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 1be0f9e..3193539 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,13 +3,12 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server Mobicents Alert Plugin</name>
@@ -118,4 +117,4 @@
</profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index fa12736..e69bfbc 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,14 +2,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0.Beta1</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 4d195b1..ca33bb7 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,13 +3,12 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-scriptlang/pom.xml b/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
index 45d61df..9cc8071 100644
--- a/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
+++ b/modules/enterprise/server/plugins/alert-scriptlang/pom.xml
@@ -11,7 +11,6 @@
<groupId>org.rhq</groupId>
<artifactId>alert-scriptlang</artifactId>
- <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Script lang Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-sms/pom.xml b/modules/enterprise/server/plugins/alert-sms/pom.xml
index 901a11d..94e2a4a 100644
--- a/modules/enterprise/server/plugins/alert-sms/pom.xml
+++ b/modules/enterprise/server/plugins/alert-sms/pom.xml
@@ -11,7 +11,6 @@
<groupId>org.rhq</groupId>
<artifactId>alert-sms</artifactId>
- <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server SMS-Sender Alert Plugin</name>
@@ -197,4 +196,4 @@
</profiles>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index 9bd0074..af75153 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,13 +3,12 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0.Beta1</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 45d5d65..09839b8 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,13 +3,12 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 8c7bbe3..73f405e 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 88ddf30..4c44f10 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,14 +4,13 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0.Beta1</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 182cd74..0033d1b 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 e7b1e61..61965f2 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 f7252c1..7451668 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 7c9f4a2..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index ae585d5..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index cb608d3..2b16f4a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 97bda8a..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index e84e83b..a6cba32 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 acd0162..9c7cc74 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 74bd77e..ebdd3da 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index b753a3c..06c8981 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 05961a6..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 6afe936..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index f3bcd1a..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f503f83..d056f74 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,17 +6,15 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
-
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-pluginAnnotations</artifactId>
<packaging>jar</packaging>
- <name>RHQ plugin annotations</name>
+ <name>RHQ Plugin Annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 957bff5..28dc9b1 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,17 +6,15 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
-
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-pluginGen</artifactId>
<packaging>jar</packaging>
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index d6727c1..a0721a9 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index a19a054..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7f258be..c37598e 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 6990d8d..cc160c9 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 2050389..b4f9208 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 59f4000..963223b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 6006518..d920440 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 49601df..d5aaad5 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index cd5c87b..30889f7 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 30de2b7..b79645d 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index e8de748..f7cf265 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index b9e64ce..acb08ef 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 8e66263..7dd0fde 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 92ffa60..65fa7b8 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,12 +6,11 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0.Beta1</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index fc2fff7..853c020 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 35cd9c8..a0ade77 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 7d27004..b9ed2b3 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 7a10a08..b3846fa 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 6751eb6..443e524 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 87fbc54..ac9885a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 3e4b018..d0c9053 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index e4981cc..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index ae3b48e..1acdb0f 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 8a95180..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 1b5dfc3..97b83b0 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 99c1d26..85d6105 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1eccfd3..283ab6a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index b01765b..5a4466c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index d1a409d..a190dcd 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 3cdb27b..8f4e675 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index e882164..0d41574 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 28d7256..7719b14 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index fc0e877..2d9d715 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index ca9afd2..3579496 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 07389ab..41df1b8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 1e5eea6..205d5b0 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index dafecdb..e299efa 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 2c3729f..b3d5e87 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index eb41a81..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index bf9156a..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index b91a952..ca7c648 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
@@ -515,7 +515,7 @@
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
- <version>2.0-beta-9</version>
+ <version>2.0</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
commit 5e018834577cf1717405c106619db97abf6c9e3d
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 16:01:24 2010 -0400
update Maven release plugin to v2.0
diff --git a/pom.xml b/pom.xml
index 1bc6dd6..7006a03 100644
--- a/pom.xml
+++ b/pom.xml
@@ -515,7 +515,7 @@
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
- <version>2.0-beta-9</version>
+ <version>2.0</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
@@ -537,7 +537,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
- <argLine>-Xms16m -Xmx256m</argLine>
+ <argLine>-Xms16M -Xmx256M</argLine>
</configuration>
</plugin>
<plugin>
commit 648c5af6fcc75f76b3d60e0fe36113d9ddc1787f
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 14:53:25 2010 -0400
Declare Tomcat User Database a singleton resource type
Declare WebApp Cache a singleton resource type
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 010de71..b0d9364 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
@@ -570,7 +570,8 @@
name="Tomcat Cache"
discovery="TomcatCacheDiscoveryComponent"
class="TomcatCacheComponent"
- description="A Tomcat Application (WAR) Cache">
+ description="A Tomcat Application (WAR) Cache"
+ singleton="true">
<plugin-configuration>
<c:group name="General">
@@ -953,7 +954,8 @@
name="Tomcat User Database"
discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
class="TomcatUserDatabaseComponent"
- description="Tomcat User Database">
+ description="Tomcat User Database"
+ singleton="true">
<plugin-configuration>
<c:group name="General">
commit 2d0df150841d9adcba5ac4e1dd470776dc99fbce
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:00:43 2010 -0400
Remove from the AS/AS5/Tomcat plugins the approach of a file-based cache
mapping filename-to-version for packages. This is one, unnecessary and
two, doesn't work as you can't guarantee version based on filename at plugin
granularity. This should solve [BZ 602538] but goes further to clean up all
three plugins using the bad approach.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
index 1a2655f..9336c25 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
@@ -54,10 +54,8 @@ import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
-import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
-import org.rhq.core.pluginapi.content.version.PackageVersions;
import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
import org.rhq.core.util.MessageDigestGenerator;
@@ -92,8 +90,6 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
private final Log log = LogFactory.getLog(this.getClass());
- private PackageVersions versions;
-
// ------------ MeasurementFacet Implementation ------------
@Override
@@ -138,20 +134,9 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
+ getResourceDescription() + " does not exist.");
String fileName = this.deploymentFile.getName();
- PackageVersions packageVersions = loadPackageVersions();
- String version = packageVersions.getVersion(fileName);
-
JarContentFileInfo fileInfo = new JarContentFileInfo(this.deploymentFile);
String sha256 = getSHA256(fileInfo);
-
- // First discovery of this EAR/WAR
- if (version == null) {
- // try to use version from manifest. if not there use the sha256. if that fails default to "0".
- version = getVersion(fileInfo, sha256);
- versions.putVersion(fileName, version);
- versions.saveToDisk();
- }
-
+ String version = getVersion(fileInfo, sha256);
// Package name is the deployment's file name (e.g. foo.ear).
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails packageDetails = new ResourcePackageDetails(key);
@@ -324,7 +309,6 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
// Deploy was successful!
deleteBackupOfOriginalFile(backupOfOriginalFile);
- persistApplicationVersion(packageDetails, this.deploymentFile);
DeployPackagesResponse response = new DeployPackagesResponse(ContentResponseResult.SUCCESS);
DeployIndividualPackageResponse packageResponse = new DeployIndividualPackageResponse(packageDetails.getKey(),
@@ -390,14 +374,6 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
return response;
}
- private void persistApplicationVersion(ResourcePackageDetails packageDetails, File appFile) {
- String packageName = appFile.getName();
- log.debug("Persisting application version '" + packageDetails.getVersion() + "' for package '" + packageName
- + "'");
- PackageVersions versions = loadPackageVersions();
- versions.putVersion(packageName, packageDetails.getVersion());
- }
-
private void deleteBackupOfOriginalFile(File backupOfOriginalFile) {
log.debug("Deleting backup of original file '" + backupOfOriginalFile + "'...");
try {
@@ -437,25 +413,4 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
}
return tempFile;
}
-
- /**
- * Returns an instantiated and loaded versions store access point.
- *
- * @return will not be <code>null</code>
- */
- private PackageVersions loadPackageVersions() {
- if (this.versions == null) {
- ResourceType resourceType = getResourceContext().getResourceType();
- String pluginName = resourceType.getPlugin();
- File dataDirectoryFile = getResourceContext().getDataDirectory();
- dataDirectoryFile.mkdirs();
- String dataDirectory = dataDirectoryFile.getAbsolutePath();
- log.trace("Creating application versions store with plugin name [" + pluginName + "] and data directory ["
- + dataDirectory + "]");
- this.versions = new PackageVersions(pluginName, dataDirectory);
- this.versions.loadFromDisk();
- }
-
- return this.versions;
- }
}
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
index e923682..0bde101 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
@@ -46,10 +46,8 @@ import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
-import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
-import org.rhq.core.pluginapi.content.version.PackageVersions;
import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.operation.OperationFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
@@ -91,11 +89,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
private final Log log = LogFactory.getLog(this.getClass());
- /**
- * Entry point to the persisted store of EAR/WAR package versions.
- */
- private PackageVersions versions;
-
// ContentFacet Implementation --------------------------------------------
public InputStream retrievePackageBits(ResourcePackageDetails packageDetails) {
@@ -135,20 +128,9 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
// Package name and file name of the application are the same
String fileName = new File(fullFileName).getName();
- PackageVersions versions = loadApplicationVersions();
- String version = versions.getVersion(fileName);
-
JarContentFileInfo fileInfo = new JarContentFileInfo(file);
String sha256 = getSHA256(fileInfo);
-
- // First discovery of this EAR/WAR
- if (version == null) {
- // try to use version from manifest. if not there use the sha256. if that fails default to "0".
- version = getVersion(fileInfo, sha256);
- versions.putVersion(fileName, version);
- versions.saveToDisk();
- }
-
+ String version = getVersion(fileInfo, sha256);
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
details.setFileName(fileName);
@@ -276,7 +258,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
// Deploy was successful!
deleteBackupOfOriginalFile(backupOfOriginalFile);
- persistApplicationVersion(packageDetails, appFile);
DeployPackagesResponse response = new DeployPackagesResponse(ContentResponseResult.SUCCESS);
DeployIndividualPackageResponse packageResponse = new DeployIndividualPackageResponse(packageDetails.getKey(),
@@ -436,36 +417,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
}
- // Private --------------------------------------------
-
- /**
- * Returns an instantiated and loaded versions store access point.
- *
- * @return will not be <code>null</code>
- */
- private PackageVersions loadApplicationVersions() {
- if (versions == null) {
- ResourceType resourceType = getResourceContext().getResourceType();
- String pluginName = resourceType.getPlugin();
-
- File dataDirectoryFile = getResourceContext().getDataDirectory();
-
- if (!dataDirectoryFile.exists()) {
- dataDirectoryFile.mkdir();
- }
-
- String dataDirectory = dataDirectoryFile.getAbsolutePath();
-
- log.debug("Creating application versions store with plugin name [" + pluginName + "] and data directory ["
- + dataDirectory + "]");
-
- versions = new PackageVersions(pluginName, dataDirectory);
- versions.loadFromDisk();
- }
-
- return versions;
- }
-
/**
* Creates the necessary transfer objects to report a failed application deployment (update).
*
@@ -486,12 +437,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
return response;
}
- private void persistApplicationVersion(ResourcePackageDetails packageDetails, File appFile) {
- String packageName = appFile.getName();
- PackageVersions versions = loadApplicationVersions();
- versions.putVersion(packageName, packageDetails.getVersion());
- }
-
private void deleteBackupOfOriginalFile(File backupOfOriginalFile) {
try {
FileUtils.purge(backupOfOriginalFile, true);
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index b3f0b98..9ecc0d7 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -60,11 +60,9 @@ import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
import org.rhq.core.domain.measurement.calltime.CallTimeData;
-import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pluginapi.configuration.ConfigurationUpdateReport;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
-import org.rhq.core.pluginapi.content.version.PackageVersions;
import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.pluginapi.operation.OperationResult;
@@ -135,8 +133,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
* Architecture string used in describing discovered packages.
*/
private static final String ARCHITECTURE = "noarch";
- private PackageVersions versions;
-
private EmsBean webModuleMBean;
private ResponseTimeLogParser logParser;
@@ -531,7 +527,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
// Deploy was successful!
deleteBackupOfOriginalFile(backupFile);
- persistApplicationVersion(packageDetails, appFile);
DeployPackagesResponse response = new DeployPackagesResponse(ContentResponseResult.SUCCESS);
DeployIndividualPackageResponse packageResponse = new DeployIndividualPackageResponse(packageDetails.getKey(),
@@ -626,18 +621,9 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
if (file.exists()) {
// Package name and file name of the application are the same
String fileName = new File(fullFileName).getName();
-
- PackageVersions versions = loadApplicationVersions();
- String version = versions.getVersion(fileName);
String sha256 = getSHA256(file);
-
- // First discovery of this WAR
- if (null == version) {
- JarContentFileInfo info = new JarContentFileInfo(file);
- version = getVersion(info, sha256);
- versions.putVersion(fileName, version);
- versions.saveToDisk();
- }
+ JarContentFileInfo info = new JarContentFileInfo(file);
+ String version = getVersion(info, sha256);
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
@@ -646,6 +632,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
if (!file.isDirectory())
details.setFileSize(file.length());
details.setFileCreatedDate(null); // TODO: get created date via SIGAR
+ details.setInstallationTimestamp(System.currentTimeMillis()); // TODO: anything better than discovery time
details.setSHA256(sha256);
packages.add(details);
@@ -735,12 +722,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return response;
}
- private void persistApplicationVersion(ResourcePackageDetails packageDetails, File appFile) {
- String packageName = appFile.getName();
- PackageVersions versions = loadApplicationVersions();
- versions.putVersion(packageName, packageDetails.getVersion());
- }
-
private void deleteBackupOfOriginalFile(File backupOfOriginalFile) {
try {
FileUtils.purge(backupOfOriginalFile, true);
@@ -754,29 +735,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return getResourceContext().getParentResourceComponent();
}
- private PackageVersions loadApplicationVersions() {
- if (versions == null) {
- ResourceType resourceType = getResourceContext().getResourceType();
- String pluginName = resourceType.getPlugin();
-
- File dataDirectoryFile = getResourceContext().getDataDirectory();
-
- if (!dataDirectoryFile.exists()) {
- dataDirectoryFile.mkdir();
- }
-
- String dataDirectory = dataDirectoryFile.getAbsolutePath();
-
- log.debug("Creating application versions store with plugin name [" + pluginName + "] and data directory ["
- + dataDirectory + "]");
-
- versions = new PackageVersions(pluginName, dataDirectory);
- versions.loadFromDisk();
- }
-
- return versions;
- }
-
public void deleteResource() throws Exception {
Configuration pluginConfiguration = getResourceContext().getPluginConfiguration();
String fileName = pluginConfiguration.getSimple(PROPERTY_FILENAME).getStringValue();
commit e26290fcca0a788e479ad49f0f6b66706949f565
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:02:18 2010 -0400
Just added a digest generation test
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java b/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
index c4b5a3b..d1511de 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
@@ -38,11 +38,14 @@ public class MD5GeneratorTest {
String md5 = MessageDigestGenerator.getDigestString("calculate MD5 of this String!\n");
assert md5.equals("ac98d9c00ea0d821cd757b0f3c628c99") : "Invalid MD5 was " + md5;
+ md5 = new MessageDigestGenerator(MessageDigestGenerator.MD5)
+ .calcDigestString("calculate MD5 of this String!\n");
+ assert md5.equals("ac98d9c00ea0d821cd757b0f3c628c99") : "Invalid MD5 was " + md5;
+
String sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
.calcDigestString("calculate SHA256 of this String!");
assert sha256.equals("10ee77d3c1ccf45c15c360ecc4f8847136d64b594b0eedc4dd2e67bde4ec8100") : "Invalid SHA256 was "
+ sha256;
-
}
public void testEmpty() {
commit ee1e13ee966dceccb65149da80c99bd90aaee15b
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:04:49 2010 -0400
Change default package version in the GUI to be "0" as opposed to "1.0".
This is in line with the latest package versioning scheme which uses "0"
for discovered packages that can't be assigned any other version string.
"0" is easier to distinguish as a default, "1.0" lactually looks like it
may be a real, discovered, version.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
index c364459..645ebe7 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
@@ -79,7 +79,7 @@ public class CreateNewPackageChildResourceUIBean {
// private static final String OUTCOME_SUCCESS = "success";
private static final String OUTCOME_CANCEL = "cancel";
- private static final String DEFAULT_VERSION = "1.0";
+ private static final String DEFAULT_VERSION = "0";
// Attributes --------------------------------------------
commit e1f5ea69b2eb7ba8f03ddfc0042c9de1228d031f
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:05:30 2010 -0400
remove duplicate classes. these look to have been copied into new package
structure and then never removed.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/FileContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/FileContentDelegate.java
deleted file mode 100644
index 095f7de..0000000
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/FileContentDelegate.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Jopr Management Platform
- * Copyright (C) 2005-2008 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.plugins.jbossas5;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.rhq.core.domain.content.PackageDetails;
-import org.rhq.core.domain.content.PackageDetailsKey;
-import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
-import org.rhq.core.pluginapi.util.FileUtils;
-import org.rhq.core.util.ZipUtil;
-import org.rhq.core.util.file.FileUtil;
-
-/**
-* Delegate class used for manipulating artifacts in a JON plugin.
-*
-* @author Greg Hinkle
-* @author Jason Dobies
-*/
-public class FileContentDelegate {
- // Attributes --------------------------------------------
-
- private final Log log = LogFactory.getLog(FileContentDelegate.class);
-
- protected File directory;
-
- private final String fileEnding;
- private final String packageTypeName;
-
- // Constructors --------------------------------------------
-
- public FileContentDelegate(File directory, String fileEnding, String packageTypeName) {
- this.directory = directory;
- this.fileEnding = fileEnding;
- this.packageTypeName = packageTypeName;
- }
-
- // Public --------------------------------------------
-
- public String getFileEnding() {
- return fileEnding;
- }
-
- public String getPackageTypeName() {
- return packageTypeName;
- }
-
- public File getDirectory() {
- return directory;
- }
-
- /**
- * Creates a new package described by the specified details. The destination of the content in the provided input
- * stream will be determined by the package name.
- *
- * @param details describes the package being created
- * @param content content to be written for the package. NOTE this Stream will be closed by this method.
- * @param unzip if <code>true</code>, the content stream will be treated like a ZIP file and be unzipped as
- * it is written, using the package name as the base directory; if <code>false</code> the
- * @param createBackup If <code>true</code>, the original file will be backed up to file.bak
- */
- public void createContent(PackageDetails details, InputStream content, boolean unzip, boolean createBackup) {
- File contentFile = getPath(details);
- try {
- if (createBackup) {
- moveToBackup(contentFile, ".bak");
- }
- if (unzip) {
- ZipUtil.unzipFile(content, contentFile);
- } else {
- FileUtil.writeFile(content, contentFile);
- }
- details.setFileName(contentFile.getPath());
- } catch (IOException e) {
- throw new RuntimeException("Error creating artifact from details: " + contentFile, e);
- }
- }
-
- /**
- * Try to move the passed contentFile to a backup named contentFile + suffix
- * @param contentFile File object pointing to the original file
- * @param suffix the suffix to tack on
- */
- private void moveToBackup(File contentFile, String suffix) {
-
- File backupFile = new File(contentFile.getAbsolutePath() + suffix);
- if (backupFile.exists()) {
- // remove
- if (!backupFile.delete())
- log.warn("Removing of old backup file " + backupFile + " failed ");
- }
- if (!contentFile.renameTo(backupFile)) {
- log.warn("Moving " + contentFile + " to backup " + backupFile + " failed");
- }
- }
-
- public File getPath(PackageDetails details) {
- /* JBNADM-2022 - It still needs to be determined if it is the responsibility of the plugin container or the
- * plugin to be concerned with path information in the package name. For now, it's the plugin's
- * responsibility. We strip out the path information to keep control of where the JARs are
- * deployed to. Note: when we add support for more package types, we'll need to refactor this
- * out on a package type basis.
- *
- * jdobies, Sep 20, 2007
- */
- PackageDetailsKey key = details.getKey();
- String fileName = key.getName();
- int lastPathStart = fileName.lastIndexOf(File.separatorChar);
- if (lastPathStart > -1) {
- fileName = fileName.substring(lastPathStart + 1);
- }
-
- if (!fileName.endsWith(fileEnding)) {
- fileName = fileName + fileEnding;
- }
- return new File(this.directory, fileName);
- }
-
- /**
- * Returns a stream from which the content of the specified package can be read.
- *
- * @param details package being loaded
- *
- * @return buffered input stream containing the contents of the package; will not be <code>null</code>, an
- * exception is thrown if the content cannot be loaded
- */
- public InputStream getContent(PackageDetails details) {
- File contentFile = getPath(details);
- try {
- return new BufferedInputStream(new FileInputStream(contentFile));
- } catch (FileNotFoundException e) {
- throw new RuntimeException("Package content not found for package " + contentFile, e);
- }
- }
-
- /**
- * Deletes the underlying file for the specified package.
- *
- * @param details package to delete
- */
- public void deleteContent(PackageDetails details) {
- File contentFile = getPath(details);
- if (!contentFile.exists())
- return;
-
- try {
- FileUtils.purge(contentFile, true);
- } catch (IOException e) {
- throw new RuntimeException("Failed to delete underlying file [" + contentFile + "] for " + details + ".", e);
- }
- }
-
- public Set<ResourcePackageDetails> discoverDeployedPackages() {
- /*
- * This is a stub implementation, you need to implement a
- * discovery for artifacts of your particular content type
- */
- return null;
- }
-}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
deleted file mode 100644
index 47bad08..0000000
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Jopr Management Platform
- * Copyright (C) 2005-2008 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.plugins.jbossas5;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-
-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.util.MessageDigestGenerator;
-
-/**
- * Discovers Jar files as artifacts including loading their manifest version into the artifact config.
- *
- * @author Greg Hinkle
- */
-public class JarContentDelegate extends FileContentDelegate {
- public static final String MIME_TYPE_JAR = "application/java-archive";
-
- public JarContentDelegate(File directory, String typeName) {
- super(directory, ".jar", typeName);
- }
-
- /*
- * public InputStream getContent(ArtifactDetails artifactDetails) { File contentFile = new File(this.directory,
- * artifactDetails.getArtifactKey()); try { return new BufferedInputStream(new
- * FileInputStream(contentFile)); } catch (FileNotFoundException e) { throw new
- * RuntimeException("Artifact content not found for artifact " + artifactDetails, e); } }
- *
- */
- /*
- * public void deleteContent(ArtifactDetails artifactDetails) { File contentFile = new File(this.directory,
- * artifactDetails.getArtifactKey());
- *
- * if (!contentFile.exists()) return;
- *
- * // If the artifact is a directory, its contents need to be deleted first if (contentFile.isDirectory()) {
- * TomcatFileUtils.deleteDirectoryContents(contentFile.listFiles()); }
- *
- * boolean deleteResult = contentFile.delete();
- *
- * if (deleteResult==false) { throw new RuntimeException("Artifact content not succesfully deleted: " +
- * artifactDetails); }
- *
- * }
- */
-
- @Override
- public Set<ResourcePackageDetails> discoverDeployedPackages() {
- Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>();
-
- File[] files = this.directory.listFiles(new FileFilter() {
- public boolean accept(File pathname) {
- return pathname.getName().endsWith(getFileEnding()) && pathname.isFile();
- }
- });
-
- for (File file : files) {
- String manifestVersion = null;
- JarFile jf = null;
- try {
- Configuration config = new Configuration();
- jf = new JarFile(file);
-
- Manifest manifest = jf.getManifest();
-
- if (manifest != null) {
- Attributes attributes = manifest.getMainAttributes();
-
- manifestVersion = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
-
- config.put(new PropertySimple("version", manifestVersion));
- config.put(new PropertySimple("title", attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE)));
- config.put(new PropertySimple("url", attributes.getValue(Attributes.Name.IMPLEMENTATION_URL)));
- config
- .put(new PropertySimple("vendor", attributes.getValue(Attributes.Name.IMPLEMENTATION_VENDOR)));
-
- config.put(new PropertySimple("classpath", attributes.getValue(Attributes.Name.CLASS_PATH)));
- config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
- }
-
- String sha256 = null;
- try {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
- } catch (Exception e) {
- // leave as null
- }
- String version = getVersion(manifestVersion, sha256);
- ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
- version, getPackageTypeName(), "noarch"));
-
- packages.add(details);
- details.setFileCreatedDate(file.lastModified()); // Why don't we have a last modified time?
- details.setFileName(file.getName());
- details.setFileSize(file.length());
- details.setClassification(MIME_TYPE_JAR);
- details.setSHA256(sha256);
-
- details.setExtraProperties(config);
- } catch (IOException e) {
- // If we can't open it, don't worry about it, we just won't know the version
- } finally {
- try {
- if (jf != null)
- jf.close();
- } catch (Exception e) {
- // Nothing we can do here ...
- }
- }
- }
-
- return packages;
- }
-
- private String getVersion(String manifestVersion, String sha256) {
- // Version string in order of preference
- // manifestVersion + sha256, sha256, manifestVersion, "0"
- String version = "0";
-
- if ((null != manifestVersion) && (null != sha256)) {
- // this protects against the occasional differing binaries with poor manifest maintenance
- version = manifestVersion + " [sha256=" + sha256 + "]";
- } else if (null != sha256) {
- version = "[sha256=" + sha256 + "]";
- } else if (null != manifestVersion) {
- version = manifestVersion;
- }
-
- return version;
- }
-
-}
commit 596db721bb2bbd073721ee911426941edd342d9d
Merge: c3e2373... 296dfea...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:07:01 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit c3e23733c30347dc98a298a5c67c7378e207f06b
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:05:30 2010 -0400
remove duplicate classes. these look to have been copied into new package
structure and then never removed.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/FileContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/FileContentDelegate.java
deleted file mode 100644
index 095f7de..0000000
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/FileContentDelegate.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Jopr Management Platform
- * Copyright (C) 2005-2008 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.plugins.jbossas5;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.rhq.core.domain.content.PackageDetails;
-import org.rhq.core.domain.content.PackageDetailsKey;
-import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
-import org.rhq.core.pluginapi.util.FileUtils;
-import org.rhq.core.util.ZipUtil;
-import org.rhq.core.util.file.FileUtil;
-
-/**
-* Delegate class used for manipulating artifacts in a JON plugin.
-*
-* @author Greg Hinkle
-* @author Jason Dobies
-*/
-public class FileContentDelegate {
- // Attributes --------------------------------------------
-
- private final Log log = LogFactory.getLog(FileContentDelegate.class);
-
- protected File directory;
-
- private final String fileEnding;
- private final String packageTypeName;
-
- // Constructors --------------------------------------------
-
- public FileContentDelegate(File directory, String fileEnding, String packageTypeName) {
- this.directory = directory;
- this.fileEnding = fileEnding;
- this.packageTypeName = packageTypeName;
- }
-
- // Public --------------------------------------------
-
- public String getFileEnding() {
- return fileEnding;
- }
-
- public String getPackageTypeName() {
- return packageTypeName;
- }
-
- public File getDirectory() {
- return directory;
- }
-
- /**
- * Creates a new package described by the specified details. The destination of the content in the provided input
- * stream will be determined by the package name.
- *
- * @param details describes the package being created
- * @param content content to be written for the package. NOTE this Stream will be closed by this method.
- * @param unzip if <code>true</code>, the content stream will be treated like a ZIP file and be unzipped as
- * it is written, using the package name as the base directory; if <code>false</code> the
- * @param createBackup If <code>true</code>, the original file will be backed up to file.bak
- */
- public void createContent(PackageDetails details, InputStream content, boolean unzip, boolean createBackup) {
- File contentFile = getPath(details);
- try {
- if (createBackup) {
- moveToBackup(contentFile, ".bak");
- }
- if (unzip) {
- ZipUtil.unzipFile(content, contentFile);
- } else {
- FileUtil.writeFile(content, contentFile);
- }
- details.setFileName(contentFile.getPath());
- } catch (IOException e) {
- throw new RuntimeException("Error creating artifact from details: " + contentFile, e);
- }
- }
-
- /**
- * Try to move the passed contentFile to a backup named contentFile + suffix
- * @param contentFile File object pointing to the original file
- * @param suffix the suffix to tack on
- */
- private void moveToBackup(File contentFile, String suffix) {
-
- File backupFile = new File(contentFile.getAbsolutePath() + suffix);
- if (backupFile.exists()) {
- // remove
- if (!backupFile.delete())
- log.warn("Removing of old backup file " + backupFile + " failed ");
- }
- if (!contentFile.renameTo(backupFile)) {
- log.warn("Moving " + contentFile + " to backup " + backupFile + " failed");
- }
- }
-
- public File getPath(PackageDetails details) {
- /* JBNADM-2022 - It still needs to be determined if it is the responsibility of the plugin container or the
- * plugin to be concerned with path information in the package name. For now, it's the plugin's
- * responsibility. We strip out the path information to keep control of where the JARs are
- * deployed to. Note: when we add support for more package types, we'll need to refactor this
- * out on a package type basis.
- *
- * jdobies, Sep 20, 2007
- */
- PackageDetailsKey key = details.getKey();
- String fileName = key.getName();
- int lastPathStart = fileName.lastIndexOf(File.separatorChar);
- if (lastPathStart > -1) {
- fileName = fileName.substring(lastPathStart + 1);
- }
-
- if (!fileName.endsWith(fileEnding)) {
- fileName = fileName + fileEnding;
- }
- return new File(this.directory, fileName);
- }
-
- /**
- * Returns a stream from which the content of the specified package can be read.
- *
- * @param details package being loaded
- *
- * @return buffered input stream containing the contents of the package; will not be <code>null</code>, an
- * exception is thrown if the content cannot be loaded
- */
- public InputStream getContent(PackageDetails details) {
- File contentFile = getPath(details);
- try {
- return new BufferedInputStream(new FileInputStream(contentFile));
- } catch (FileNotFoundException e) {
- throw new RuntimeException("Package content not found for package " + contentFile, e);
- }
- }
-
- /**
- * Deletes the underlying file for the specified package.
- *
- * @param details package to delete
- */
- public void deleteContent(PackageDetails details) {
- File contentFile = getPath(details);
- if (!contentFile.exists())
- return;
-
- try {
- FileUtils.purge(contentFile, true);
- } catch (IOException e) {
- throw new RuntimeException("Failed to delete underlying file [" + contentFile + "] for " + details + ".", e);
- }
- }
-
- public Set<ResourcePackageDetails> discoverDeployedPackages() {
- /*
- * This is a stub implementation, you need to implement a
- * discovery for artifacts of your particular content type
- */
- return null;
- }
-}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
deleted file mode 100644
index 47bad08..0000000
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Jopr Management Platform
- * Copyright (C) 2005-2008 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.plugins.jbossas5;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-
-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.util.MessageDigestGenerator;
-
-/**
- * Discovers Jar files as artifacts including loading their manifest version into the artifact config.
- *
- * @author Greg Hinkle
- */
-public class JarContentDelegate extends FileContentDelegate {
- public static final String MIME_TYPE_JAR = "application/java-archive";
-
- public JarContentDelegate(File directory, String typeName) {
- super(directory, ".jar", typeName);
- }
-
- /*
- * public InputStream getContent(ArtifactDetails artifactDetails) { File contentFile = new File(this.directory,
- * artifactDetails.getArtifactKey()); try { return new BufferedInputStream(new
- * FileInputStream(contentFile)); } catch (FileNotFoundException e) { throw new
- * RuntimeException("Artifact content not found for artifact " + artifactDetails, e); } }
- *
- */
- /*
- * public void deleteContent(ArtifactDetails artifactDetails) { File contentFile = new File(this.directory,
- * artifactDetails.getArtifactKey());
- *
- * if (!contentFile.exists()) return;
- *
- * // If the artifact is a directory, its contents need to be deleted first if (contentFile.isDirectory()) {
- * TomcatFileUtils.deleteDirectoryContents(contentFile.listFiles()); }
- *
- * boolean deleteResult = contentFile.delete();
- *
- * if (deleteResult==false) { throw new RuntimeException("Artifact content not succesfully deleted: " +
- * artifactDetails); }
- *
- * }
- */
-
- @Override
- public Set<ResourcePackageDetails> discoverDeployedPackages() {
- Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>();
-
- File[] files = this.directory.listFiles(new FileFilter() {
- public boolean accept(File pathname) {
- return pathname.getName().endsWith(getFileEnding()) && pathname.isFile();
- }
- });
-
- for (File file : files) {
- String manifestVersion = null;
- JarFile jf = null;
- try {
- Configuration config = new Configuration();
- jf = new JarFile(file);
-
- Manifest manifest = jf.getManifest();
-
- if (manifest != null) {
- Attributes attributes = manifest.getMainAttributes();
-
- manifestVersion = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
-
- config.put(new PropertySimple("version", manifestVersion));
- config.put(new PropertySimple("title", attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE)));
- config.put(new PropertySimple("url", attributes.getValue(Attributes.Name.IMPLEMENTATION_URL)));
- config
- .put(new PropertySimple("vendor", attributes.getValue(Attributes.Name.IMPLEMENTATION_VENDOR)));
-
- config.put(new PropertySimple("classpath", attributes.getValue(Attributes.Name.CLASS_PATH)));
- config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
- }
-
- String sha256 = null;
- try {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
- } catch (Exception e) {
- // leave as null
- }
- String version = getVersion(manifestVersion, sha256);
- ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
- version, getPackageTypeName(), "noarch"));
-
- packages.add(details);
- details.setFileCreatedDate(file.lastModified()); // Why don't we have a last modified time?
- details.setFileName(file.getName());
- details.setFileSize(file.length());
- details.setClassification(MIME_TYPE_JAR);
- details.setSHA256(sha256);
-
- details.setExtraProperties(config);
- } catch (IOException e) {
- // If we can't open it, don't worry about it, we just won't know the version
- } finally {
- try {
- if (jf != null)
- jf.close();
- } catch (Exception e) {
- // Nothing we can do here ...
- }
- }
- }
-
- return packages;
- }
-
- private String getVersion(String manifestVersion, String sha256) {
- // Version string in order of preference
- // manifestVersion + sha256, sha256, manifestVersion, "0"
- String version = "0";
-
- if ((null != manifestVersion) && (null != sha256)) {
- // this protects against the occasional differing binaries with poor manifest maintenance
- version = manifestVersion + " [sha256=" + sha256 + "]";
- } else if (null != sha256) {
- version = "[sha256=" + sha256 + "]";
- } else if (null != manifestVersion) {
- version = manifestVersion;
- }
-
- return version;
- }
-
-}
commit 944a01de0f47d9ee4adb1b333f5c23dbbe41e2af
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:04:49 2010 -0400
Change default package version in the GUI to be "0" as opposed to "1.0".
This is in line with the latest package versioning scheme which uses "0"
for discovered packages that can't be assigned any other version string.
"0" is easier to distinguish as a default, "1.0" lactually looks like it
may be a real, discovered, version.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
index c364459..645ebe7 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
@@ -79,7 +79,7 @@ public class CreateNewPackageChildResourceUIBean {
// private static final String OUTCOME_SUCCESS = "success";
private static final String OUTCOME_CANCEL = "cancel";
- private static final String DEFAULT_VERSION = "1.0";
+ private static final String DEFAULT_VERSION = "0";
// Attributes --------------------------------------------
commit 04c3fa3ca1e86249291131192b40f70037b9abb0
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:02:18 2010 -0400
Just added a digest generation test
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java b/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
index c4b5a3b..d1511de 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
@@ -38,11 +38,14 @@ public class MD5GeneratorTest {
String md5 = MessageDigestGenerator.getDigestString("calculate MD5 of this String!\n");
assert md5.equals("ac98d9c00ea0d821cd757b0f3c628c99") : "Invalid MD5 was " + md5;
+ md5 = new MessageDigestGenerator(MessageDigestGenerator.MD5)
+ .calcDigestString("calculate MD5 of this String!\n");
+ assert md5.equals("ac98d9c00ea0d821cd757b0f3c628c99") : "Invalid MD5 was " + md5;
+
String sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
.calcDigestString("calculate SHA256 of this String!");
assert sha256.equals("10ee77d3c1ccf45c15c360ecc4f8847136d64b594b0eedc4dd2e67bde4ec8100") : "Invalid SHA256 was "
+ sha256;
-
}
public void testEmpty() {
commit 360c016fddd9a1a983eea9db7c15dbe33a471aa9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 15:00:43 2010 -0400
Remove from the AS/AS5/Tomcat plugins the approach of a file-based cache
mapping filename-to-version for packages. This is one, unnecessary and
two, doesn't work as you can't guarantee version based on filename at plugin
granularity. This should solve [BZ 602538] but goes further to clean up all
three plugins using the bad approach.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
index 1a2655f..9336c25 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
@@ -54,10 +54,8 @@ import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
-import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
-import org.rhq.core.pluginapi.content.version.PackageVersions;
import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
import org.rhq.core.util.MessageDigestGenerator;
@@ -92,8 +90,6 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
private final Log log = LogFactory.getLog(this.getClass());
- private PackageVersions versions;
-
// ------------ MeasurementFacet Implementation ------------
@Override
@@ -138,20 +134,9 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
+ getResourceDescription() + " does not exist.");
String fileName = this.deploymentFile.getName();
- PackageVersions packageVersions = loadPackageVersions();
- String version = packageVersions.getVersion(fileName);
-
JarContentFileInfo fileInfo = new JarContentFileInfo(this.deploymentFile);
String sha256 = getSHA256(fileInfo);
-
- // First discovery of this EAR/WAR
- if (version == null) {
- // try to use version from manifest. if not there use the sha256. if that fails default to "0".
- version = getVersion(fileInfo, sha256);
- versions.putVersion(fileName, version);
- versions.saveToDisk();
- }
-
+ String version = getVersion(fileInfo, sha256);
// Package name is the deployment's file name (e.g. foo.ear).
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails packageDetails = new ResourcePackageDetails(key);
@@ -324,7 +309,6 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
// Deploy was successful!
deleteBackupOfOriginalFile(backupOfOriginalFile);
- persistApplicationVersion(packageDetails, this.deploymentFile);
DeployPackagesResponse response = new DeployPackagesResponse(ContentResponseResult.SUCCESS);
DeployIndividualPackageResponse packageResponse = new DeployIndividualPackageResponse(packageDetails.getKey(),
@@ -390,14 +374,6 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
return response;
}
- private void persistApplicationVersion(ResourcePackageDetails packageDetails, File appFile) {
- String packageName = appFile.getName();
- log.debug("Persisting application version '" + packageDetails.getVersion() + "' for package '" + packageName
- + "'");
- PackageVersions versions = loadPackageVersions();
- versions.putVersion(packageName, packageDetails.getVersion());
- }
-
private void deleteBackupOfOriginalFile(File backupOfOriginalFile) {
log.debug("Deleting backup of original file '" + backupOfOriginalFile + "'...");
try {
@@ -437,25 +413,4 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
}
return tempFile;
}
-
- /**
- * Returns an instantiated and loaded versions store access point.
- *
- * @return will not be <code>null</code>
- */
- private PackageVersions loadPackageVersions() {
- if (this.versions == null) {
- ResourceType resourceType = getResourceContext().getResourceType();
- String pluginName = resourceType.getPlugin();
- File dataDirectoryFile = getResourceContext().getDataDirectory();
- dataDirectoryFile.mkdirs();
- String dataDirectory = dataDirectoryFile.getAbsolutePath();
- log.trace("Creating application versions store with plugin name [" + pluginName + "] and data directory ["
- + dataDirectory + "]");
- this.versions = new PackageVersions(pluginName, dataDirectory);
- this.versions.loadFromDisk();
- }
-
- return this.versions;
- }
}
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
index e923682..0bde101 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
@@ -46,10 +46,8 @@ import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
-import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
-import org.rhq.core.pluginapi.content.version.PackageVersions;
import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.operation.OperationFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
@@ -91,11 +89,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
private final Log log = LogFactory.getLog(this.getClass());
- /**
- * Entry point to the persisted store of EAR/WAR package versions.
- */
- private PackageVersions versions;
-
// ContentFacet Implementation --------------------------------------------
public InputStream retrievePackageBits(ResourcePackageDetails packageDetails) {
@@ -135,20 +128,9 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
// Package name and file name of the application are the same
String fileName = new File(fullFileName).getName();
- PackageVersions versions = loadApplicationVersions();
- String version = versions.getVersion(fileName);
-
JarContentFileInfo fileInfo = new JarContentFileInfo(file);
String sha256 = getSHA256(fileInfo);
-
- // First discovery of this EAR/WAR
- if (version == null) {
- // try to use version from manifest. if not there use the sha256. if that fails default to "0".
- version = getVersion(fileInfo, sha256);
- versions.putVersion(fileName, version);
- versions.saveToDisk();
- }
-
+ String version = getVersion(fileInfo, sha256);
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
details.setFileName(fileName);
@@ -276,7 +258,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
// Deploy was successful!
deleteBackupOfOriginalFile(backupOfOriginalFile);
- persistApplicationVersion(packageDetails, appFile);
DeployPackagesResponse response = new DeployPackagesResponse(ContentResponseResult.SUCCESS);
DeployIndividualPackageResponse packageResponse = new DeployIndividualPackageResponse(packageDetails.getKey(),
@@ -436,36 +417,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
}
- // Private --------------------------------------------
-
- /**
- * Returns an instantiated and loaded versions store access point.
- *
- * @return will not be <code>null</code>
- */
- private PackageVersions loadApplicationVersions() {
- if (versions == null) {
- ResourceType resourceType = getResourceContext().getResourceType();
- String pluginName = resourceType.getPlugin();
-
- File dataDirectoryFile = getResourceContext().getDataDirectory();
-
- if (!dataDirectoryFile.exists()) {
- dataDirectoryFile.mkdir();
- }
-
- String dataDirectory = dataDirectoryFile.getAbsolutePath();
-
- log.debug("Creating application versions store with plugin name [" + pluginName + "] and data directory ["
- + dataDirectory + "]");
-
- versions = new PackageVersions(pluginName, dataDirectory);
- versions.loadFromDisk();
- }
-
- return versions;
- }
-
/**
* Creates the necessary transfer objects to report a failed application deployment (update).
*
@@ -486,12 +437,6 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
return response;
}
- private void persistApplicationVersion(ResourcePackageDetails packageDetails, File appFile) {
- String packageName = appFile.getName();
- PackageVersions versions = loadApplicationVersions();
- versions.putVersion(packageName, packageDetails.getVersion());
- }
-
private void deleteBackupOfOriginalFile(File backupOfOriginalFile) {
try {
FileUtils.purge(backupOfOriginalFile, true);
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index b3f0b98..9ecc0d7 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -60,11 +60,9 @@ import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
import org.rhq.core.domain.measurement.calltime.CallTimeData;
-import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.pluginapi.configuration.ConfigurationUpdateReport;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
-import org.rhq.core.pluginapi.content.version.PackageVersions;
import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.core.pluginapi.operation.OperationResult;
@@ -135,8 +133,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
* Architecture string used in describing discovered packages.
*/
private static final String ARCHITECTURE = "noarch";
- private PackageVersions versions;
-
private EmsBean webModuleMBean;
private ResponseTimeLogParser logParser;
@@ -531,7 +527,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
// Deploy was successful!
deleteBackupOfOriginalFile(backupFile);
- persistApplicationVersion(packageDetails, appFile);
DeployPackagesResponse response = new DeployPackagesResponse(ContentResponseResult.SUCCESS);
DeployIndividualPackageResponse packageResponse = new DeployIndividualPackageResponse(packageDetails.getKey(),
@@ -626,18 +621,9 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
if (file.exists()) {
// Package name and file name of the application are the same
String fileName = new File(fullFileName).getName();
-
- PackageVersions versions = loadApplicationVersions();
- String version = versions.getVersion(fileName);
String sha256 = getSHA256(file);
-
- // First discovery of this WAR
- if (null == version) {
- JarContentFileInfo info = new JarContentFileInfo(file);
- version = getVersion(info, sha256);
- versions.putVersion(fileName, version);
- versions.saveToDisk();
- }
+ JarContentFileInfo info = new JarContentFileInfo(file);
+ String version = getVersion(info, sha256);
PackageDetailsKey key = new PackageDetailsKey(fileName, version, PKG_TYPE_FILE, ARCHITECTURE);
ResourcePackageDetails details = new ResourcePackageDetails(key);
@@ -646,6 +632,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
if (!file.isDirectory())
details.setFileSize(file.length());
details.setFileCreatedDate(null); // TODO: get created date via SIGAR
+ details.setInstallationTimestamp(System.currentTimeMillis()); // TODO: anything better than discovery time
details.setSHA256(sha256);
packages.add(details);
@@ -735,12 +722,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return response;
}
- private void persistApplicationVersion(ResourcePackageDetails packageDetails, File appFile) {
- String packageName = appFile.getName();
- PackageVersions versions = loadApplicationVersions();
- versions.putVersion(packageName, packageDetails.getVersion());
- }
-
private void deleteBackupOfOriginalFile(File backupOfOriginalFile) {
try {
FileUtils.purge(backupOfOriginalFile, true);
@@ -754,29 +735,6 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return getResourceContext().getParentResourceComponent();
}
- private PackageVersions loadApplicationVersions() {
- if (versions == null) {
- ResourceType resourceType = getResourceContext().getResourceType();
- String pluginName = resourceType.getPlugin();
-
- File dataDirectoryFile = getResourceContext().getDataDirectory();
-
- if (!dataDirectoryFile.exists()) {
- dataDirectoryFile.mkdir();
- }
-
- String dataDirectory = dataDirectoryFile.getAbsolutePath();
-
- log.debug("Creating application versions store with plugin name [" + pluginName + "] and data directory ["
- + dataDirectory + "]");
-
- versions = new PackageVersions(pluginName, dataDirectory);
- versions.loadFromDisk();
- }
-
- return versions;
- }
-
public void deleteResource() throws Exception {
Configuration pluginConfiguration = getResourceContext().getPluginConfiguration();
String fileName = pluginConfiguration.getSimple(PROPERTY_FILENAME).getStringValue();
commit 257ac0e19eb057b7040428270cdf8690785aca12
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Mon Jun 14 14:53:25 2010 -0400
Declare Tomcat User Database a singleton resource type
Declare WebApp Cache a singleton resource type
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 010de71..b0d9364 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
@@ -570,7 +570,8 @@
name="Tomcat Cache"
discovery="TomcatCacheDiscoveryComponent"
class="TomcatCacheComponent"
- description="A Tomcat Application (WAR) Cache">
+ description="A Tomcat Application (WAR) Cache"
+ singleton="true">
<plugin-configuration>
<c:group name="General">
@@ -953,7 +954,8 @@
name="Tomcat User Database"
discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
class="TomcatUserDatabaseComponent"
- description="Tomcat User Database">
+ description="Tomcat User Database"
+ singleton="true">
<plugin-configuration>
<c:group name="General">
commit 296dfea6fd9e43000e81e8742fd6fba344ef5bc1
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 11:49:34 2010 -0400
further work on release.sh
(cherry picked from commit 26c8541cb9e429b8da6b58088502f2acc60c0280)
(cherry picked from commit aa3721e17493e727a126564c12ba0924153eef61)
diff --git a/release.sh b/release.sh
index dabd332..186fe1b 100755
--- a/release.sh
+++ b/release.sh
@@ -4,9 +4,10 @@
PROJECT_NAME="rhq"
PROJECT_DISPLAY_NAME="RHQ"
-PROJECT_SVN_URL="http://svn.rhq-project.org/repos/rhq"
+PROJECT_GIT_URL="ssh://git.fedorahosted.org/git/rhq/rhq.git"
+PROJECT_GIT_WEB_URL="http://git.fedorahosted.org/git/?p=rhq/rhq.git"
TAG_PREFIX="RHQ"
-MINIMUM_MAVEN_VERSION="2.0.10"
+MINIMUM_MAVEN_VERSION="2.1.0"
# Functions
@@ -21,24 +22,29 @@ abort()
}
usage()
-{
- EXE=`basename $0`
- abort "Usage: $EXE RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.Beta1 3.0.0-SNAPSHOT"
+{
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.GA 3.0.0-SNAPSHOT"
}
# Process command line args.
-if [ "$#" -ne 2 ]; then
+EXE=`basename $0`
+if [ "$#" -ne 3 ]; then
usage
fi
-RELEASE_VERSION="$1"
+RELEASE_TYPE="$1"
+if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; then
+ usage "Invalid release type: $RELEASE_TYPE"
+fi
+RELEASE_VERSION="$2"
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
-DEVELOPMENT_VERSION="$2"
+DEVELOPMENT_VERSION="$3"
BRANCH="master"
RELEASE_BRANCH="release-$RELEASE_VERSION"
+
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
if [ -z "$JAVA_HOME" ]; then
@@ -111,33 +117,13 @@ if ! which mvn >/dev/null 2>&1; then
fi
-# Make sure GIT_HOME points to a valid git install.
-
-#if [ -z "$GIT_HOME" ]; then
-# abort "GIT_HOME environment variable is not set." >&2
-#fi
-
-#if [ ! -d "$GIT_HOME" ]; then
-# abort "GIT_HOME ($GIT_HOME) does not exist or is not a directory."
-#fi
-
-#echo "Prepending $GIT_HOME/bin to PATH..."
-#PATH="$GIT_HOME/bin:$PATH"
+# Make sure git is in the PATH.
if ! which git >/dev/null 2>&1; then
- #abort "git not found in PATH ($PATH) - GIT_HOME must point to a git install dir."
abort "git not found in PATH ($PATH)."
fi
-#echo "Prepending $GIT_HOME/lib to LD_LIBRARY_PATH..."
-#LD_LIBRARY_PATH="$GIT_HOME/lib:$LD_LIBRARY_PATH"
-#export LD_LIBRARY_PATH
-
-
-# Set additional required env vars.
-
-LANG=en_US.iso88591
-export LANG
+# TODO: Check for a minimum git version?
# Set various local variables.
@@ -152,49 +138,46 @@ cd "$WORK_DIR"
MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
-MAVEN_ARGS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise,dist,release"
+MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_OPTS="$MAVEN_OPTS -Dexclude-webdav"
+ MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav"
+fi
+if [ -z "$RHQ_RELEASE_QUIET" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS --debug"
fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
-# Print out summary of environment.
+# Print out a summary of the environment.
echo
-echo "========================= Environment Variables =============================="
+echo "========================== Environment Variables =============================="
echo "JAVA_HOME=$JAVA_HOME"
+echo "JAVA5_HOME=$JAVA5_HOME"
echo "M2_HOME=$M2_HOME"
echo "MAVEN_OPTS=$MAVEN_OPTS"
-#echo "GIT_HOME=$GIT_HOME"
echo "PATH=$PATH"
-echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
-echo "LANG=$LANG"
-echo "============================ Local Variables ================================="
+echo "============================= Local Variables ================================="
echo "WORK_DIR=$WORK_DIR"
echo "PROJECT_NAME=$PROJECT_NAME"
echo "RELEASE_TYPE=$RELEASE_TYPE"
echo "RELEASE_VERSION=$RELEASE_VERSION"
echo "DEVELOPMENT_VERSION=$DEVELOPMENT_VERSION"
echo "RELEASE_BRANCH=$RELEASE_BRANCH"
-echo "RELEASE_BRANCH_SVN_URL=$RELEASE_BRANCH_SVN_URL"
-echo "RELEASE_BRANCH_CHECKOUT_DIR=$RELEASE_BRANCH_CHECKOUT_DIR"
echo "RELEASE_TAG=$RELEASE_TAG"
-echo "RELEASE_TAG_SVN_URL=$RELEASE_TAG_SVN_URL"
-echo "RELEASE_TAG_CHECKOUT_DIR=$RELEASE_TAG_CHECKOUT_DIR"
echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
echo "MAVEN_ARGS=$MAVEN_ARGS"
-echo "============================ Program Versions ================================"
-java -version
-echo
+echo "============================= Program Versions ================================"
git --version
echo
+java -version
+echo
mvn --version | head -1
-echo "=============================================================================="
+echo "==============================================================================="
echo
@@ -244,7 +227,9 @@ cat <<EOF >"${MAVEN_SETTINGS_FILE}"
</settings>
EOF
+
# Clone and/or checkout the source from git.
+
CLONE_DIR="$WORK_DIR/rhq"
if [ -d "$CLONE_DIR" ]; then
cd "$CLONE_DIR"
@@ -270,13 +255,15 @@ if [ ! -d "$CLONE_DIR" ]; then
fi
-# Create a branch for the release, so we don't have to mess with master.
-echo "Creating branch $RELEASE_BRANCH and checking it out..."
+# Create a branch for the release, so we don't have to make any changes to master.
+
+echo "Creating release branch $RELEASE_BRANCH and checking it out..."
git push origin master:$RELEASE_BRANCH
git checkout $RELEASE_BRANCH
-# Run a test build before tagging.
+# Run a test build before tagging. This will also publish the snapshot artifacts to the local repo to "bootstrap" the repo.
+
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
# TODO: Add -Djava5.home=$JAVA5_HOME/jre to the below mvn command line once the Java6 API usages have been removed from the Deployer class.
# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
@@ -291,11 +278,13 @@ echo "Test build succeeded!"
# Clean up the snapshot jars produced by the test build.
+
echo "Cleaning up snapshot jars produced by test build..."
mvn clean $MAVEN_ARGS
# Do a dry run of tagging the release.
+
echo "Doing a dry run of tagging the release..."
mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
EXIT_CODE=$?
@@ -308,8 +297,8 @@ echo "Tagging dry run succeeded!"
# If the dry run succeeded, tag it for real.
+
echo "Tagging the release..."
-cd "$RELEASE_BRANCH_CHECKOUT_DIR"
mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
EXIT_CODE=$?
mvn release:clean $MAVEN_ARGS
@@ -321,6 +310,7 @@ echo "Tagging succeeded!"
# Checkout the tag and build it.
+
echo "Checking out release tag $RELEASE_TAG..."
git checkout "$RELEASE_TAG"
echo "Building release from tag (this will take about 5-10 minutes)..."
@@ -332,9 +322,10 @@ echo
echo "Release build succeeded!"
-echo "=========================== Release Info ==============================="
+echo
+echo "=============================== Release Info =================================="
echo "Version: $RELEASE_VERSION"
-echo "Branch URL: $RELEASE_BRANCH_SVN_URL"
-echo "Tag URL: http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=shortlog;h=refs/heads/$R..."
-echo "========================================================================"
+echo "Branch URL: $PROJECT_GIT_WEB_URL;a=shortlog;h=refs/heads/$RELEASE_BRANCH"
+echo "Tag URL: $PROJECT_GIT_WEB_URL;a=shortlog;h=refs/tags/$RELEASE_TAG"
+echo "==============================================================================="
commit aa3721e17493e727a126564c12ba0924153eef61
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 11:49:34 2010 -0400
further work on release.sh
(cherry picked from commit 26c8541cb9e429b8da6b58088502f2acc60c0280)
diff --git a/release.sh b/release.sh
index dabd332..186fe1b 100755
--- a/release.sh
+++ b/release.sh
@@ -4,9 +4,10 @@
PROJECT_NAME="rhq"
PROJECT_DISPLAY_NAME="RHQ"
-PROJECT_SVN_URL="http://svn.rhq-project.org/repos/rhq"
+PROJECT_GIT_URL="ssh://git.fedorahosted.org/git/rhq/rhq.git"
+PROJECT_GIT_WEB_URL="http://git.fedorahosted.org/git/?p=rhq/rhq.git"
TAG_PREFIX="RHQ"
-MINIMUM_MAVEN_VERSION="2.0.10"
+MINIMUM_MAVEN_VERSION="2.1.0"
# Functions
@@ -21,24 +22,29 @@ abort()
}
usage()
-{
- EXE=`basename $0`
- abort "Usage: $EXE RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.Beta1 3.0.0-SNAPSHOT"
+{
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.GA 3.0.0-SNAPSHOT"
}
# Process command line args.
-if [ "$#" -ne 2 ]; then
+EXE=`basename $0`
+if [ "$#" -ne 3 ]; then
usage
fi
-RELEASE_VERSION="$1"
+RELEASE_TYPE="$1"
+if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; then
+ usage "Invalid release type: $RELEASE_TYPE"
+fi
+RELEASE_VERSION="$2"
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
-DEVELOPMENT_VERSION="$2"
+DEVELOPMENT_VERSION="$3"
BRANCH="master"
RELEASE_BRANCH="release-$RELEASE_VERSION"
+
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
if [ -z "$JAVA_HOME" ]; then
@@ -111,33 +117,13 @@ if ! which mvn >/dev/null 2>&1; then
fi
-# Make sure GIT_HOME points to a valid git install.
-
-#if [ -z "$GIT_HOME" ]; then
-# abort "GIT_HOME environment variable is not set." >&2
-#fi
-
-#if [ ! -d "$GIT_HOME" ]; then
-# abort "GIT_HOME ($GIT_HOME) does not exist or is not a directory."
-#fi
-
-#echo "Prepending $GIT_HOME/bin to PATH..."
-#PATH="$GIT_HOME/bin:$PATH"
+# Make sure git is in the PATH.
if ! which git >/dev/null 2>&1; then
- #abort "git not found in PATH ($PATH) - GIT_HOME must point to a git install dir."
abort "git not found in PATH ($PATH)."
fi
-#echo "Prepending $GIT_HOME/lib to LD_LIBRARY_PATH..."
-#LD_LIBRARY_PATH="$GIT_HOME/lib:$LD_LIBRARY_PATH"
-#export LD_LIBRARY_PATH
-
-
-# Set additional required env vars.
-
-LANG=en_US.iso88591
-export LANG
+# TODO: Check for a minimum git version?
# Set various local variables.
@@ -152,49 +138,46 @@ cd "$WORK_DIR"
MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
-MAVEN_ARGS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise,dist,release"
+MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_OPTS="$MAVEN_OPTS -Dexclude-webdav"
+ MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav"
+fi
+if [ -z "$RHQ_RELEASE_QUIET" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS --debug"
fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
-# Print out summary of environment.
+# Print out a summary of the environment.
echo
-echo "========================= Environment Variables =============================="
+echo "========================== Environment Variables =============================="
echo "JAVA_HOME=$JAVA_HOME"
+echo "JAVA5_HOME=$JAVA5_HOME"
echo "M2_HOME=$M2_HOME"
echo "MAVEN_OPTS=$MAVEN_OPTS"
-#echo "GIT_HOME=$GIT_HOME"
echo "PATH=$PATH"
-echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
-echo "LANG=$LANG"
-echo "============================ Local Variables ================================="
+echo "============================= Local Variables ================================="
echo "WORK_DIR=$WORK_DIR"
echo "PROJECT_NAME=$PROJECT_NAME"
echo "RELEASE_TYPE=$RELEASE_TYPE"
echo "RELEASE_VERSION=$RELEASE_VERSION"
echo "DEVELOPMENT_VERSION=$DEVELOPMENT_VERSION"
echo "RELEASE_BRANCH=$RELEASE_BRANCH"
-echo "RELEASE_BRANCH_SVN_URL=$RELEASE_BRANCH_SVN_URL"
-echo "RELEASE_BRANCH_CHECKOUT_DIR=$RELEASE_BRANCH_CHECKOUT_DIR"
echo "RELEASE_TAG=$RELEASE_TAG"
-echo "RELEASE_TAG_SVN_URL=$RELEASE_TAG_SVN_URL"
-echo "RELEASE_TAG_CHECKOUT_DIR=$RELEASE_TAG_CHECKOUT_DIR"
echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
echo "MAVEN_ARGS=$MAVEN_ARGS"
-echo "============================ Program Versions ================================"
-java -version
-echo
+echo "============================= Program Versions ================================"
git --version
echo
+java -version
+echo
mvn --version | head -1
-echo "=============================================================================="
+echo "==============================================================================="
echo
@@ -244,7 +227,9 @@ cat <<EOF >"${MAVEN_SETTINGS_FILE}"
</settings>
EOF
+
# Clone and/or checkout the source from git.
+
CLONE_DIR="$WORK_DIR/rhq"
if [ -d "$CLONE_DIR" ]; then
cd "$CLONE_DIR"
@@ -270,13 +255,15 @@ if [ ! -d "$CLONE_DIR" ]; then
fi
-# Create a branch for the release, so we don't have to mess with master.
-echo "Creating branch $RELEASE_BRANCH and checking it out..."
+# Create a branch for the release, so we don't have to make any changes to master.
+
+echo "Creating release branch $RELEASE_BRANCH and checking it out..."
git push origin master:$RELEASE_BRANCH
git checkout $RELEASE_BRANCH
-# Run a test build before tagging.
+# Run a test build before tagging. This will also publish the snapshot artifacts to the local repo to "bootstrap" the repo.
+
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
# TODO: Add -Djava5.home=$JAVA5_HOME/jre to the below mvn command line once the Java6 API usages have been removed from the Deployer class.
# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
@@ -291,11 +278,13 @@ echo "Test build succeeded!"
# Clean up the snapshot jars produced by the test build.
+
echo "Cleaning up snapshot jars produced by test build..."
mvn clean $MAVEN_ARGS
# Do a dry run of tagging the release.
+
echo "Doing a dry run of tagging the release..."
mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
EXIT_CODE=$?
@@ -308,8 +297,8 @@ echo "Tagging dry run succeeded!"
# If the dry run succeeded, tag it for real.
+
echo "Tagging the release..."
-cd "$RELEASE_BRANCH_CHECKOUT_DIR"
mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
EXIT_CODE=$?
mvn release:clean $MAVEN_ARGS
@@ -321,6 +310,7 @@ echo "Tagging succeeded!"
# Checkout the tag and build it.
+
echo "Checking out release tag $RELEASE_TAG..."
git checkout "$RELEASE_TAG"
echo "Building release from tag (this will take about 5-10 minutes)..."
@@ -332,9 +322,10 @@ echo
echo "Release build succeeded!"
-echo "=========================== Release Info ==============================="
+echo
+echo "=============================== Release Info =================================="
echo "Version: $RELEASE_VERSION"
-echo "Branch URL: $RELEASE_BRANCH_SVN_URL"
-echo "Tag URL: http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=shortlog;h=refs/heads/$R..."
-echo "========================================================================"
+echo "Branch URL: $PROJECT_GIT_WEB_URL;a=shortlog;h=refs/heads/$RELEASE_BRANCH"
+echo "Tag URL: $PROJECT_GIT_WEB_URL;a=shortlog;h=refs/tags/$RELEASE_TAG"
+echo "==============================================================================="
commit 971ae47ad979efbca1b589d68a8c2d57f5540bd0
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 10 22:36:33 2010 -0400
1) update release.sh to work with git
2) set project.build.sourceEncoding prop to "ISO-8859-1" in root pom
3) update container build to always include rtfilter connectors
(cherry picked from commit b5fabbd90abab2c9dbf7d716d85e36e39fdb0d42)
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6b296df..6ae155a 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -1,4 +1,6 @@
-<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">
+<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>
@@ -165,7 +167,6 @@
<property name="dev.profile.active" value="${dev.profile.active}" />
<property name="developer" value="${developer}" />
<property name="rhq.earName" value="${rhq.earName}" />
- <property name="package-connectors" value="${package-connectors}" />
<!-- dependency versions -->
<property name="rhq.version" value="${project.version}" />
@@ -353,13 +354,6 @@
</build>
</profile>
- <profile>
- <id>dist</id>
- <properties>
- <package-connectors>true</package-connectors>
- </properties>
- </profile>
-
</profiles>
</project>
diff --git a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
index cf11ad2..4e7a944 100644
--- a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
@@ -400,8 +400,8 @@
</target>
- <target name="package-connectors" if="package-connectors">
- <echo>Deploying the rt-filter conectors ...</echo>
+ <target name="package-connectors">
+ <echo>Deploying the response-time servlet filter connectors ...</echo>
<delete file="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/connectors/connector-rtfilter.zip" />
<zip destfile="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/connectors/connector-rtfilter.zip">
<zipfileset dir="${basedir}/../../agent/src/etc/product_connectors">
diff --git a/pom.xml b/pom.xml
index 286bf41..1bc6dd6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,9 @@
<properties>
+ <!-- explictly specify a default encoding to avoid relying on the LANG env var being set correctly -->
+ <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
+
<rhq.groupId>org.rhq</rhq.groupId>
<rhq.product.name>RHQ</rhq.product.name>
<rhq.earName>rhq.ear</rhq.earName>
diff --git a/release.sh b/release.sh
index 6be2ff8..dabd332 100755
--- a/release.sh
+++ b/release.sh
@@ -23,24 +23,21 @@ abort()
usage()
{
EXE=`basename $0`
- abort "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE community 1.3.1 1.3.2-SNAPSHOT"
+ abort "Usage: $EXE RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.Beta1 3.0.0-SNAPSHOT"
}
# Process command line args.
-if [ "$#" -ne 3 ]; then
+if [ "$#" -ne 2 ]; then
usage
fi
-RELEASE_TYPE="$1"
-if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; then
- usage
-fi
-RELEASE_VERSION="$2"
+RELEASE_VERSION="$1"
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
-DEVELOPMENT_VERSION="$3"
-
+DEVELOPMENT_VERSION="$2"
+BRANCH="master"
+RELEASE_BRANCH="release-$RELEASE_VERSION"
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
@@ -114,26 +111,27 @@ if ! which mvn >/dev/null 2>&1; then
fi
-# Make sure SUBVERSION_HOME points to a valid Subversion install.
+# Make sure GIT_HOME points to a valid git install.
-if [ -z "$SUBVERSION_HOME" ]; then
- abort "SUBVERSION_HOME environment variable is not set." >&2
-fi
+#if [ -z "$GIT_HOME" ]; then
+# abort "GIT_HOME environment variable is not set." >&2
+#fi
-if [ ! -d "$SUBVERSION_HOME" ]; then
- abort "SUBVERSION_HOME ($SUBVERSION_HOME) does not exist or is not a directory."
-fi
+#if [ ! -d "$GIT_HOME" ]; then
+# abort "GIT_HOME ($GIT_HOME) does not exist or is not a directory."
+#fi
-echo "Prepending $SUBVERSION_HOME/bin to PATH..."
-PATH="$SUBVERSION_HOME/bin:$PATH"
+#echo "Prepending $GIT_HOME/bin to PATH..."
+#PATH="$GIT_HOME/bin:$PATH"
-if ! which svn >/dev/null 2>&1; then
- abort "svn not found in PATH ($PATH) - SUBVERSION_HOME must point to an SVN install dir."
+if ! which git >/dev/null 2>&1; then
+ #abort "git not found in PATH ($PATH) - GIT_HOME must point to a git install dir."
+ abort "git not found in PATH ($PATH)."
fi
-echo "Prepending $SUBVERSION_HOME/lib to LD_LIBRARY_PATH..."
-LD_LIBRARY_PATH="$SUBVERSION_HOME/lib:$LD_LIBRARY_PATH"
-export LD_LIBRARY_PATH
+#echo "Prepending $GIT_HOME/lib to LD_LIBRARY_PATH..."
+#LD_LIBRARY_PATH="$GIT_HOME/lib:$LD_LIBRARY_PATH"
+#export LD_LIBRARY_PATH
# Set additional required env vars.
@@ -143,29 +141,23 @@ export LANG
# Set various local variables.
-
-if [ -z "$BASE_DIR" ]; then
- BASE_DIR="$HOME"
-fi
-WORK_DIR="$BASE_DIR/${PROJECT_NAME}-${RELEASE_TYPE}-${RELEASE_VERSION}"
-
-RELEASE_BRANCH_CHECKOUT_DIR="$WORK_DIR/branch"
-RELEASE_TAG_CHECKOUT_DIR="$WORK_DIR/tag"
-if [ -n "$RELEASE_BRANCH" ]; then
- RELEASE_BRANCH_SVN_URL="$PROJECT_SVN_URL/branches/$RELEASE_BRANCH"
-else
- RELEASE_BRANCH_SVN_URL="$PROJECT_SVN_URL/trunk"
+if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
+ echo "We appear to be running in a Hudson job."
+ WORK_DIR="$WORKSPACE"
+elif [ -z "$WORK_DIR" ]; then
+ WORK_DIR="$HOME/release"
fi
-RELEASE_TAG_SVN_URL="$PROJECT_SVN_URL/tags/$RELEASE_TAG"
+cd "$WORK_DIR"
+
-MAVEN_LOCAL_REPO_DIR="$BASE_DIR/release-m2-repo"
-MAVEN_SETTINGS_FILE="$WORK_DIR/settings.xml"
-MAVEN_OPTS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise -Pdist -Prelease"
+MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
+MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
+MAVEN_ARGS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_OPTS="$MAVEN_OPTS -Pojdbc-driver -Dpackage-connectors -Dexclude-webdav"
+ MAVEN_OPTS="$MAVEN_OPTS -Dexclude-webdav"
fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
- MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="24"
+ MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
@@ -175,7 +167,8 @@ echo
echo "========================= Environment Variables =============================="
echo "JAVA_HOME=$JAVA_HOME"
echo "M2_HOME=$M2_HOME"
-echo "SUBVERSION_HOME=$SUBVERSION_HOME"
+echo "MAVEN_OPTS=$MAVEN_OPTS"
+#echo "GIT_HOME=$GIT_HOME"
echo "PATH=$PATH"
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "LANG=$LANG"
@@ -194,22 +187,22 @@ echo "RELEASE_TAG_CHECKOUT_DIR=$RELEASE_TAG_CHECKOUT_DIR"
echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
-echo "MAVEN_OPTS=$MAVEN_OPTS"
+echo "MAVEN_ARGS=$MAVEN_ARGS"
echo "============================ Program Versions ================================"
-mvn --version
+java -version
echo
-svn --version | head -2
+git --version
+echo
+mvn --version | head -1
echo "=============================================================================="
echo
-# Clean the Maven local repo.
-
+# Clean the Maven local repo if it hasn't been purged recently.
if [ -f "$MAVEN_LOCAL_REPO_DIR" ]; then
OUTPUT=`find "$MAVEN_LOCAL_REPO_DIR" -maxdepth 0 -mtime $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS`
- if [ -n "$OUTPUT" ]; then
-
- echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than 24 hours - purging it for a clean-clean build..."
+ if [ -n "$OUTPUT" ]; then
+ echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS hours - purging it for a clean-clean build..."
rm -rf "$MAVEN_LOCAL_REPO_DIR"
fi
fi
@@ -217,12 +210,12 @@ mkdir -p "$MAVEN_LOCAL_REPO_DIR"
# Create the Maven settings file.
-SETTINGS=${WORK_DIR}/settings.xml
-cat <<EOF >${SETTINGS}
+cat <<EOF >"${MAVEN_SETTINGS_FILE}"
<settings>
<localRepository>$MAVEN_LOCAL_REPO_DIR</localRepository>
<profiles>
+
<profile>
<id>release</id>
<properties>
@@ -247,58 +240,80 @@ cat <<EOF >${SETTINGS}
</properties>
</profile>
- <profile>
- <id>ojdbc-driver</id>
- <repositories>
- <repository>
- <id>internal</id>
- <name>Internal Repository</name>
- <url>http://jon01.qa.atl2.redhat.com:8042/m2-repo/</url>
- </repository>
- </repositories>
- </profile>
</profiles>
</settings>
EOF
+# Clone and/or checkout the source from git.
+CLONE_DIR="$WORK_DIR/rhq"
+if [ -d "$CLONE_DIR" ]; then
+ cd "$CLONE_DIR"
+ git status >/dev/null 2>&1
+ # Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any uncommitted changes,
+ # and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $CLONE_DIR
+ # is a git working copy.
+ if [ $? -le 1 ]; then
+ echo "Checking out a clean copy of the master branch..."
+ git checkout "$BRANCH"
+ git reset --hard
+ git clean -dxf
+ else
+ cd "$WORK_DIR"
+ rm -rf "$CLONE_DIR"
+ fi
+fi
+if [ ! -d "$CLONE_DIR" ]; then
+ echo "Cloning the RHQ git repo (this will take about 10-15 minutes)..."
+ git clone ssh://git.fedorahosted.org/git/rhq/rhq.git
+ cd "$CLONE_DIR"
+ git checkout "$BRANCH"
+fi
-# Run a test build before tagging.
-if [ -f "$RELEASE_BRANCH_CHECKOUT_DIR" ]; then
- echo "Purging contents of RELEASE_BRANCH_CHECKOUT_DIR ($RELEASE_BRANCH_CHECKOUT_DIR)..."
- rm -rf "$RELEASE_BRANCH_CHECKOUT_DIR"
-fi
-mkdir -p "$RELEASE_BRANCH_CHECKOUT_DIR"
+# Create a branch for the release, so we don't have to mess with master.
+echo "Creating branch $RELEASE_BRANCH and checking it out..."
+git push origin master:$RELEASE_BRANCH
+git checkout $RELEASE_BRANCH
-echo "Checking out branch source from $RELEASE_BRANCH_SVN_URL to $RELEASE_BRANCH_CHECKOUT_DIR (this will take about 5-10 minutes)..."
-# We only need pom.xml and modules/**. Save some time by not checking out etc/**.
-svn co -N $RELEASE_BRANCH_SVN_URL "$RELEASE_BRANCH_CHECKOUT_DIR"
-cd "$RELEASE_BRANCH_CHECKOUT_DIR"
-svn co $RELEASE_BRANCH_SVN_URL/modules
-echo "Building project to ensure tests pass and to boostrap local Maven repo (this will take about 10-15 minutes)..."
-# This will build everything except the CLI, enforcing Java 5 APIs.
-mvn install $MAVEN_OPTS -Ddbsetup -Djava5.home=$JAVA5_HOME/jre
-if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
-fi
-# Now build the CLI, enforcing Java 6 APIs.
-cd modules/enterprise/remoting/cli
-mvn install $MAVEN_OPTS
+# Run a test build before tagging.
+echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
+# TODO: Add -Djava5.home=$JAVA5_HOME/jre to the below mvn command line once the Java6 API usages have been removed from the Deployer class.
+# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
+# TODO: Remove the -Dmaven.test.skip=true - this was added temporarily to speed up development and testing of this release script.
+# NOTE: No need to do a mvn clean, since we just did either a clone or clean checkout above.
+mvn install $MAVEN_ARGS -Dmaven.test.skip=true
if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
+ abort "Test build failed. Please see above Maven output for details, fix any issues, then try again."
fi
-
echo
echo "Test build succeeded!"
-# Tag the release.
+# Clean up the snapshot jars produced by the test build.
+echo "Cleaning up snapshot jars produced by test build..."
+mvn clean $MAVEN_ARGS
+
+
+# Do a dry run of tagging the release.
+echo "Doing a dry run of tagging the release..."
+mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
+EXIT_CODE=$?
+mvn release:clean $MAVEN_ARGS
+if [ "$EXIT_CODE" -ne 0 ]; then
+ abort "Tagging dry run failed. Please see above Maven output for details, fix any issues, then try again."
+fi
+echo
+echo "Tagging dry run succeeded!"
+
+# If the dry run succeeded, tag it for real.
echo "Tagging the release..."
cd "$RELEASE_BRANCH_CHECKOUT_DIR"
-mvn release:prepare $MAVEN_OPTS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=clean verify $MAVEN_OPTS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
-if [ "$?" -ne 0 ]; then
+mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
+EXIT_CODE=$?
+mvn release:clean $MAVEN_ARGS
+if [ "$EXIT_CODE" -ne 0 ]; then
abort "Tagging failed. Please see above Maven output for details, fix any issues, then try again."
fi
echo
@@ -306,28 +321,20 @@ echo "Tagging succeeded!"
# Checkout the tag and build it.
-
-if [ -f "$RELEASE_TAG_CHECKOUT_DIR" ]; then
- echo "Purging contents of RELEASE_TAG_CHECKOUT_DIR ($RELEASE_TAG_CHECKOUT_DIR)..."
- rm -rf "$RELEASE_TAG_CHECKOUT_DIR"
-fi
-mkdir -p "$RELEASE_TAG_CHECKOUT_DIR"
-
-echo "Checking out tag source from $RELEASE_TAG_SVN_URL to $RELEASE_TAG_CHECKOUT_DIR (this will take about 5-10 minutes)..."
-svn co -N $RELEASE_TAG_SVN_URL "$RELEASE_TAG_CHECKOUT_DIR"
-cd "$RELEASE_TAG_CHECKOUT_DIR"
-svn co $RELEASE_TAG_SVN_URL/modules
-
-echo "Building release from tag (this will take about 10-15 minutes)..."
-mvn install $MAVEN_OPTS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
+echo "Checking out release tag $RELEASE_TAG..."
+git checkout "$RELEASE_TAG"
+echo "Building release from tag (this will take about 5-10 minutes)..."
+mvn install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
+ abort "Release build failed. Please see above Maven output for details, fix any issues, then try again."
fi
echo
echo "Release build succeeded!"
+
echo "=========================== Release Info ==============================="
echo "Version: $RELEASE_VERSION"
-echo "Branch SVN URL: $RELEASE_BRANCH_SVN_URL"
-echo "Tag SVN URL: $RELEASE_TAG_SVN_URL"
+echo "Branch URL: $RELEASE_BRANCH_SVN_URL"
+echo "Tag URL: http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=shortlog;h=refs/heads/$R..."
echo "========================================================================"
+
commit 6de34f2fa73ba3a000b03269196a07af19a9eade
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 10 22:36:33 2010 -0400
1) update release.sh to work with git
2) set project.build.sourceEncoding prop to "ISO-8859-1" in root pom
3) update container build to always include rtfilter connectors
(cherry picked from commit b5fabbd90abab2c9dbf7d716d85e36e39fdb0d42)
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 2a03246..eec7602 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -1,4 +1,6 @@
-<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">
+<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>
@@ -165,7 +167,6 @@
<property name="dev.profile.active" value="${dev.profile.active}" />
<property name="developer" value="${developer}" />
<property name="rhq.earName" value="${rhq.earName}" />
- <property name="package-connectors" value="${package-connectors}" />
<!-- dependency versions -->
<property name="rhq.version" value="${project.version}" />
@@ -353,13 +354,6 @@
</build>
</profile>
- <profile>
- <id>dist</id>
- <properties>
- <package-connectors>true</package-connectors>
- </properties>
- </profile>
-
</profiles>
</project>
diff --git a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
index cf11ad2..4e7a944 100644
--- a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
@@ -400,8 +400,8 @@
</target>
- <target name="package-connectors" if="package-connectors">
- <echo>Deploying the rt-filter conectors ...</echo>
+ <target name="package-connectors">
+ <echo>Deploying the response-time servlet filter connectors ...</echo>
<delete file="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/connectors/connector-rtfilter.zip" />
<zip destfile="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/connectors/connector-rtfilter.zip">
<zipfileset dir="${basedir}/../../agent/src/etc/product_connectors">
diff --git a/pom.xml b/pom.xml
index 02d6eab..b91a952 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,9 @@
<properties>
+ <!-- explictly specify a default encoding to avoid relying on the LANG env var being set correctly -->
+ <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
+
<rhq.groupId>org.rhq</rhq.groupId>
<rhq.product.name>RHQ</rhq.product.name>
<rhq.earName>rhq.ear</rhq.earName>
diff --git a/release.sh b/release.sh
index 6be2ff8..dabd332 100755
--- a/release.sh
+++ b/release.sh
@@ -23,24 +23,21 @@ abort()
usage()
{
EXE=`basename $0`
- abort "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE community 1.3.1 1.3.2-SNAPSHOT"
+ abort "Usage: $EXE RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.Beta1 3.0.0-SNAPSHOT"
}
# Process command line args.
-if [ "$#" -ne 3 ]; then
+if [ "$#" -ne 2 ]; then
usage
fi
-RELEASE_TYPE="$1"
-if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; then
- usage
-fi
-RELEASE_VERSION="$2"
+RELEASE_VERSION="$1"
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
-DEVELOPMENT_VERSION="$3"
-
+DEVELOPMENT_VERSION="$2"
+BRANCH="master"
+RELEASE_BRANCH="release-$RELEASE_VERSION"
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
@@ -114,26 +111,27 @@ if ! which mvn >/dev/null 2>&1; then
fi
-# Make sure SUBVERSION_HOME points to a valid Subversion install.
+# Make sure GIT_HOME points to a valid git install.
-if [ -z "$SUBVERSION_HOME" ]; then
- abort "SUBVERSION_HOME environment variable is not set." >&2
-fi
+#if [ -z "$GIT_HOME" ]; then
+# abort "GIT_HOME environment variable is not set." >&2
+#fi
-if [ ! -d "$SUBVERSION_HOME" ]; then
- abort "SUBVERSION_HOME ($SUBVERSION_HOME) does not exist or is not a directory."
-fi
+#if [ ! -d "$GIT_HOME" ]; then
+# abort "GIT_HOME ($GIT_HOME) does not exist or is not a directory."
+#fi
-echo "Prepending $SUBVERSION_HOME/bin to PATH..."
-PATH="$SUBVERSION_HOME/bin:$PATH"
+#echo "Prepending $GIT_HOME/bin to PATH..."
+#PATH="$GIT_HOME/bin:$PATH"
-if ! which svn >/dev/null 2>&1; then
- abort "svn not found in PATH ($PATH) - SUBVERSION_HOME must point to an SVN install dir."
+if ! which git >/dev/null 2>&1; then
+ #abort "git not found in PATH ($PATH) - GIT_HOME must point to a git install dir."
+ abort "git not found in PATH ($PATH)."
fi
-echo "Prepending $SUBVERSION_HOME/lib to LD_LIBRARY_PATH..."
-LD_LIBRARY_PATH="$SUBVERSION_HOME/lib:$LD_LIBRARY_PATH"
-export LD_LIBRARY_PATH
+#echo "Prepending $GIT_HOME/lib to LD_LIBRARY_PATH..."
+#LD_LIBRARY_PATH="$GIT_HOME/lib:$LD_LIBRARY_PATH"
+#export LD_LIBRARY_PATH
# Set additional required env vars.
@@ -143,29 +141,23 @@ export LANG
# Set various local variables.
-
-if [ -z "$BASE_DIR" ]; then
- BASE_DIR="$HOME"
-fi
-WORK_DIR="$BASE_DIR/${PROJECT_NAME}-${RELEASE_TYPE}-${RELEASE_VERSION}"
-
-RELEASE_BRANCH_CHECKOUT_DIR="$WORK_DIR/branch"
-RELEASE_TAG_CHECKOUT_DIR="$WORK_DIR/tag"
-if [ -n "$RELEASE_BRANCH" ]; then
- RELEASE_BRANCH_SVN_URL="$PROJECT_SVN_URL/branches/$RELEASE_BRANCH"
-else
- RELEASE_BRANCH_SVN_URL="$PROJECT_SVN_URL/trunk"
+if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
+ echo "We appear to be running in a Hudson job."
+ WORK_DIR="$WORKSPACE"
+elif [ -z "$WORK_DIR" ]; then
+ WORK_DIR="$HOME/release"
fi
-RELEASE_TAG_SVN_URL="$PROJECT_SVN_URL/tags/$RELEASE_TAG"
+cd "$WORK_DIR"
+
-MAVEN_LOCAL_REPO_DIR="$BASE_DIR/release-m2-repo"
-MAVEN_SETTINGS_FILE="$WORK_DIR/settings.xml"
-MAVEN_OPTS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise -Pdist -Prelease"
+MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
+MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
+MAVEN_ARGS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_OPTS="$MAVEN_OPTS -Pojdbc-driver -Dpackage-connectors -Dexclude-webdav"
+ MAVEN_OPTS="$MAVEN_OPTS -Dexclude-webdav"
fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
- MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="24"
+ MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
@@ -175,7 +167,8 @@ echo
echo "========================= Environment Variables =============================="
echo "JAVA_HOME=$JAVA_HOME"
echo "M2_HOME=$M2_HOME"
-echo "SUBVERSION_HOME=$SUBVERSION_HOME"
+echo "MAVEN_OPTS=$MAVEN_OPTS"
+#echo "GIT_HOME=$GIT_HOME"
echo "PATH=$PATH"
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "LANG=$LANG"
@@ -194,22 +187,22 @@ echo "RELEASE_TAG_CHECKOUT_DIR=$RELEASE_TAG_CHECKOUT_DIR"
echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
-echo "MAVEN_OPTS=$MAVEN_OPTS"
+echo "MAVEN_ARGS=$MAVEN_ARGS"
echo "============================ Program Versions ================================"
-mvn --version
+java -version
echo
-svn --version | head -2
+git --version
+echo
+mvn --version | head -1
echo "=============================================================================="
echo
-# Clean the Maven local repo.
-
+# Clean the Maven local repo if it hasn't been purged recently.
if [ -f "$MAVEN_LOCAL_REPO_DIR" ]; then
OUTPUT=`find "$MAVEN_LOCAL_REPO_DIR" -maxdepth 0 -mtime $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS`
- if [ -n "$OUTPUT" ]; then
-
- echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than 24 hours - purging it for a clean-clean build..."
+ if [ -n "$OUTPUT" ]; then
+ echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS hours - purging it for a clean-clean build..."
rm -rf "$MAVEN_LOCAL_REPO_DIR"
fi
fi
@@ -217,12 +210,12 @@ mkdir -p "$MAVEN_LOCAL_REPO_DIR"
# Create the Maven settings file.
-SETTINGS=${WORK_DIR}/settings.xml
-cat <<EOF >${SETTINGS}
+cat <<EOF >"${MAVEN_SETTINGS_FILE}"
<settings>
<localRepository>$MAVEN_LOCAL_REPO_DIR</localRepository>
<profiles>
+
<profile>
<id>release</id>
<properties>
@@ -247,58 +240,80 @@ cat <<EOF >${SETTINGS}
</properties>
</profile>
- <profile>
- <id>ojdbc-driver</id>
- <repositories>
- <repository>
- <id>internal</id>
- <name>Internal Repository</name>
- <url>http://jon01.qa.atl2.redhat.com:8042/m2-repo/</url>
- </repository>
- </repositories>
- </profile>
</profiles>
</settings>
EOF
+# Clone and/or checkout the source from git.
+CLONE_DIR="$WORK_DIR/rhq"
+if [ -d "$CLONE_DIR" ]; then
+ cd "$CLONE_DIR"
+ git status >/dev/null 2>&1
+ # Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any uncommitted changes,
+ # and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $CLONE_DIR
+ # is a git working copy.
+ if [ $? -le 1 ]; then
+ echo "Checking out a clean copy of the master branch..."
+ git checkout "$BRANCH"
+ git reset --hard
+ git clean -dxf
+ else
+ cd "$WORK_DIR"
+ rm -rf "$CLONE_DIR"
+ fi
+fi
+if [ ! -d "$CLONE_DIR" ]; then
+ echo "Cloning the RHQ git repo (this will take about 10-15 minutes)..."
+ git clone ssh://git.fedorahosted.org/git/rhq/rhq.git
+ cd "$CLONE_DIR"
+ git checkout "$BRANCH"
+fi
-# Run a test build before tagging.
-if [ -f "$RELEASE_BRANCH_CHECKOUT_DIR" ]; then
- echo "Purging contents of RELEASE_BRANCH_CHECKOUT_DIR ($RELEASE_BRANCH_CHECKOUT_DIR)..."
- rm -rf "$RELEASE_BRANCH_CHECKOUT_DIR"
-fi
-mkdir -p "$RELEASE_BRANCH_CHECKOUT_DIR"
+# Create a branch for the release, so we don't have to mess with master.
+echo "Creating branch $RELEASE_BRANCH and checking it out..."
+git push origin master:$RELEASE_BRANCH
+git checkout $RELEASE_BRANCH
-echo "Checking out branch source from $RELEASE_BRANCH_SVN_URL to $RELEASE_BRANCH_CHECKOUT_DIR (this will take about 5-10 minutes)..."
-# We only need pom.xml and modules/**. Save some time by not checking out etc/**.
-svn co -N $RELEASE_BRANCH_SVN_URL "$RELEASE_BRANCH_CHECKOUT_DIR"
-cd "$RELEASE_BRANCH_CHECKOUT_DIR"
-svn co $RELEASE_BRANCH_SVN_URL/modules
-echo "Building project to ensure tests pass and to boostrap local Maven repo (this will take about 10-15 minutes)..."
-# This will build everything except the CLI, enforcing Java 5 APIs.
-mvn install $MAVEN_OPTS -Ddbsetup -Djava5.home=$JAVA5_HOME/jre
-if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
-fi
-# Now build the CLI, enforcing Java 6 APIs.
-cd modules/enterprise/remoting/cli
-mvn install $MAVEN_OPTS
+# Run a test build before tagging.
+echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
+# TODO: Add -Djava5.home=$JAVA5_HOME/jre to the below mvn command line once the Java6 API usages have been removed from the Deployer class.
+# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
+# TODO: Remove the -Dmaven.test.skip=true - this was added temporarily to speed up development and testing of this release script.
+# NOTE: No need to do a mvn clean, since we just did either a clone or clean checkout above.
+mvn install $MAVEN_ARGS -Dmaven.test.skip=true
if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
+ abort "Test build failed. Please see above Maven output for details, fix any issues, then try again."
fi
-
echo
echo "Test build succeeded!"
-# Tag the release.
+# Clean up the snapshot jars produced by the test build.
+echo "Cleaning up snapshot jars produced by test build..."
+mvn clean $MAVEN_ARGS
+
+
+# Do a dry run of tagging the release.
+echo "Doing a dry run of tagging the release..."
+mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
+EXIT_CODE=$?
+mvn release:clean $MAVEN_ARGS
+if [ "$EXIT_CODE" -ne 0 ]; then
+ abort "Tagging dry run failed. Please see above Maven output for details, fix any issues, then try again."
+fi
+echo
+echo "Tagging dry run succeeded!"
+
+# If the dry run succeeded, tag it for real.
echo "Tagging the release..."
cd "$RELEASE_BRANCH_CHECKOUT_DIR"
-mvn release:prepare $MAVEN_OPTS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=clean verify $MAVEN_OPTS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
-if [ "$?" -ne 0 ]; then
+mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
+EXIT_CODE=$?
+mvn release:clean $MAVEN_ARGS
+if [ "$EXIT_CODE" -ne 0 ]; then
abort "Tagging failed. Please see above Maven output for details, fix any issues, then try again."
fi
echo
@@ -306,28 +321,20 @@ echo "Tagging succeeded!"
# Checkout the tag and build it.
-
-if [ -f "$RELEASE_TAG_CHECKOUT_DIR" ]; then
- echo "Purging contents of RELEASE_TAG_CHECKOUT_DIR ($RELEASE_TAG_CHECKOUT_DIR)..."
- rm -rf "$RELEASE_TAG_CHECKOUT_DIR"
-fi
-mkdir -p "$RELEASE_TAG_CHECKOUT_DIR"
-
-echo "Checking out tag source from $RELEASE_TAG_SVN_URL to $RELEASE_TAG_CHECKOUT_DIR (this will take about 5-10 minutes)..."
-svn co -N $RELEASE_TAG_SVN_URL "$RELEASE_TAG_CHECKOUT_DIR"
-cd "$RELEASE_TAG_CHECKOUT_DIR"
-svn co $RELEASE_TAG_SVN_URL/modules
-
-echo "Building release from tag (this will take about 10-15 minutes)..."
-mvn install $MAVEN_OPTS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
+echo "Checking out release tag $RELEASE_TAG..."
+git checkout "$RELEASE_TAG"
+echo "Building release from tag (this will take about 5-10 minutes)..."
+mvn install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
+ abort "Release build failed. Please see above Maven output for details, fix any issues, then try again."
fi
echo
echo "Release build succeeded!"
+
echo "=========================== Release Info ==============================="
echo "Version: $RELEASE_VERSION"
-echo "Branch SVN URL: $RELEASE_BRANCH_SVN_URL"
-echo "Tag SVN URL: $RELEASE_TAG_SVN_URL"
+echo "Branch URL: $RELEASE_BRANCH_SVN_URL"
+echo "Tag URL: http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=shortlog;h=refs/heads/$R..."
echo "========================================================================"
+
commit 26c8541cb9e429b8da6b58088502f2acc60c0280
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon Jun 14 11:49:34 2010 -0400
further work on release.sh
diff --git a/release.sh b/release.sh
index dabd332..186fe1b 100755
--- a/release.sh
+++ b/release.sh
@@ -4,9 +4,10 @@
PROJECT_NAME="rhq"
PROJECT_DISPLAY_NAME="RHQ"
-PROJECT_SVN_URL="http://svn.rhq-project.org/repos/rhq"
+PROJECT_GIT_URL="ssh://git.fedorahosted.org/git/rhq/rhq.git"
+PROJECT_GIT_WEB_URL="http://git.fedorahosted.org/git/?p=rhq/rhq.git"
TAG_PREFIX="RHQ"
-MINIMUM_MAVEN_VERSION="2.0.10"
+MINIMUM_MAVEN_VERSION="2.1.0"
# Functions
@@ -21,24 +22,29 @@ abort()
}
usage()
-{
- EXE=`basename $0`
- abort "Usage: $EXE RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.Beta1 3.0.0-SNAPSHOT"
+{
+ abort "$@" "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.GA 3.0.0-SNAPSHOT"
}
# Process command line args.
-if [ "$#" -ne 2 ]; then
+EXE=`basename $0`
+if [ "$#" -ne 3 ]; then
usage
fi
-RELEASE_VERSION="$1"
+RELEASE_TYPE="$1"
+if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; then
+ usage "Invalid release type: $RELEASE_TYPE"
+fi
+RELEASE_VERSION="$2"
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
-DEVELOPMENT_VERSION="$2"
+DEVELOPMENT_VERSION="$3"
BRANCH="master"
RELEASE_BRANCH="release-$RELEASE_VERSION"
+
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
if [ -z "$JAVA_HOME" ]; then
@@ -111,33 +117,13 @@ if ! which mvn >/dev/null 2>&1; then
fi
-# Make sure GIT_HOME points to a valid git install.
-
-#if [ -z "$GIT_HOME" ]; then
-# abort "GIT_HOME environment variable is not set." >&2
-#fi
-
-#if [ ! -d "$GIT_HOME" ]; then
-# abort "GIT_HOME ($GIT_HOME) does not exist or is not a directory."
-#fi
-
-#echo "Prepending $GIT_HOME/bin to PATH..."
-#PATH="$GIT_HOME/bin:$PATH"
+# Make sure git is in the PATH.
if ! which git >/dev/null 2>&1; then
- #abort "git not found in PATH ($PATH) - GIT_HOME must point to a git install dir."
abort "git not found in PATH ($PATH)."
fi
-#echo "Prepending $GIT_HOME/lib to LD_LIBRARY_PATH..."
-#LD_LIBRARY_PATH="$GIT_HOME/lib:$LD_LIBRARY_PATH"
-#export LD_LIBRARY_PATH
-
-
-# Set additional required env vars.
-
-LANG=en_US.iso88591
-export LANG
+# TODO: Check for a minimum git version?
# Set various local variables.
@@ -152,49 +138,46 @@ cd "$WORK_DIR"
MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
-MAVEN_ARGS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise,dist,release"
+MAVEN_ARGS="--settings $MAVEN_SETTINGS_FILE --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_OPTS="$MAVEN_OPTS -Dexclude-webdav"
+ MAVEN_ARGS="$MAVEN_ARGS -Dexclude-webdav"
+fi
+if [ -z "$RHQ_RELEASE_QUIET" ]; then
+ MAVEN_ARGS="$MAVEN_ARGS --debug"
fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
-# Print out summary of environment.
+# Print out a summary of the environment.
echo
-echo "========================= Environment Variables =============================="
+echo "========================== Environment Variables =============================="
echo "JAVA_HOME=$JAVA_HOME"
+echo "JAVA5_HOME=$JAVA5_HOME"
echo "M2_HOME=$M2_HOME"
echo "MAVEN_OPTS=$MAVEN_OPTS"
-#echo "GIT_HOME=$GIT_HOME"
echo "PATH=$PATH"
-echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
-echo "LANG=$LANG"
-echo "============================ Local Variables ================================="
+echo "============================= Local Variables ================================="
echo "WORK_DIR=$WORK_DIR"
echo "PROJECT_NAME=$PROJECT_NAME"
echo "RELEASE_TYPE=$RELEASE_TYPE"
echo "RELEASE_VERSION=$RELEASE_VERSION"
echo "DEVELOPMENT_VERSION=$DEVELOPMENT_VERSION"
echo "RELEASE_BRANCH=$RELEASE_BRANCH"
-echo "RELEASE_BRANCH_SVN_URL=$RELEASE_BRANCH_SVN_URL"
-echo "RELEASE_BRANCH_CHECKOUT_DIR=$RELEASE_BRANCH_CHECKOUT_DIR"
echo "RELEASE_TAG=$RELEASE_TAG"
-echo "RELEASE_TAG_SVN_URL=$RELEASE_TAG_SVN_URL"
-echo "RELEASE_TAG_CHECKOUT_DIR=$RELEASE_TAG_CHECKOUT_DIR"
echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
echo "MAVEN_ARGS=$MAVEN_ARGS"
-echo "============================ Program Versions ================================"
-java -version
-echo
+echo "============================= Program Versions ================================"
git --version
echo
+java -version
+echo
mvn --version | head -1
-echo "=============================================================================="
+echo "==============================================================================="
echo
@@ -244,7 +227,9 @@ cat <<EOF >"${MAVEN_SETTINGS_FILE}"
</settings>
EOF
+
# Clone and/or checkout the source from git.
+
CLONE_DIR="$WORK_DIR/rhq"
if [ -d "$CLONE_DIR" ]; then
cd "$CLONE_DIR"
@@ -270,13 +255,15 @@ if [ ! -d "$CLONE_DIR" ]; then
fi
-# Create a branch for the release, so we don't have to mess with master.
-echo "Creating branch $RELEASE_BRANCH and checking it out..."
+# Create a branch for the release, so we don't have to make any changes to master.
+
+echo "Creating release branch $RELEASE_BRANCH and checking it out..."
git push origin master:$RELEASE_BRANCH
git checkout $RELEASE_BRANCH
-# Run a test build before tagging.
+# Run a test build before tagging. This will also publish the snapshot artifacts to the local repo to "bootstrap" the repo.
+
echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
# TODO: Add -Djava5.home=$JAVA5_HOME/jre to the below mvn command line once the Java6 API usages have been removed from the Deployer class.
# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
@@ -291,11 +278,13 @@ echo "Test build succeeded!"
# Clean up the snapshot jars produced by the test build.
+
echo "Cleaning up snapshot jars produced by test build..."
mvn clean $MAVEN_ARGS
# Do a dry run of tagging the release.
+
echo "Doing a dry run of tagging the release..."
mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
EXIT_CODE=$?
@@ -308,8 +297,8 @@ echo "Tagging dry run succeeded!"
# If the dry run succeeded, tag it for real.
+
echo "Tagging the release..."
-cd "$RELEASE_BRANCH_CHECKOUT_DIR"
mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
EXIT_CODE=$?
mvn release:clean $MAVEN_ARGS
@@ -321,6 +310,7 @@ echo "Tagging succeeded!"
# Checkout the tag and build it.
+
echo "Checking out release tag $RELEASE_TAG..."
git checkout "$RELEASE_TAG"
echo "Building release from tag (this will take about 5-10 minutes)..."
@@ -332,9 +322,10 @@ echo
echo "Release build succeeded!"
-echo "=========================== Release Info ==============================="
+echo
+echo "=============================== Release Info =================================="
echo "Version: $RELEASE_VERSION"
-echo "Branch URL: $RELEASE_BRANCH_SVN_URL"
-echo "Tag URL: http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=shortlog;h=refs/heads/$R..."
-echo "========================================================================"
+echo "Branch URL: $PROJECT_GIT_WEB_URL;a=shortlog;h=refs/heads/$RELEASE_BRANCH"
+echo "Tag URL: $PROJECT_GIT_WEB_URL;a=shortlog;h=refs/tags/$RELEASE_TAG"
+echo "==============================================================================="
commit 14ed8e5e8fb9e4c3fc80277286fb19b96e9bdbe6
Merge: ca23704... 316150f...
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 14 11:00:44 2010 -0400
Merge branch 'master' into release-3.0.0
commit 316150fef98fce297e4454a9d715d27f70d616cb
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 14 10:45:41 2010 -0400
BZ-603769, 603772: enable SearchBar prefill functionality, fix welcomeMessage handling
BZ-603769:
* delay the construction of the SearchBar until the SavedSearchManager is fully loaded
* add method to allow propagation of default search information from JSF context
* add handler to execute search immediately if searchText is propagated
* add handler to activate saved search immediately if a named search pattern is propagated
BZ-603772:
* use DOM.addNativePreviewHandler instead of DOM.setEventListener
** this ensures that the prepareSearchExecution is the first handler in the stack
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
index 994773f..41e3f13 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
@@ -36,7 +36,8 @@ import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.EventListener;
+import com.google.gwt.user.client.Event.NativePreviewEvent;
+import com.google.gwt.user.client.Event.NativePreviewHandler;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PopupPanel;
@@ -86,6 +87,8 @@ public class SearchBar extends SimplePanel {
private final SavedSearchManager savedSearchManager;
private SearchSubsystem searchSubsystem;
+ private String defaultSearchText;
+ private String defaultSavedSearchPattern;
private Element searchButton;
@@ -103,11 +106,11 @@ public class SearchBar extends SimplePanel {
String searchButtonId = searchBarElement.getAttribute("searchButtonId");
searchButton = DOM.getElementById(searchButtonId);
- DOM.sinkEvents(searchButton, Event.ONKEYDOWN);
- DOM.setEventListener(searchButton, new EventListener() {
+ Event.addNativePreviewHandler(new NativePreviewHandler() {
@Override
- public void onBrowserEvent(Event event) {
- if (event.getKeyCode() == Event.ONKEYDOWN) {
+ public void onPreviewNativeEvent(NativePreviewEvent event) {
+ if (event.getNativeEvent().getEventTarget().equals(searchButton)
+ && event.getTypeInt() == Event.ONMOUSEDOWN) {
prepareSearchExecution();
}
}
@@ -115,18 +118,21 @@ public class SearchBar extends SimplePanel {
String searchSubsystem = searchBarElement.getAttribute("searchSubsystem");
setSearchSubsystem(SearchSubsystem.valueOf(searchSubsystem.toUpperCase()));
+
+ String defaultSearchText = searchBarElement.getAttribute("defaultSearchText");
+ setDefaultSearchText(defaultSearchText);
+
+ String defaultSavedSearchPattern = searchBarElement.getAttribute("defaultSavedSearchPattern");
+ setDefaultSavedSearchPattern(defaultSavedSearchPattern);
}
public SearchBar() {
System.out.println("Loading SearchBar...");
- // in the future, will be instantiated directly from a higher-level widget
- if (existsOnPage()) {
- loadAdditionalDataFromDivAttributes();
- }
-
savedSearchManager = new SavedSearchManager(this);
+ }
+ public void onSavedSearchManagerLoaded() {
RootPanel.get("patternFieldContainer").add(autoCompletePatternField);
RootPanel.get("patternNameFieldContainer").add(patternNameField);
RootPanel.get("patternNameLabelContainer").add(patternNameLabel);
@@ -141,6 +147,10 @@ public class SearchBar extends SimplePanel {
setupArrowImage();
setupSavedSearches();
+ // in the future, will be instantiated directly from a higher-level widget
+ if (existsOnPage()) {
+ loadAdditionalDataFromDivAttributes();
+ }
// presume the enclosing page logic loads results without a button click
}
@@ -157,6 +167,7 @@ public class SearchBar extends SimplePanel {
this.searchSubsystem = searchSubsystem;
this.welcomeMessage = "search for " + searchSubsystem.getName().toLowerCase() + "s";
+
this.autoCompletePatternField.setText(welcomeMessage);
}
@@ -164,18 +175,41 @@ public class SearchBar extends SimplePanel {
return searchSubsystem;
}
+ public void setDefaultSearchText(String defaultSearchText) {
+ if (defaultSearchText == null || defaultSearchText.trim().equals("")) {
+ return; // do nothing
+ }
+
+ this.defaultSearchText = defaultSearchText;
+ this.autoCompletePatternField.setText(defaultSearchText);
+ click(searchButton); // execute the search with this default search expression
+ }
+
+ public String getDefaultSearchText() {
+ return defaultSearchText;
+ }
+
+ public void setDefaultSavedSearchPattern(String defaultSavedSearchPattern) {
+ if (defaultSavedSearchPattern == null || defaultSavedSearchPattern.trim().equals("")) {
+ return; // do nothing
+ }
+
+ this.defaultSavedSearchPattern = defaultSavedSearchPattern;
+ activateSavedSearch(defaultSavedSearchPattern);
+ }
+
+ public String getDefaultSavedSearchPattern() {
+ return defaultSavedSearchPattern;
+ }
+
public String getWelcomeMessage() {
return welcomeMessage;
}
public void prepareSearchExecution() {
String searchTerms = autoCompletePatternField.getText().toLowerCase().trim();
- prepareSearchExecution(searchTerms);
- }
-
- public void prepareSearchExecution(String searchTerms) {
if (searchTerms.equals(welcomeMessage)) {
- autoCompletePatternField.setValue("", false);
+ autoCompletePatternField.setText("");
}
}
@@ -438,8 +472,7 @@ public class SearchBar extends SimplePanel {
savedSearches.removeRow(rowIndex);
} else {
- activateSavedSearch(patternName);
- click(searchButton);
+ activateSavedSearch(patternName); // activating the saved search also clicks the button
}
}
}
@@ -452,18 +485,15 @@ public class SearchBar extends SimplePanel {
public void activateSavedSearch(String savedSearchName) {
currentSearch = "";
String patternValue = savedSearchManager.getPatternByName(savedSearchName);
+ if (patternValue == null) {
+ return; // no saved search existing with the specified name
+ }
autoCompletePatternField.setValue(patternValue, true);
patternNameField.setValue(savedSearchName, true);
SearchLogger.debug("search results change: [" + savedSearchName + "," + patternValue + "]");
turnNameFieldIntoLabel();
savedSearchesPanel.hide();
- }
-
- class SearchButtonEventHandler implements ClickHandler {
- @Override
- public void onClick(ClickEvent event) {
- prepareSearchExecution();
- }
+ click(searchButton);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
index aad63fc..fcbee84 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/favorites/SavedSearchManager.java
@@ -160,22 +160,30 @@ public class SavedSearchManager {
@Override
public void onSuccess(List<SavedSearch> result) {
- savedSearches.clear();
- Collections.sort(result, new Comparator<SavedSearch>() {
-
- @Override
- public int compare(SavedSearch first, SavedSearch second) {
- return first.getName().compareTo(second.getName());
+ try {
+ savedSearches.clear();
+ Collections.sort(result, new Comparator<SavedSearch>() {
+
+ @Override
+ public int compare(SavedSearch first, SavedSearch second) {
+ return first.getName().compareTo(second.getName());
+ }
+ });
+ for (SavedSearch next : result) {
+ savedSearches.put(next.getName(), next);
}
- });
- for (SavedSearch next : result) {
- savedSearches.put(next.getName(), next);
+ } finally {
+ searchBar.onSavedSearchManagerLoaded();
}
}
@Override
public void onFailure(Throwable caught) {
- SearchLogger.debug("Error: loading saved searches: " + caught.getMessage());
+ try {
+ SearchLogger.debug("Error: loading saved searches: " + caught.getMessage());
+ } finally {
+ searchBar.onSavedSearchManagerLoaded();
+ }
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java
index a7426e9..d6d133a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox.java
@@ -129,7 +129,7 @@ public class SuggestTextBox extends TextBox {
System.out.println("just completed to '" + this.getValue() + "'");
String patternValue = searchBar.getSavedSearchManager().getPatternByName(this.getValue());
if (patternValue != null) {
- searchBar.prepareSearchExecution(this.getValue());
+ searchBar.prepareSearchExecution();
} else {
// send a 'fake' key, this will rerender PopupPanel with the new completion list
handleKeyCode(0);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
index 483c831..5848f0f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v2.java
@@ -144,7 +144,7 @@ public class SuggestTextBox_v2 extends TextBox {
String patternValue = searchBar.getSavedSearchManager().getPatternByName(getValue());
if (patternValue != null) {
- searchBar.prepareSearchExecution(getValue());
+ searchBar.prepareSearchExecution();
} else {
suggestBox.showSuggestionList();
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java
index 0846cdd..58cabf5 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseGroupsUIBean.java
@@ -37,10 +37,6 @@ public class BrowseGroupsUIBean extends PagedDataTableUIBean {
} else if (subtab.equals("mixed")) {
category = GroupCategory.MIXED;
}
-
- /*
- search = FacesContextUtility.getOptionalRequestParameter("search");
- */
}
public String getSearch() {
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java
index f6d1290..28494f4 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/browse/BrowseResourcesUIBean.java
@@ -47,16 +47,6 @@ public class BrowseResourcesUIBean extends PagedDataTableUIBean {
} else if (subtab.equals("service")) {
category = ResourceCategory.SERVICE;
}
-
- /*
- String searchId = FacesContextUtility.getOptionalRequestParameter("searchId");
- if (searchId != null) {
- SavedSearch savedSearch = savedSearchManager.getSavedSearchById(getSubject(), Integer.valueOf(searchId));
- search = savedSearch.getPattern();
- } else {
- search = FacesContextUtility.getOptionalRequestParameter("search");
- }
- */
}
public String getSearch() {
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/searchInterface.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/searchInterface.xhtml
index 6afdbd4..661cf8c 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/searchInterface.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/searchInterface.xhtml
@@ -12,7 +12,9 @@
<div class="searchBarContainer"
searchButtonId="#{searchButtonId}"
- searchSubsystem="#{searchSubsystem}"
+ searchSubsystem="#{searchSubsystem}"
+ defaultSearchText="#{defaultSearchText}"
+ defaultSavedSearchPattern="#{defaultSavedSearchPattern}"
id="searchBar">
<div class="searchBarBackgroundContainer">
<div class="searchBarComponentsContainer">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml
index 892a9cd..2d9aedb 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseGroups.xhtml
@@ -44,6 +44,7 @@
<ui:include src="/rhq/common/searchInterface.xhtml">
<ui:param name="searchButtonId" value="browseGroupsForm:searchButtonJSF" />
<ui:param name="searchSubsystem" value="GROUP" />
+ <ui:param name="defaultSearchText" value="#{param.search}" />
</ui:include>
<a4j:commandButton id="searchButtonJSF" value="GO"
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
index a112891..d492ad6 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
@@ -44,6 +44,8 @@
<ui:include src="/rhq/common/searchInterface.xhtml">
<ui:param name="searchButtonId" value="browseResourcesForm:searchButtonJSF" />
<ui:param name="searchSubsystem" value="RESOURCE" />
+ <ui:param name="defaultSearchText" value="#{param.search}" />
+ <ui:param name="defaultSavedSearchPattern" value="#{param.searchId}" />
</ui:include>
<a4j:commandButton id="searchButtonJSF" value="GO"
commit 7c8b3a1deba6512b84dcfd1396d9a685ca8f1f91
Author: Joseph Marques <joseph(a)redhat.com>
Date: Mon Jun 14 07:43:22 2010 -0400
fix internal API - rename ResourceManager.deleteXXX to ResourceManager.uninventory
diff --git a/etc/samples/perspectives/sample-perspective/app/src/main/java/org/rhq/sample/perspective/WizardBean.java b/etc/samples/perspectives/sample-perspective/app/src/main/java/org/rhq/sample/perspective/WizardBean.java
index ab416e0..c8fe2c7 100644
--- a/etc/samples/perspectives/sample-perspective/app/src/main/java/org/rhq/sample/perspective/WizardBean.java
+++ b/etc/samples/perspectives/sample-perspective/app/src/main/java/org/rhq/sample/perspective/WizardBean.java
@@ -24,8 +24,8 @@ import java.util.Map;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
-
import org.jboss.seam.international.StatusMessage;
+
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.authz.Role;
@@ -655,22 +655,26 @@ public class WizardBean extends AbstractPerspectiveUIBean {
}
public String getGroupsUrl() throws Exception {
- PerspectiveManagerRemote perspectiveManager = this.perspectiveClient.getRemoteClient().getPerspectiveManagerRemote();
- String url = perspectiveManager.getMenuItemUrl(this.perspectiveClient.getSubject(),
- ((Group.valueOf(this.groupType) == Group.Mixed) ? "groups.mixedGroups" : "groups.compatibleGroups"), false,
- false);
+ PerspectiveManagerRemote perspectiveManager = this.perspectiveClient.getRemoteClient()
+ .getPerspectiveManagerRemote();
+ String url = perspectiveManager.getMenuItemUrl(this.perspectiveClient.getSubject(), ((Group
+ .valueOf(this.groupType) == Group.Mixed) ? "groups.mixedGroups" : "groups.compatibleGroups"), false, false);
return url;
}
public String getRolesUrl() throws Exception {
- PerspectiveManagerRemote perspectiveManager = this.perspectiveClient.getRemoteClient().getPerspectiveManagerRemote();
- String url = perspectiveManager.getMenuItemUrl(this.perspectiveClient.getSubject(), "administration.security.roles", false, false);
+ PerspectiveManagerRemote perspectiveManager = this.perspectiveClient.getRemoteClient()
+ .getPerspectiveManagerRemote();
+ String url = perspectiveManager.getMenuItemUrl(this.perspectiveClient.getSubject(),
+ "administration.security.roles", false, false);
return url;
}
public String getUsersUrl() throws Exception {
- PerspectiveManagerRemote perspectiveManager = this.perspectiveClient.getRemoteClient().getPerspectiveManagerRemote();
- String url = perspectiveManager.getMenuItemUrl(this.perspectiveClient.getSubject(), "administration.security.users", false, false);
+ PerspectiveManagerRemote perspectiveManager = this.perspectiveClient.getRemoteClient()
+ .getPerspectiveManagerRemote();
+ String url = perspectiveManager.getMenuItemUrl(this.perspectiveClient.getSubject(),
+ "administration.security.users", false, false);
return url;
}
diff --git a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/discovery/DiscoveryAgentService.java b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/discovery/DiscoveryAgentService.java
index 86150b8..8930753 100644
--- a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/discovery/DiscoveryAgentService.java
+++ b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/agent/discovery/DiscoveryAgentService.java
@@ -150,7 +150,7 @@ public interface DiscoveryAgentService {
*
* @param resourceId the id of the Resource to remove
*/
- void removeResource(int resourceId);
+ void uninventoryResource(int resourceId);
// TODO GH: Everything below here is not used yet, nor implemented
/**
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/DeleteResourceRunner.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/DeleteResourceRunner.java
index add47d9..c709864 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/DeleteResourceRunner.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/DeleteResourceRunner.java
@@ -104,7 +104,7 @@ public class DeleteResourceRunner implements Callable, Runnable {
// TODO: Doesn't support resources with children
facet.deleteResource();
- PluginContainer.getInstance().getInventoryManager().removeResource(resourceId);
+ PluginContainer.getInstance().getInventoryManager().uninventoryResource(resourceId);
status = DeleteResourceStatus.SUCCESS;
} catch (Throwable t) {
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 8944b99..098ff52 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -710,7 +710,7 @@ public class InventoryManager extends AgentService implements ContainerService,
log.debug("Rolling back manual add of resource of type [" + resourceType.getName()
+ "] - removing resource with id [" + resource.getId() + "] from inventory...");
deactivateResource(resource);
- removeResource(resource.getId());
+ uninventoryResource(resource.getId());
}
if (t instanceof InvalidPluginConfigurationException) {
@@ -1001,7 +1001,7 @@ public class InventoryManager extends AgentService implements ContainerService,
return resourceContainer.getResourceComponent();
}
- public void removeResource(int resourceId) {
+ public void uninventoryResource(int resourceId) {
ResourceContainer resourceContainer = getResourceContainer(resourceId);
if (resourceContainer == null) {
if (log.isDebugEnabled()) {
@@ -2365,7 +2365,7 @@ public class InventoryManager extends AgentService implements ContainerService,
Resource resource = resourceContainer.getResource();
// Only purge stuff that was synchronized at some point. Other stuff may just be newly discovered.
if (resource.getId() != 0) {
- removeResource(resource.getId());
+ uninventoryResource(resource.getId());
removedResources++;
}
} else {
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGWTService.java
index 99234dc..e7857cd 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/ResourceGWTService.java
@@ -18,7 +18,12 @@
*/
package org.rhq.enterprise.gui.coregui.client.gwt;
-import org.rhq.core.domain.auth.Subject;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.resource.InventoryStatus;
@@ -27,13 +32,6 @@ import org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import com.google.gwt.user.client.rpc.RemoteService;
-
-import java.util.EnumSet;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
/**
* @author Greg Hinkle
*/
@@ -49,11 +47,12 @@ public interface ResourceGWTService extends RemoteService {
Resource getPlatformForResource(int resourceId);
- List<Integer> deleteResources(int[] resourceIds);
+ List<Integer> uninventoryResources(int[] resourceIds);
void updateResource(Resource resource);
- void createResource(int parentResourceId, int newResourceTypeId, String newResourceName, Configuration newResourceConfiguration);
+ void createResource(int parentResourceId, int newResourceTypeId, String newResourceName,
+ Configuration newResourceConfiguration);
Map<Resource, List<Resource>> getQueuedPlatformsAndServers(HashSet<InventoryStatus> statuses, PageControl pc);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
index b1b1ece..ec47c75 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/ResourceDatasource.java
@@ -21,7 +21,6 @@ package org.rhq.enterprise.gui.coregui.client.inventory.resource;
import java.util.List;
import com.google.gwt.core.client.JavaScriptObject;
-import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.DSRequest;
import com.smartgwt.client.data.DSResponse;
@@ -32,7 +31,6 @@ import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.rpc.RPCResponse;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.Resource;
@@ -60,7 +58,6 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
DataSourceField idDataField = new DataSourceIntegerField("id", "ID", 20);
idDataField.setPrimaryKey(true);
-
DataSourceImageField iconField = new DataSourceImageField("icon");
iconField.setImageURLPrefix("types/");
@@ -115,14 +112,14 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
}
if (request.getCriteria().getValues().get("type") != null) {
- criteria.addFilterResourceTypeId(Integer.parseInt(((String)request.getCriteria().getValues().get("type"))));
+ criteria
+ .addFilterResourceTypeId(Integer.parseInt(((String) request.getCriteria().getValues().get("type"))));
}
if (request.getCriteria().getValues().get("plugin") != null) {
- criteria.addFilterPluginName((String)request.getCriteria().getValues().get("plugin"));
+ criteria.addFilterPluginName((String) request.getCriteria().getValues().get("plugin"));
}
-
if (request.getCriteria().getValues().get("tag") != null) {
criteria.addFilterTag((Tag) request.getCriteria().getValues().get("tag"));
}
@@ -139,8 +136,6 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
criteria.addFilterTagName((String) request.getCriteria().getValues().get("tagName"));
}
-
-
resourceService.findResourcesByCriteria(criteria, new AsyncCallback<PageList<Resource>>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError("Failed to fetch resource data", caught);
@@ -150,7 +145,6 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
public void onSuccess(PageList<Resource> result) {
-
dataRetrieved(result, response, request);
}
});
@@ -160,11 +154,10 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
protected void executeRemove(final DSRequest request, final DSResponse response) {
JavaScriptObject data = request.getData();
final ListGridRecord rec = new ListGridRecord(data);
- final Resource resourceToDelete = copyValues(rec);
-
+ final Resource resourceToDelete = copyValues(rec);
final int resourceId = resourceToDelete.getId();
- resourceService.deleteResources(new int[]{resourceId}, new AsyncCallback<List<Integer>>() {
+ resourceService.uninventoryResources(new int[] { resourceId }, new AsyncCallback<List<Integer>>() {
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError("Failed to uninventory resource " + resourceId, caught);
response.setStatus(DSResponse.STATUS_FAILURE);
@@ -172,13 +165,13 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
}
public void onSuccess(List<Integer> result) {
- CoreGUI.getMessageCenter().notify(new Message("Resource [" + resourceId + "] successfully uninventoried.", Message.Severity.Info));
+ CoreGUI.getMessageCenter().notify(
+ new Message("Resource [" + resourceId + "] successfully uninventoried.", Message.Severity.Info));
response.setStatus(DSResponse.STATUS_SUCCESS);
processResponse(request.getRequestId(), response);
}
});
-
}
protected void dataRetrieved(PageList<Resource> result, DSResponse response, DSRequest request) {
@@ -188,7 +181,6 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
processResponse(request.getRequestId(), response);
}
-
@Override
public Resource copyValues(ListGridRecord from) {
return new Resource(from.getAttributeAsInt("id"));
@@ -204,9 +196,8 @@ public class ResourceDatasource extends RPCDataSource<Resource> {
record.setAttribute("typeName", from.getResourceType().getName());
record.setAttribute("pluginName", from.getResourceType().getPlugin());
record.setAttribute("category", from.getResourceType().getCategory().getDisplayName());
- record.setAttribute("icon", from.getResourceType().getCategory().getDisplayName() + "_" +
- (from.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP ? "up" : "down") + "_16.png");
-
+ record.setAttribute("icon", from.getResourceType().getCategory().getDisplayName() + "_"
+ + (from.getCurrentAvailability().getAvailabilityType() == AvailabilityType.UP ? "up" : "down") + "_16.png");
record
.setAttribute(
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
index 31dd771..d4164f8 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/ResourceGWTServiceImpl.java
@@ -18,9 +18,17 @@
*/
package org.rhq.enterprise.gui.coregui.server.gwt;
-import org.rhq.core.domain.auth.Subject;
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+
import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.configuration.RawConfiguration;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.configuration.definition.ConfigurationTemplate;
import org.rhq.core.domain.criteria.ResourceCriteria;
@@ -36,17 +44,6 @@ import org.rhq.enterprise.server.resource.ResourceFactoryManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.EnumSet;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
/**
* @author Greg Hinkle
*/
@@ -56,51 +53,47 @@ public class ResourceGWTServiceImpl extends AbstractGWTServiceImpl implements Re
private ResourceFactoryManagerLocal resourceFactoryManager = LookupUtil.getResourceFactoryManager();
private DiscoveryBossLocal discoveryBoss = LookupUtil.getDiscoveryBoss();
- private static String[] importantFields = {
- "serialVersionUID",
-// "ROOT \n" +
-// "ROOT_ID \n" +
- "id",
-
-// "uuid \n" +
-// "resourceKey \n" +
- "name",
-
-// "connected \n" +
-// "version \n" +
- "description",
-
-// "ctime \n" +
-// "mtime \n" +
-// "itime \n" +
-// "modifiedBy \n" +
-// "location \n" +
- "resourceType",
- "childResources",
- "parentResource",
-// "resourceConfiguration \n" +
-// "pluginConfiguration \n" +
-// "agent \n" +
-// "alertDefinitions \n" +
-// "resourceConfigurationUpdates \n" +
-// "pluginConfigurationUpdates \n" +
-// "implicitGroups \n" +
-// "explicitGroups \n" +
-// "contentServiceRequests \n" +
-// "createChildResourceRequests \n" +
-// "deleteResourceRequests \n" +
-// "operationHistories \n" +
-// "installedPackages \n" +
-// "installedPackageHistory \n" +
-// "resourceRepos \n" +
- "schedules",
-// "availability \n" +
- "currentAvailability",
-// "resourceErrors \n" +
-// "eventSources \n" +
-// "productVersion "}
- "tags"
- };
+ private static String[] importantFields = { "serialVersionUID",
+ // "ROOT \n" +
+ // "ROOT_ID \n" +
+ "id",
+
+ // "uuid \n" +
+ // "resourceKey \n" +
+ "name",
+
+ // "connected \n" +
+ // "version \n" +
+ "description",
+
+ // "ctime \n" +
+ // "mtime \n" +
+ // "itime \n" +
+ // "modifiedBy \n" +
+ // "location \n" +
+ "resourceType", "childResources", "parentResource",
+ // "resourceConfiguration \n" +
+ // "pluginConfiguration \n" +
+ // "agent \n" +
+ // "alertDefinitions \n" +
+ // "resourceConfigurationUpdates \n" +
+ // "pluginConfigurationUpdates \n" +
+ // "implicitGroups \n" +
+ // "explicitGroups \n" +
+ // "contentServiceRequests \n" +
+ // "createChildResourceRequests \n" +
+ // "deleteResourceRequests \n" +
+ // "operationHistories \n" +
+ // "installedPackages \n" +
+ // "installedPackageHistory \n" +
+ // "resourceRepos \n" +
+ "schedules",
+ // "availability \n" +
+ "currentAvailability",
+ // "resourceErrors \n" +
+ // "eventSources \n" +
+ // "productVersion "}
+ "tags" };
private static Set<String> importantFieldsSet = new HashSet<String>(Arrays.asList(importantFields));
@@ -124,23 +117,24 @@ public class ResourceGWTServiceImpl extends AbstractGWTServiceImpl implements Re
return SerialUtility.prepare(result, "ResourceService.findResourceByCriteria");
} catch (Exception e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
throw new RuntimeException(e);
}
}
public List<Resource> getResourceLineage(int resourceId) {
- return SerialUtility.prepare(resourceManager.getResourceLineage(resourceId), "ResourceService.getResourceLineage");
+ return SerialUtility.prepare(resourceManager.getResourceLineage(resourceId),
+ "ResourceService.getResourceLineage");
}
-
public List<Resource> getResourceLineageAndSiblings(int resourceId) {
- return SerialUtility.prepare(resourceManager.getResourceLineageAndSiblings(resourceId), "ResourceService.getResourceLineage");
+ return SerialUtility.prepare(resourceManager.getResourceLineageAndSiblings(resourceId),
+ "ResourceService.getResourceLineage");
}
-
public Resource getPlatformForResource(int resourceId) {
- return SerialUtility.prepare(resourceManager.getRootResourceForResource(resourceId), "ResourceService.getPlatformForResource");
+ return SerialUtility.prepare(resourceManager.getRootResourceForResource(resourceId),
+ "ResourceService.getPlatformForResource");
}
public List<RecentlyAddedResourceComposite> findRecentlyAddedResources(long ctime, int maxItems) {
@@ -156,22 +150,20 @@ public class ResourceGWTServiceImpl extends AbstractGWTServiceImpl implements Re
return platforms;
}
- public List<Integer> deleteResources(int[] resourceIds) {
- return SerialUtility.prepare(
- resourceManager.deleteResources(getSessionSubject(), resourceIds),
- "ResourceService.deleteResources");
+ public List<Integer> uninventoryResources(int[] resourceIds) {
+ return SerialUtility.prepare(resourceManager.uninventoryResources(getSessionSubject(), resourceIds),
+ "ResourceService.uninventoryResources");
}
public void updateResource(Resource resource) {
resourceManager.updateResource(getSessionSubject(), resource);
}
+ public void createResource(int parentResourceId, int newResourceTypeId, String newResourceName,
+ Configuration newResourceConfiguration) {
- public void createResource(int parentResourceId, int newResourceTypeId, String newResourceName, Configuration newResourceConfiguration) {
-
- ConfigurationDefinition pluginConfigDefinition =
- LookupUtil.getConfigurationManager().
- getPluginConfigurationDefinitionForResourceType(getSessionSubject(), newResourceTypeId);
+ ConfigurationDefinition pluginConfigDefinition = LookupUtil.getConfigurationManager()
+ .getPluginConfigurationDefinitionForResourceType(getSessionSubject(), newResourceTypeId);
Configuration pluginConfig = null;
if (pluginConfigDefinition != null) {
ConfigurationTemplate pluginConfigTemplate = pluginConfigDefinition.getDefaultTemplate();
@@ -182,20 +174,13 @@ public class ResourceGWTServiceImpl extends AbstractGWTServiceImpl implements Re
// ConfigurationUtility.normalizeConfiguration(pluginConfig, pluginConfigDefinition);
}
-
- resourceFactoryManager.createResource(getSessionSubject(),
- parentResourceId, newResourceTypeId, newResourceName, pluginConfig, newResourceConfiguration);
+ resourceFactoryManager.createResource(getSessionSubject(), parentResourceId, newResourceTypeId,
+ newResourceName, pluginConfig, newResourceConfiguration);
}
-
-
public Map<Resource, List<Resource>> getQueuedPlatformsAndServers(HashSet<InventoryStatus> statuses, PageControl pc) {
- return SerialUtility.prepare(
- discoveryBoss.getQueuedPlatformsAndServers(
- getSessionSubject(),
- EnumSet.copyOf(statuses),
- pc),
- "ResoruceService.getQueuedPlatformsAndServers");
+ return SerialUtility.prepare(discoveryBoss.getQueuedPlatformsAndServers(getSessionSubject(), EnumSet
+ .copyOf(statuses), pc), "ResoruceService.getQueuedPlatformsAndServers");
}
public void importResources(Integer[] resourceIds) {
@@ -210,5 +195,4 @@ public class ResourceGWTServiceImpl extends AbstractGWTServiceImpl implements Re
discoveryBoss.unignoreResources(getSessionSubject(), resourceIds);
}
-
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/hub/RemoveResourceAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/hub/RemoveResourceAction.java
index 7eadd53..f7d4fc2 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/hub/RemoveResourceAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/hub/RemoveResourceAction.java
@@ -68,7 +68,7 @@ public class RemoveResourceAction extends BaseAction {
// ask the server to delete the doomed resources
ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
- List<Integer> deletedResourceIds = resourceManager.deleteResources(subject, ArrayUtils
+ List<Integer> deletedResourceIds = resourceManager.uninventoryResources(subject, ArrayUtils
.unwrapCollection(doomedResourceIds));
// a doomed resource is one that we asked to be deleted.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
index 17fb6d9..9a6b419 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceFactoryManagerBean.java
@@ -225,7 +225,7 @@ public class ResourceFactoryManagerBean implements ResourceFactoryManagerLocal,
private void uninventoryChildren(Set<Resource> children) {
for (Resource child : children) {
- resourceManager.deleteResource(subjectManager.getOverlord(), child.getId());
+ resourceManager.uninventoryResource(subjectManager.getOverlord(), child.getId());
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 302fdac..4f63893 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -214,21 +214,21 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
return entityManager.merge(resource);
}
- public List<Integer> deleteResources(Subject user, int[] resourceIds) {
- List<Integer> deletedResourceIds = new ArrayList<Integer>();
+ public List<Integer> uninventoryResources(Subject user, int[] resourceIds) {
+ List<Integer> uninventoryResourceIds = new ArrayList<Integer>();
for (Integer resourceId : resourceIds) {
- if (!deletedResourceIds.contains(resourceId)) {
- deletedResourceIds.addAll(deleteResource(user, resourceId));
+ if (!uninventoryResourceIds.contains(resourceId)) {
+ uninventoryResourceIds.addAll(uninventoryResource(user, resourceId));
}
}
- return deletedResourceIds;
+ return uninventoryResourceIds;
}
@SuppressWarnings("unchecked")
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public List<Integer> deleteResource(Subject user, int resourceId) {
+ public List<Integer> uninventoryResource(Subject user, int resourceId) {
Resource resource = resourceManager.getResourceTree(resourceId, true);
if (resource == null) {
log.info("Delete resource not possible, as resource with id [" + resourceId + "] was not found");
@@ -237,7 +237,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
// make sure the user is authorized to delete this resource (which implies you can delete all its children)
if (!authorizationManager.hasResourcePermission(user, Permission.DELETE_RESOURCE, resourceId)) {
- throw new PermissionException("You do not have permission to delete resource [" + resourceId + "]");
+ throw new PermissionException("You do not have permission to uninventory resource [" + resourceId + "]");
}
// if the resource has no parent, its a top root resource and its agent should be purged too
@@ -267,7 +267,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
Subject overlord = subjectManager.getOverlord();
// delete the resource and all its children
- log.info("User [" + user + "] is marking resource [" + resource + "] for asynchronous deletion");
+ log.info("User [" + user + "] is marking resource [" + resource + "] for asynchronous uninventory");
// set agent references null
// foobar the resourceKeys
@@ -282,14 +282,14 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
int resourcesDeleted = markDeletedQuery.executeUpdate();
if (resourcesDeleted != toBeDeletedResourceIds.size()) {
- log.error("Tried to delete " + toBeDeletedResourceIds.size() + " resources, but actually deleted "
- + resourcesDeleted);
+ log.error("Tried to uninventory " + toBeDeletedResourceIds.size()
+ + " resources, but actually uninventoried " + resourcesDeleted);
}
// still need to tell the agent about the removed resources so it stops avail reports
if (agentClient != null) {
try {
- agentClient.getDiscoveryAgentService().removeResource(resourceId);
+ agentClient.getDiscoveryAgentService().uninventoryResource(resourceId);
} catch (Exception e) {
log.warn(" Unable to inform agent of inventory removal for resource [" + resourceId + "]", e);
}
@@ -315,7 +315,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public void deleteSingleResourceInNewTransaction(Subject user, int resourceId) {
+ public void uninventoryResourceAsyncWork(Subject user, int resourceId) {
if (!authorizationManager.isOverlord(user)) {
throw new IllegalArgumentException("Only the overlord can execute out-of-band async resource delete method");
}
@@ -1996,10 +1996,6 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
return result;
}
- public void uninventoryResources(Subject subject, int[] resourceIds) {
- deleteResources(subject, resourceIds);
- }
-
@SuppressWarnings("unchecked")
@RequiredPermission(Permission.MANAGE_INVENTORY)
public List<ResourceInstallCount> findResourceInstallCounts(Subject subject, boolean groupByVersions) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
index 448bb78..327c439 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
@@ -83,21 +83,6 @@ public interface ResourceManagerLocal {
Resource updateResource(Subject user, Resource resource);
/**
- * This will delete the resources with the given ID along with all of their child resources. This method will not
- * create its own transaction; each individual child resource as well as the top level resources identified with the
- * given IDs will be deleted in their own transaction. This will ensure that resources are deleting in the proper
- * order (for example, if a given resource is actually a child of one of the other given resources, this method
- * ensures the deletion occurs properly).
- *
- * @param user the user deleting the resource
- * @param resourceIds the ID of the resource to be deleted
- *
- * @return the list of all resources that were deleted - in effect, this will contain <code>resourceIds</code> and
- * their childrens' IDs
- */
- List<Integer> deleteResources(Subject user, int[] resourceIds);
-
- /**
* This will delete the resource with the given ID along with all of its child resources. This method will not
* create its own transaction; each individual child resource as well as the top level resource identified with the
* given ID will be deleted in its own transaction.
@@ -108,18 +93,18 @@ public interface ResourceManagerLocal {
* @return the list of all resources that were deleted - in effect, this will contain <code>resourceId</code> and
* its children's IDs
*/
- List<Integer> deleteResource(Subject user, int resourceId);
+ List<Integer> uninventoryResource(Subject user, int resourceId);
/**
* Deletes the given resource (but not its children) in a new transaction. This is normally used only within this
- * manager bean itself. Clients normally should call {@link #deleteResource(Subject, int)}. If you call this
+ * manager bean itself. Clients normally should call {@link #uninventoryResource(Subject, int)}. If you call this
* method, make sure you have a specific reason for it; check to see if calling
- * {@link #deleteResource(Subject, int)} would not be more appropriate.
+ * {@link #uninventoryResource(Subject, int)} would not be more appropriate.
*
* @param user the user deleting the resource
* @param resource the resource to be deleted
*/
- void deleteSingleResourceInNewTransaction(Subject user, int resourceId);
+ void uninventoryResourceAsyncWork(Subject user, int resourceId);
boolean bulkNativeQueryDeleteInNewTransaction(Subject subject, String nativeQueryString, List<Integer> resourceIds);
@@ -438,9 +423,19 @@ public interface ResourceManagerLocal {
List<Resource> findResourceLineage(Subject subject, int resourceId);
/**
- * #see {@link ResourceManagerRemote#uninventoryResources(Subject, int)
+ * This will uninventory the resources with the given ID along with all of their child resources. This method will not
+ * create its own transaction; each individual child resource as well as the top level resources identified with the
+ * given IDs will be uninventoried in their own transaction. This will ensure that resources are uninventoried in the proper
+ * order (for example, if a given resource is actually a child of one of the other given resources, this method
+ * ensures the uninventory occurs properly).
+ *
+ * @param user the user performing the uninventory action
+ * @param resourceIds the ID of the resource to be deleted
+ *
+ * @return the list of all resources that were deleted - in effect, this will contain <code>resourceIds</code> and
+ * their childrens' IDs
*/
- void uninventoryResources(Subject subject, int[] resourceIds);
+ List<Integer> uninventoryResources(Subject subject, int[] resourceIds);
List<ResourceInstallCount> findResourceInstallCounts(Subject subject, boolean groupByVersions);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
index e642866..d633909 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerRemote.java
@@ -110,7 +110,7 @@ public interface ResourceManagerRemote {
* @param resourceIds The resources to uninventory.
*/
@WebMethod
- void uninventoryResources( //
+ List<Integer> uninventoryResources( //
@WebParam(name = "subject") Subject subject, //
@WebParam(name = "resourceIds") int[] resourceIds);
@@ -138,5 +138,5 @@ public interface ResourceManagerRemote {
Resource getParentResource( //
@WebParam(name = "subject") Subject subject, //
@WebParam(name = "resourceId") int resourceId);
-
+
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index a64f266..aeb19d2 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@ -550,12 +550,12 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
Iterator<Resource> resIter = resources.iterator();
while (resIter.hasNext()) {
Resource res = resIter.next();
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, res.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, res.getId());
// do this out of band because the current transaction is locking rows that due to
// updates that may need to get deleted. If you do it here the NewTrans used below
// may deadlock with the current transactions locks.
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
resIter.remove();
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
index 305c660..412e61d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AsyncResourceDeleteJob.java
@@ -51,7 +51,7 @@ public class AsyncResourceDeleteJob extends AbstractStatefulJob {
log.debug("Before asynchronous deletion of resource[id=" + doomedResourceId + "]");
long startTime = System.currentTimeMillis();
unscheduleJobs(overlord, doomedResourceId);
- resourceManager.deleteSingleResourceInNewTransaction(overlord, doomedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, doomedResourceId);
long endTime = System.currentTimeMillis();
time += (endTime - startTime);
log.debug("After asynchronous deletion of resource[id=" + doomedResourceId + "], took ["
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
index 2463e89..2892d58 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/webservices/WebservicesManagerBean.java
@@ -966,8 +966,8 @@ public class WebservicesManagerBean implements WebservicesRemote {
return resourceManager.getResource(subject, resourceId);
}
- public void uninventoryResources(Subject subject, int[] resourceIds) {
- resourceManager.uninventoryResources(subject, resourceIds);
+ public List<Integer> uninventoryResources(Subject subject, int[] resourceIds) {
+ return resourceManager.uninventoryResources(subject, resourceIds);
}
//RESOURCEMANAGER: END ----------------------------------
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
index 9782411..0a3efd8 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBeanTest.java
@@ -149,9 +149,9 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
try {
// perform in-band and out-of-band work in quick succession
// only need to delete newResource1, which will delete his child newResource2 as well as the agent
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, newResource1.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, newResource1.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
} catch (Exception e) {
System.out.println(e);
@@ -1086,7 +1086,7 @@ public class ConfigurationManagerBeanTest extends AbstractEJB3Test {
return false;
}
- public void removeResource(int resourceId) {
+ public void uninventoryResource(int resourceId) {
}
@Asynchronous(guaranteedDelivery = true)
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/AvailabilityManagerTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/AvailabilityManagerTest.java
index 1628b5f..4c0e5ef 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/AvailabilityManagerTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/AvailabilityManagerTest.java
@@ -95,8 +95,8 @@ public class AvailabilityManagerTest extends AbstractEJB3Test {
if (theResource != null) {
// perform in-band and out-of-band work in quick succession
// this also deletes our attached agent
- resourceManager.deleteResource(overlord, theResource.getId());
- resourceManager.deleteSingleResourceInNewTransaction(overlord, theResource.getId());
+ resourceManager.uninventoryResource(overlord, theResource.getId());
+ resourceManager.uninventoryResourceAsyncWork(overlord, theResource.getId());
theResource = null;
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/MeasurementBaselineManagerTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/MeasurementBaselineManagerTest.java
index 3bbb457..86bfb07 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/MeasurementBaselineManagerTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/measurement/test/MeasurementBaselineManagerTest.java
@@ -440,9 +440,9 @@ public class MeasurementBaselineManagerTest extends AbstractEJB3Test {
try {
// perform in-band and out-of-band work in quick succession
// deleteResource will remove platform and platform2, as well as the agent
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, platform.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, platform.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
begin();
@@ -553,9 +553,9 @@ public class MeasurementBaselineManagerTest extends AbstractEJB3Test {
Resource root = allResources.get(0);
// perform in-band and out-of-band work in quick succession
// this also deletes the agent
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, root.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, root.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
begin();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
index 82d17e6..eaf6182 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/operation/OperationManagerBeanTest.java
@@ -1613,9 +1613,9 @@ public class OperationManagerBeanTest extends AbstractEJB3Test {
// then invoke bulk delete on the resource to remove any dependencies not defined in the hibernate entity model
// perform in-band and out-of-band work in quick succession
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, resource.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, resource.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
// then kill the group via the RG manager, it also handles cleanup of non hibernate model info
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
index b320a3b..3b0c439 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
@@ -367,9 +367,9 @@ public class UpdateSubsytemTestBase extends AbstractEJB3Test {
// invoke bulk delete on the resource to remove any dependencies not defined in the hibernate entity model
// perform in-band and out-of-band work in quick succession
for (Resource doomed : doomedResources) {
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, doomed.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, doomed.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
index 9080938..2525cdb 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
@@ -472,9 +472,9 @@ public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
private void teardownResourceEnvironment() throws Exception {
if (parentResource != null) {
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, parentResource.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, parentResource.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
getTransactionManager().begin();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceManagerBeanTest.java
index 7400a9b..a529eec 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceManagerBeanTest.java
@@ -166,9 +166,9 @@ public class ResourceManagerBeanTest extends UpdateSubsytemTestBase {
Resource res = em.find(Resource.class, resource.getId());
Agent agent = em.find(Agent.class, res.getAgent().getId());
- List<Integer> deletedIds = resourceManager.deleteResource(superuser, res.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(superuser, res.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(superuser, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(superuser, deletedResourceId);
}
em.remove(agent);
em.remove(type);
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
index 3de6865..8ab68e2 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/scheduler/jobs/DataPurgeJobTest.java
@@ -130,8 +130,8 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, newResource.getId());
- resourceManager.deleteSingleResourceInNewTransaction(overlord, newResource.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, newResource.getId());
+ resourceManager.uninventoryResourceAsyncWork(overlord, newResource.getId());
assert deletedIds.size() == 1 : "didn't delete resource: " + deletedIds;
assert deletedIds.get(0).intValue() == newResource.getId() : "what was deleted? : " + deletedIds;
@@ -544,9 +544,9 @@ public class DataPurgeJobTest extends AbstractEJB3Test {
// delete the resource itself
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, doomedResource.getId());
+ List<Integer> deletedIds = resourceManager.uninventoryResource(overlord, doomedResource.getId());
for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ resourceManager.uninventoryResourceAsyncWork(overlord, deletedResourceId);
}
// delete the agent and the type
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
index 0d98539..b2b96d2 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
@@ -230,7 +230,7 @@ public class TestAgentClient implements AgentClient, BundleAgentService, Content
return null;
}
- public void removeResource(int resourceId) {
+ public void uninventoryResource(int resourceId) {
}
public void updatePluginConfiguration(int resourceId, Configuration newPluginConfiguration)
commit 1a2bea257a931d9c514568274ae419fe3bf1259c
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 11 14:34:34 2010 -0400
fix display of "add new" box for alert notifications
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/alert/notification/details.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/alert/notification/details.xhtml
index 1b0f5d1..01725e8 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/alert/notification/details.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/alert/notification/details.xhtml
@@ -162,16 +162,14 @@
<input type="hidden" name="context" value="#{param.context}"/>
<input type="hidden" name="contextId" value="#{param.contextId}"/>
<input type="hidden" name="contextSubId" value="#{param.contextSubId}"/>
-
- <div style="height: 100px;">
- <h:outputLabel for="senderList" value="Alert Sender Type:" />
- <br />
- <h:selectOneMenu id="senderList" value="#{alertNotificationsUIBean.selectedNewSender}">
- <f:selectItems value="#{alertNotificationsUIBean.alertSenders}" />
- </h:selectOneMenu>
- </div>
-
- <h:panelGrid columns="4" styleClass="buttons-table" columnClasses="button-cell">
+
+ <h:selectOneRadio id="senderList"
+ layout="pageDirection"
+ value="#{alertNotificationsUIBean.selectedNewSender}">
+ <f:selectItems value="#{alertNotificationsUIBean.alertSenders}" />
+ </h:selectOneRadio>
+
+ <h:panelGrid columns="2" styleClass="buttons-table" columnClasses="button-cell">
<a4j:commandButton value="OK" action="#{alertNotificationsUIBean.addAlertSender}"
styleClass="buttonmed" id="addAlertButton"
status="commonStatus"
commit f4223c6c628f5b5788e804a0c7f382cfea121cdd
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 11 14:01:40 2010 -0400
BZ-602788: fix FK constaint violation when editing an alert notification with operation arguments
* instead of deleting and recreating the extraConfiguration object, just merge properties changes into it
* if user changes selection mode, need to null out the extraConfiguration
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
index da26144..d7001fc 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
@@ -98,6 +98,8 @@ public class AlertNotification implements Serializable {
this.configuration = source.configuration.deepCopy(false);
if (source.extraConfiguration != null) {
this.extraConfiguration = source.extraConfiguration.deepCopy(false);
+ } else {
+ this.extraConfiguration = null;
}
this.senderName = source.senderName;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
index 0e4f47d..612a5fa 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
@@ -18,6 +18,9 @@
*/
package org.rhq.enterprise.server.plugin.pc.alert;
+import java.util.Arrays;
+
+import org.rhq.core.domain.alert.notification.AlertNotification;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
@@ -161,4 +164,15 @@ public class CustomAlertSenderBackingBean {
return ret;
}
+ final protected void deleteExtraParameters() {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+ AlertNotification notification = LookupUtil.getAlertNotificationManager().getAlertNotification(overlord,
+ alertNotificationId);
+ Configuration extraParameters = notification.getExtraConfiguration();
+ notification.setExtraConfiguration(null);
+ LookupUtil.getAlertNotificationManager().updateAlertNotification(overlord,
+ notification.getAlertDefinition().getId(), notification);
+ LookupUtil.getConfigurationManager().deleteConfigurations(Arrays.asList(extraParameters.getId()));
+ }
+
}
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
index 4fbd15b..0bf47fa 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
@@ -19,7 +19,6 @@
package org.rhq.enterprise.server.plugins.alertOperations;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -81,14 +80,6 @@ public class OperationsBackingBean extends CustomAlertSenderBackingBean {
}
Configuration previousArguments = extraParameters;
- /*
- String argumentsConfigurationId = get(OperationInfo.Constants.ARGUMENTS_CONFIG_ID, null);
- if (argumentsConfigurationId != null && !argumentsConfigurationId.equals("none")) {
- // look it up and then delete it, because the user may switch options in the conditional form, invalidating this
- previousArguments = LookupUtil.getConfigurationManager().getConfiguration(getOverlord(),
- Integer.parseInt(argumentsConfigurationId));
- }
- */
// load secondList if currentType is selected
if (selectionMode.equals("none")) {
@@ -235,36 +226,16 @@ public class OperationsBackingBean extends CustomAlertSenderBackingBean {
set(descendantTypeId, OperationInfo.Constants.RELATIVE_DESCENDANT_TYPE_ID);
set(operationDefinitionId, OperationInfo.Constants.OPERATION_ID);
- // cleanup previous arguments configuration
- cleanupPreviousArguments();
-
- // persist new one
+ // persist the updates to the argumentsConfiguration
if (operationDefinitionId != null && !operationDefinitionId.equals("none") && argumentsConfiguration != null) {
- argumentsConfiguration.setId(0); // force Hibernate to interpret this configuration as a new one
- //argumentsConfiguration = persistConfiguration(argumentsConfiguration);
- //set(String.valueOf(argumentsConfiguration.getId()), OperationInfo.Constants.ARGUMENTS_CONFIG_ID);
- extraParameters = argumentsConfiguration;
- extraParameters = persistConfiguration(extraParameters);
+ extraParameters = persistConfiguration(argumentsConfiguration);
+ } else {
+ deleteExtraParameters();
}
alertParameters = persistConfiguration(alertParameters);
}
- private void cleanupPreviousArguments() {
- /*
- String previousArgumentsConfigurationId = get(OperationInfo.Constants.ARGUMENTS_CONFIG_ID, null);
- set(null, OperationInfo.Constants.ARGUMENTS_CONFIG_ID);
- if (previousArgumentsConfigurationId != null && !previousArgumentsConfigurationId.equals("none")) {
- LookupUtil.getConfigurationManager().deleteConfigurations(
- Arrays.asList(Integer.parseInt(previousArgumentsConfigurationId)));
- }
- */
- if (extraParameters != null) {
- LookupUtil.getConfigurationManager().deleteConfigurations(Arrays.asList(extraParameters.getId()));
- extraParameters = null;
- }
- }
-
private boolean set(String value, OperationInfo.Constants operationInfoConstant) {
String propertyName = operationInfoConstant.propertyName;
if (value == null) {
commit b824d632ab4a61c567491ba0af5f093cb7632ae1
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon Jun 14 13:51:12 2010 +0200
BZ 602678 - A better algorithm to find the SNMP index of a vhost.
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
index 4bd9a63..533ebd4 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
@@ -514,15 +514,23 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
List<HttpdAddressUtility.Address> vhostAddresses = new ArrayList<HttpdAddressUtility.Address>(
vhostAddressStrings.length);
- ApacheServerComponent parent = resourceContext.getParentResourceComponent();
- if (vhostAddressStrings.length == 1 && MAIN_SERVER_RESOURCE_KEY.equals(vhostAddressStrings[0])) {
- vhostAddresses.add(parent.getAddressUtility().getMainServerSampleAddress(tree));
- } else {
- for (int i = 0; i < vhostAddressStrings.length; ++i) {
- vhostAddresses.add(parent.getAddressUtility().getVirtualHostSampleAddress(tree, vhostAddressStrings[i],
- vhostServerName));
- }
+ ApacheServerComponent parent = resourceContext.getParentResourceComponent();
+ if (vhostAddressStrings.length == 1 && MAIN_SERVER_RESOURCE_KEY.equals(vhostAddressStrings[0])) {
+ vhostAddresses.add(parent.getAddressUtility().getMainServerSampleAddress(tree));
+ } else {
+ for (int i = 0; i < vhostAddressStrings.length; ++i) {
+ vhostAddresses.add(parent.getAddressUtility().getVirtualHostSampleAddress(tree, vhostAddressStrings[i],
+ vhostServerName));
}
+ }
+
+ //finding the snmp index that corresponds to the address(es) of the vhost isn't that simple
+ //because the snmp module in apache always resolves the IPs to hostnames.
+ //on the other hand, the resource key tries to be more accurate about what a
+ //vhost can actually be represented as. A vhost is represented by at most 1 hostname (i.e. ServerName)
+ //and possibly multiple IP addresses.
+ SNMPValue bestMatch = null;
+ int bestMatchRate = 0;
while (namesIterator.hasNext()) {
SNMPValue nameValue = namesIterator.next();
@@ -534,20 +542,28 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
int snmpPort = Integer.parseInt(fullPort.substring(fullPort.lastIndexOf(".") + 1));
if (snmpPort == 0) snmpPort = 80;
- if (containsAddress(vhostAddresses, new HttpdAddressUtility.Address(snmpHost, snmpPort))) {
- String nameOID = nameValue.getOID();
- snmpWwwServiceIndex = Integer.parseInt(nameOID.substring(nameOID.lastIndexOf(".") + 1));
-
- break;
+ HttpdAddressUtility.Address snmpAddress = new HttpdAddressUtility.Address(snmpHost, snmpPort);
+
+ int matchRate = matchRate(vhostAddresses, snmpAddress);
+ if (matchRate > bestMatchRate) {
+ bestMatch = nameValue;
+ bestMatchRate = matchRate;
}
}
+
+ if (bestMatch != null) {
+ String nameOID = bestMatch.getOID();
+ snmpWwwServiceIndex = Integer.parseInt(nameOID.substring(nameOID.lastIndexOf(".") + 1));
+ } else {
+ log.warn("Unable to match the Virtual Host [" + key + "] with any of the SNMP advertised vhosts: " + names + ". It won't be possible to monitor the Virtual Host.");
+ }
}
return snmpWwwServiceIndex;
}
- private boolean containsAddress(List<HttpdAddressUtility.Address> addresses, HttpdAddressUtility.Address addressToCheck) throws UnknownHostException {
+ private int matchRate(List<HttpdAddressUtility.Address> addresses, HttpdAddressUtility.Address addressToCheck) throws UnknownHostException {
if (addresses.contains(addressToCheck)) {
- return true;
+ return 3;
}
//try to get the IP of the address to check
@@ -557,7 +573,7 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
HttpdAddressUtility.Address newCheck = new HttpdAddressUtility.Address(ip.getHostAddress(), addressToCheck.port);
if (addresses.contains(newCheck)) {
- return true;
+ return 2;
}
}
@@ -567,13 +583,13 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
for (InetAddress listInetAddr : listAddresses) {
for (InetAddress ip : ipAddresses) {
if (ip.equals(listInetAddr) && addressToCheck.port == listAddress.port) {
- return true;
+ return 1;
}
}
}
}
- return false;
+ return 0;
}
private ResourceType getDirectoryResourceType() {
commit b5fabbd90abab2c9dbf7d716d85e36e39fdb0d42
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 10 22:36:33 2010 -0400
1) update release.sh to work with git
2) set project.build.sourceEncoding prop to "ISO-8859-1" in root pom
3) update container build to always include rtfilter connectors
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6b296df..6ae155a 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -1,4 +1,6 @@
-<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">
+<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>
@@ -165,7 +167,6 @@
<property name="dev.profile.active" value="${dev.profile.active}" />
<property name="developer" value="${developer}" />
<property name="rhq.earName" value="${rhq.earName}" />
- <property name="package-connectors" value="${package-connectors}" />
<!-- dependency versions -->
<property name="rhq.version" value="${project.version}" />
@@ -353,13 +354,6 @@
</build>
</profile>
- <profile>
- <id>dist</id>
- <properties>
- <package-connectors>true</package-connectors>
- </properties>
- </profile>
-
</profiles>
</project>
diff --git a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
index cf11ad2..4e7a944 100644
--- a/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/container/src/main/scripts/rhq-container.build.xml
@@ -400,8 +400,8 @@
</target>
- <target name="package-connectors" if="package-connectors">
- <echo>Deploying the rt-filter conectors ...</echo>
+ <target name="package-connectors">
+ <echo>Deploying the response-time servlet filter connectors ...</echo>
<delete file="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/connectors/connector-rtfilter.zip" />
<zip destfile="${jboss.deploy.dir}/${rhq.earName}/rhq-downloads/connectors/connector-rtfilter.zip">
<zipfileset dir="${basedir}/../../agent/src/etc/product_connectors">
diff --git a/pom.xml b/pom.xml
index 286bf41..1bc6dd6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,9 @@
<properties>
+ <!-- explictly specify a default encoding to avoid relying on the LANG env var being set correctly -->
+ <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
+
<rhq.groupId>org.rhq</rhq.groupId>
<rhq.product.name>RHQ</rhq.product.name>
<rhq.earName>rhq.ear</rhq.earName>
diff --git a/release.sh b/release.sh
index 6be2ff8..dabd332 100755
--- a/release.sh
+++ b/release.sh
@@ -23,24 +23,21 @@ abort()
usage()
{
EXE=`basename $0`
- abort "Usage: $EXE community|enterprise RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE community 1.3.1 1.3.2-SNAPSHOT"
+ abort "Usage: $EXE RELEASE_VERSION DEVELOPMENT_VERSION" "Example: $EXE 3.0.0.Beta1 3.0.0-SNAPSHOT"
}
# Process command line args.
-if [ "$#" -ne 3 ]; then
+if [ "$#" -ne 2 ]; then
usage
fi
-RELEASE_TYPE="$1"
-if [ "$RELEASE_TYPE" != "community" ] && [ "$RELEASE_TYPE" != "enterprise" ]; then
- usage
-fi
-RELEASE_VERSION="$2"
+RELEASE_VERSION="$1"
TAG_VERSION=`echo $RELEASE_VERSION | sed 's/\./_/g'`
RELEASE_TAG="${TAG_PREFIX}_${TAG_VERSION}"
-DEVELOPMENT_VERSION="$3"
-
+DEVELOPMENT_VERSION="$2"
+BRANCH="master"
+RELEASE_BRANCH="release-$RELEASE_VERSION"
# Make sure JAVA_HOME points to a valid JDK 1.6+ install.
@@ -114,26 +111,27 @@ if ! which mvn >/dev/null 2>&1; then
fi
-# Make sure SUBVERSION_HOME points to a valid Subversion install.
+# Make sure GIT_HOME points to a valid git install.
-if [ -z "$SUBVERSION_HOME" ]; then
- abort "SUBVERSION_HOME environment variable is not set." >&2
-fi
+#if [ -z "$GIT_HOME" ]; then
+# abort "GIT_HOME environment variable is not set." >&2
+#fi
-if [ ! -d "$SUBVERSION_HOME" ]; then
- abort "SUBVERSION_HOME ($SUBVERSION_HOME) does not exist or is not a directory."
-fi
+#if [ ! -d "$GIT_HOME" ]; then
+# abort "GIT_HOME ($GIT_HOME) does not exist or is not a directory."
+#fi
-echo "Prepending $SUBVERSION_HOME/bin to PATH..."
-PATH="$SUBVERSION_HOME/bin:$PATH"
+#echo "Prepending $GIT_HOME/bin to PATH..."
+#PATH="$GIT_HOME/bin:$PATH"
-if ! which svn >/dev/null 2>&1; then
- abort "svn not found in PATH ($PATH) - SUBVERSION_HOME must point to an SVN install dir."
+if ! which git >/dev/null 2>&1; then
+ #abort "git not found in PATH ($PATH) - GIT_HOME must point to a git install dir."
+ abort "git not found in PATH ($PATH)."
fi
-echo "Prepending $SUBVERSION_HOME/lib to LD_LIBRARY_PATH..."
-LD_LIBRARY_PATH="$SUBVERSION_HOME/lib:$LD_LIBRARY_PATH"
-export LD_LIBRARY_PATH
+#echo "Prepending $GIT_HOME/lib to LD_LIBRARY_PATH..."
+#LD_LIBRARY_PATH="$GIT_HOME/lib:$LD_LIBRARY_PATH"
+#export LD_LIBRARY_PATH
# Set additional required env vars.
@@ -143,29 +141,23 @@ export LANG
# Set various local variables.
-
-if [ -z "$BASE_DIR" ]; then
- BASE_DIR="$HOME"
-fi
-WORK_DIR="$BASE_DIR/${PROJECT_NAME}-${RELEASE_TYPE}-${RELEASE_VERSION}"
-
-RELEASE_BRANCH_CHECKOUT_DIR="$WORK_DIR/branch"
-RELEASE_TAG_CHECKOUT_DIR="$WORK_DIR/tag"
-if [ -n "$RELEASE_BRANCH" ]; then
- RELEASE_BRANCH_SVN_URL="$PROJECT_SVN_URL/branches/$RELEASE_BRANCH"
-else
- RELEASE_BRANCH_SVN_URL="$PROJECT_SVN_URL/trunk"
+if [ -n "$HUDSON_URL" ] && [ -n "$WORKSPACE" ]; then
+ echo "We appear to be running in a Hudson job."
+ WORK_DIR="$WORKSPACE"
+elif [ -z "$WORK_DIR" ]; then
+ WORK_DIR="$HOME/release"
fi
-RELEASE_TAG_SVN_URL="$PROJECT_SVN_URL/tags/$RELEASE_TAG"
+cd "$WORK_DIR"
+
-MAVEN_LOCAL_REPO_DIR="$BASE_DIR/release-m2-repo"
-MAVEN_SETTINGS_FILE="$WORK_DIR/settings.xml"
-MAVEN_OPTS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise -Pdist -Prelease"
+MAVEN_LOCAL_REPO_DIR="$WORK_DIR/m2-repository"
+MAVEN_SETTINGS_FILE="$WORK_DIR/m2-settings.xml"
+MAVEN_ARGS="--settings "$MAVEN_SETTINGS_FILE" --debug --errors -Penterprise,dist,release"
if [ "$RELEASE_TYPE" = "enterprise" ]; then
- MAVEN_OPTS="$MAVEN_OPTS -Pojdbc-driver -Dpackage-connectors -Dexclude-webdav"
+ MAVEN_OPTS="$MAVEN_OPTS -Dexclude-webdav"
fi
if [ -z "$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS" ]; then
- MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="24"
+ MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS="12"
fi
@@ -175,7 +167,8 @@ echo
echo "========================= Environment Variables =============================="
echo "JAVA_HOME=$JAVA_HOME"
echo "M2_HOME=$M2_HOME"
-echo "SUBVERSION_HOME=$SUBVERSION_HOME"
+echo "MAVEN_OPTS=$MAVEN_OPTS"
+#echo "GIT_HOME=$GIT_HOME"
echo "PATH=$PATH"
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "LANG=$LANG"
@@ -194,22 +187,22 @@ echo "RELEASE_TAG_CHECKOUT_DIR=$RELEASE_TAG_CHECKOUT_DIR"
echo "MAVEN_LOCAL_REPO_DIR=$MAVEN_LOCAL_REPO_DIR"
echo "MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS=$MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS"
echo "MAVEN_SETTINGS_FILE=$MAVEN_SETTINGS_FILE"
-echo "MAVEN_OPTS=$MAVEN_OPTS"
+echo "MAVEN_ARGS=$MAVEN_ARGS"
echo "============================ Program Versions ================================"
-mvn --version
+java -version
echo
-svn --version | head -2
+git --version
+echo
+mvn --version | head -1
echo "=============================================================================="
echo
-# Clean the Maven local repo.
-
+# Clean the Maven local repo if it hasn't been purged recently.
if [ -f "$MAVEN_LOCAL_REPO_DIR" ]; then
OUTPUT=`find "$MAVEN_LOCAL_REPO_DIR" -maxdepth 0 -mtime $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS`
- if [ -n "$OUTPUT" ]; then
-
- echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than 24 hours - purging it for a clean-clean build..."
+ if [ -n "$OUTPUT" ]; then
+ echo "MAVEN_LOCAL_REPO_DIR ($MAVEN_LOCAL_REPO_DIR) has existed for more than $MAVEN_LOCAL_REPO_PURGE_INTERVAL_HOURS hours - purging it for a clean-clean build..."
rm -rf "$MAVEN_LOCAL_REPO_DIR"
fi
fi
@@ -217,12 +210,12 @@ mkdir -p "$MAVEN_LOCAL_REPO_DIR"
# Create the Maven settings file.
-SETTINGS=${WORK_DIR}/settings.xml
-cat <<EOF >${SETTINGS}
+cat <<EOF >"${MAVEN_SETTINGS_FILE}"
<settings>
<localRepository>$MAVEN_LOCAL_REPO_DIR</localRepository>
<profiles>
+
<profile>
<id>release</id>
<properties>
@@ -247,58 +240,80 @@ cat <<EOF >${SETTINGS}
</properties>
</profile>
- <profile>
- <id>ojdbc-driver</id>
- <repositories>
- <repository>
- <id>internal</id>
- <name>Internal Repository</name>
- <url>http://jon01.qa.atl2.redhat.com:8042/m2-repo/</url>
- </repository>
- </repositories>
- </profile>
</profiles>
</settings>
EOF
+# Clone and/or checkout the source from git.
+CLONE_DIR="$WORK_DIR/rhq"
+if [ -d "$CLONE_DIR" ]; then
+ cd "$CLONE_DIR"
+ git status >/dev/null 2>&1
+ # Note, git 1.6 and earlier returns an exit code of 1, rather than 0, if there are any uncommitted changes,
+ # and git 1.7 returns 0, so we check if the exit code is less than or equal to 1 to determine if $CLONE_DIR
+ # is a git working copy.
+ if [ $? -le 1 ]; then
+ echo "Checking out a clean copy of the master branch..."
+ git checkout "$BRANCH"
+ git reset --hard
+ git clean -dxf
+ else
+ cd "$WORK_DIR"
+ rm -rf "$CLONE_DIR"
+ fi
+fi
+if [ ! -d "$CLONE_DIR" ]; then
+ echo "Cloning the RHQ git repo (this will take about 10-15 minutes)..."
+ git clone ssh://git.fedorahosted.org/git/rhq/rhq.git
+ cd "$CLONE_DIR"
+ git checkout "$BRANCH"
+fi
-# Run a test build before tagging.
-if [ -f "$RELEASE_BRANCH_CHECKOUT_DIR" ]; then
- echo "Purging contents of RELEASE_BRANCH_CHECKOUT_DIR ($RELEASE_BRANCH_CHECKOUT_DIR)..."
- rm -rf "$RELEASE_BRANCH_CHECKOUT_DIR"
-fi
-mkdir -p "$RELEASE_BRANCH_CHECKOUT_DIR"
+# Create a branch for the release, so we don't have to mess with master.
+echo "Creating branch $RELEASE_BRANCH and checking it out..."
+git push origin master:$RELEASE_BRANCH
+git checkout $RELEASE_BRANCH
-echo "Checking out branch source from $RELEASE_BRANCH_SVN_URL to $RELEASE_BRANCH_CHECKOUT_DIR (this will take about 5-10 minutes)..."
-# We only need pom.xml and modules/**. Save some time by not checking out etc/**.
-svn co -N $RELEASE_BRANCH_SVN_URL "$RELEASE_BRANCH_CHECKOUT_DIR"
-cd "$RELEASE_BRANCH_CHECKOUT_DIR"
-svn co $RELEASE_BRANCH_SVN_URL/modules
-echo "Building project to ensure tests pass and to boostrap local Maven repo (this will take about 10-15 minutes)..."
-# This will build everything except the CLI, enforcing Java 5 APIs.
-mvn install $MAVEN_OPTS -Ddbsetup -Djava5.home=$JAVA5_HOME/jre
-if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
-fi
-# Now build the CLI, enforcing Java 6 APIs.
-cd modules/enterprise/remoting/cli
-mvn install $MAVEN_OPTS
+# Run a test build before tagging.
+echo "Building project to ensure tests pass and to bootstrap local Maven repo (this will take about 15-30 minutes)..."
+# TODO: Add -Djava5.home=$JAVA5_HOME/jre to the below mvn command line once the Java6 API usages have been removed from the Deployer class.
+# TODO: Add -Ddbreset to the below mvn command line - this was removed temporarily to speed up development and testing of this release script.
+# TODO: Remove the -Dmaven.test.skip=true - this was added temporarily to speed up development and testing of this release script.
+# NOTE: No need to do a mvn clean, since we just did either a clone or clean checkout above.
+mvn install $MAVEN_ARGS -Dmaven.test.skip=true
if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
+ abort "Test build failed. Please see above Maven output for details, fix any issues, then try again."
fi
-
echo
echo "Test build succeeded!"
-# Tag the release.
+# Clean up the snapshot jars produced by the test build.
+echo "Cleaning up snapshot jars produced by test build..."
+mvn clean $MAVEN_ARGS
+
+
+# Do a dry run of tagging the release.
+echo "Doing a dry run of tagging the release..."
+mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
+EXIT_CODE=$?
+mvn release:clean $MAVEN_ARGS
+if [ "$EXIT_CODE" -ne 0 ]; then
+ abort "Tagging dry run failed. Please see above Maven output for details, fix any issues, then try again."
+fi
+echo
+echo "Tagging dry run succeeded!"
+
+# If the dry run succeeded, tag it for real.
echo "Tagging the release..."
cd "$RELEASE_BRANCH_CHECKOUT_DIR"
-mvn release:prepare $MAVEN_OPTS -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=clean verify $MAVEN_OPTS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=true
-if [ "$?" -ne 0 ]; then
+mvn release:prepare $MAVEN_ARGS --batch-mode -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPMENT_VERSION -Dresume=false -Dtag=$RELEASE_TAG "-DpreparationGoals=install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true" -DdryRun=false
+EXIT_CODE=$?
+mvn release:clean $MAVEN_ARGS
+if [ "$EXIT_CODE" -ne 0 ]; then
abort "Tagging failed. Please see above Maven output for details, fix any issues, then try again."
fi
echo
@@ -306,28 +321,20 @@ echo "Tagging succeeded!"
# Checkout the tag and build it.
-
-if [ -f "$RELEASE_TAG_CHECKOUT_DIR" ]; then
- echo "Purging contents of RELEASE_TAG_CHECKOUT_DIR ($RELEASE_TAG_CHECKOUT_DIR)..."
- rm -rf "$RELEASE_TAG_CHECKOUT_DIR"
-fi
-mkdir -p "$RELEASE_TAG_CHECKOUT_DIR"
-
-echo "Checking out tag source from $RELEASE_TAG_SVN_URL to $RELEASE_TAG_CHECKOUT_DIR (this will take about 5-10 minutes)..."
-svn co -N $RELEASE_TAG_SVN_URL "$RELEASE_TAG_CHECKOUT_DIR"
-cd "$RELEASE_TAG_CHECKOUT_DIR"
-svn co $RELEASE_TAG_SVN_URL/modules
-
-echo "Building release from tag (this will take about 10-15 minutes)..."
-mvn install $MAVEN_OPTS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
+echo "Checking out release tag $RELEASE_TAG..."
+git checkout "$RELEASE_TAG"
+echo "Building release from tag (this will take about 5-10 minutes)..."
+mvn install $MAVEN_ARGS -Dmaven.test.skip=true -Ddbsetup-do-not-check-schema=true
if [ "$?" -ne 0 ]; then
- abort "Build failed. Please see above Maven output for details, fix any issues, then try again."
+ abort "Release build failed. Please see above Maven output for details, fix any issues, then try again."
fi
echo
echo "Release build succeeded!"
+
echo "=========================== Release Info ==============================="
echo "Version: $RELEASE_VERSION"
-echo "Branch SVN URL: $RELEASE_BRANCH_SVN_URL"
-echo "Tag SVN URL: $RELEASE_TAG_SVN_URL"
+echo "Branch URL: $RELEASE_BRANCH_SVN_URL"
+echo "Tag URL: http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=shortlog;h=refs/heads/$R..."
echo "========================================================================"
+
commit 7a433633378b4ca5c7a3782f8dc03902529b7c38
Merge: 81a4324... 2ff1981...
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 10 17:08:37 2010 -0400
Merge branch 'master' into bugfixes
commit 2ff1981ba9a9d33350e7c1ff94b18f4ea08f4134
Merge: 4b74ffa... 29d9806...
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 10 17:08:24 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit ca237042de880ef1ae30ed8836f52de5943ea1b4
Author: Test JON User <test_jon(a)jon01.qa.atl2.redhat.com>
Date: Thu Jun 10 11:53:35 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_Beta1
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..93d64b1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..5c13740 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..6455596 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..5cf2cae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..4508318 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..3f509dc 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..7110509 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..bbc12ff 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..98ce51c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..6b89b88 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..b2cb78a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..fa96b61 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..8cda7a3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..a29a0d7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..f6bacb7 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..7f82785 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..6d0c906 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..58c1427 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..29c7863 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 611eb9d..accfc79 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..e45b090 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..d041d44 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..615c7cd 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..f1a0bcd 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..a23ac44 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..b6cbe86 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..e6ffa5c 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..53de64f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..dd54c81 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..e0314b8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..88abaa3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..186abcd 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..f0d66bd 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6b296df..2a03246 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..76024a6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..0a313de 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index ad4a632..8d2c323 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 9f1a05c..ea7bbe2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 7d884ca..0048059 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 c9df693..1be0f9e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 924973d..fa12736 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 70c948e..4d195b1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 f8a5704..9bd0074 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 cb7123b..45d5d65 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..8c7bbe3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 4a15ba1..88ddf30 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 0033d1b..182cd74 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 61965f2..e7b1e61 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 7451668..f7252c1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..7c9f4a2 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..ae585d5 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..cb608d3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..97bda8a 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..e84e83b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 9c7cc74..acd0162 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 ebdd3da..74bd77e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..b753a3c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..05961a6 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..6afe936 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..f3bcd1a 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f9dde4c..f503f83 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 4a31a97..957bff5 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..d6727c1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..a19a054 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..7f258be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..6990d8d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..2050389 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..59f4000 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..6006518 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..49601df 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..cd5c87b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..30de2b7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..e8de748 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..b9e64ce 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..8e66263 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index de89333..92ffa60 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..fc2fff7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 a0ade77..35cd9c8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..7d27004 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 b3846fa..7a10a08 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..6751eb6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..87fbc54 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..3e4b018 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..e4981cc 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..ae3b48e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..8a95180 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..1b5dfc3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..99c1d26 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1eccfd3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..b01765b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..d1a409d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..3cdb27b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..e882164 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..28d7256 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..fc0e877 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..ca9afd2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..07389ab 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..1e5eea6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..dafecdb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 b3d5e87..2c3729f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..eb41a81 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..bf9156a 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 286bf41..02d6eab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 8b6156443552c3c36ca7fa993ea21e41cf9bdd83
Merge: 8c4a17b... 29d9806...
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Jun 10 15:19:18 2010 +0200
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 81a4324184c0635301998d00529583aad956c5de
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 10 06:12:43 2010 -0400
Fixing more sequence names
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index abf488a..283916e 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2156,7 +2156,7 @@
</statement>
</schema-directSQL>
- <schema-createSequence name="RHQ_ADVISORY_PACKAGE_SEQ" initial="10001" />
+ <schema-createSequence name="RHQ_ADVISORY_PACKAGE_ID_SEQ" initial="10001" />
<schema-directSQL>
<statement>
CREATE TABLE RHQ_ADVISORY_PACKAGE ( ID INTEGER PRIMARY KEY )
@@ -2197,6 +2197,7 @@
<schema-addColumn table="RHQ_CVE" column="NAME" precision="64" columnType="VARCHAR2" />
<schema-alterColumn table="RHQ_CVE" column="NAME" nullable="false" />
+ <schema-createSequence name="RHQ_ADVISORY_CVE_ID_SEQ" initial="10001"/>
<schema-directSQL>
<statement>
CREATE TABLE RHQ_ADVISORY_CVE ( ID INTEGER PRIMARY KEY )
commit 29d9806ebdc791d4646c956ac09b1d8d02f4f9b7
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 10 05:55:10 2010 -0400
BZ-593282: fix operation-based alert notifications for groupAlertDef/alertTemplates
* was incorrectly passing info.resourceId to compute the parameter replacement
* instead, the effective/target resource should have been computed and passed instead
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
index d9996ed..83563e6 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
@@ -55,14 +55,22 @@ public class OperationsSender extends AlertSender {
OperationDefinition operation = info.getOperationDefinition();
Configuration parameters = info.getArguments();
+ Resource targetResource = null;
+ try {
+ targetResource = info.getTargetResource(alert);
+ } catch (Throwable t) {
+ String message = getResultMessage(info, "could not calculate which resources to execute the operation on: "
+ + t.getMessage());
+ return new SenderResult(ResultState.FAILURE, message);
+ }
+
Configuration replacedParameters = null;
try {
if (parameters != null) {
// the parameter-replaced configuration object will be persisted separately from the original
replacedParameters = parameters.deepCopy(false);
- Resource resource = LookupUtil.getResourceManager().getResource(subject, info.resourceId);
- AlertTokenReplacer replacementEngine = new AlertTokenReplacer(alert, operation, resource);
+ AlertTokenReplacer replacementEngine = new AlertTokenReplacer(alert, operation, targetResource);
for (PropertySimple simpleProperty : replacedParameters.getSimpleProperties().values()) {
String temp = simpleProperty.getStringValue();
temp = replacementEngine.replaceTokens(temp);
@@ -76,7 +84,6 @@ public class OperationsSender extends AlertSender {
// Now fire off the operation with no delay and no repetition.
try {
- Resource targetResource = info.getTargetResource(alert);
String description = "Alert operation for " + alert.getAlertDefinition().getName();
ResourceOperationSchedule schedule = LookupUtil.getOperationManager().scheduleResourceOperation(subject,
targetResource.getId(), operation.getName(), 0, 0, 0, 0, replacedParameters, description);
commit 2674a1413dd7f6edaf2f4757d508125fdbabd6f5
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 10 05:18:02 2010 -0400
BZ-599691: automatically reselect the active notification each time "SAVE" is pressed
figure out which one should be selected from the backing store. updating
an alert notification will overwrite all existing notifications with the
latest data. since the ids of the alert notifications are different after
a save-action, but since we know what the updated data, we can select the
correct one by testing for data equality (instead of pk/id equality).
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
index 776ebd1..da26144 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
@@ -194,4 +194,20 @@ public class AlertNotification implements Serializable {
return true;
}
+ public boolean equalsData(AlertNotification other) {
+ boolean results = compare(configuration, other.configuration);
+ if (results) {
+ results = compare(extraConfiguration, other.extraConfiguration);
+ }
+ return results;
+ }
+
+ private boolean compare(Configuration first, Configuration second) {
+ if (first == null) {
+ return (second == null);
+ }
+
+ return first.equals(second);
+ }
+
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java
index 5f44267..82a1e50 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/AlertNotificationsUIBean.java
@@ -195,6 +195,8 @@ public class AlertNotificationsUIBean extends EnterpriseFacesContextUIBean {
if (this.activeNotification != null) {
this.alertNotificationManager.updateAlertNotification(getSubject(), this.contextId,
this.activeNotification);
+
+ reselectActiveNotificationUsingDataComparison(this.activeNotification);
}
} catch (Throwable t) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to save alert notification", t);
@@ -203,6 +205,25 @@ public class AlertNotificationsUIBean extends EnterpriseFacesContextUIBean {
return OUTCOME_SUCCESS;
}
+ public void reselectActiveNotificationUsingDataComparison(AlertNotification notificationWithLatestData) {
+ /*
+ * figure out which one should be selected from the backing store. this method should be called after
+ * executing save() from either the AlertNotificationUIBean or CustomContentUIBean. the effect of updating
+ * an alert notification will overwrite all existing notifications with the latest data. since the ids
+ * of the alert notifications are difference after a save-action, but since we know what the new data should
+ * be based off of the last known state of the activeNotification from above, we can select the correct one
+ * by testing for data equality.
+ */
+ reloadAlertNotifications();
+ for (AlertNotification nextNotification : this.alertNotifications) {
+ if (notificationWithLatestData.equalsData(nextNotification)) {
+ this.activeNotification = nextNotification;
+ this.selectedNotifications.clear();
+ this.selectedNotifications.add(this.activeNotification);
+ }
+ }
+ }
+
public String removeSelected() {
try {
this.alertNotificationManager.removeNotifications(getSubject(), this.contextId, getSelectedIds());
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
index 947158d..324a3de 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
@@ -101,14 +101,20 @@ public class CustomContentUIBean extends EnterpriseFacesContextUIBean {
public String saveConfiguration() {
try {
customBackingBean.saveView();
- AlertNotification notification = null;
+
+ int notificationId = customBackingBean.getAlertNotificationId();
+ AlertNotification notification = alertNotificationManager
+ .getAlertNotification(getSubject(), notificationId);
+
if (customBackingBean.getExtraParameters() != null) {
- int notificationId = customBackingBean.getAlertNotificationId();
- notification = alertNotificationManager.getAlertNotification(getSubject(), notificationId);
notification.setExtraConfiguration(customBackingBean.getExtraParameters());
}
int alertDefinitionId = Integer.parseInt(customBackingBean.getContextId());
alertNotificationManager.updateAlertNotification(getSubject(), alertDefinitionId, notification);
+
+ AlertNotificationsUIBean notificationsUIBean = (AlertNotificationsUIBean) Contexts
+ .lookupInStatefulContexts("alertNotificationsUIBean");
+ notificationsUIBean.reselectActiveNotificationUsingDataComparison(notification);
} catch (Throwable t) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to save alert notification", t);
}
commit 07358c1b42b3c25c44ca7df9ce4b6d9788f3802c
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 10 04:28:43 2010 -0400
cosmetic fix for toString() preview of EmailSender-based notification when no addresses have been entered
diff --git a/modules/enterprise/server/plugins/alert-email/src/main/java/org/rhq/enterprise/server/plugins/alertEmail/EmailSender.java b/modules/enterprise/server/plugins/alert-email/src/main/java/org/rhq/enterprise/server/plugins/alertEmail/EmailSender.java
index 415010b..1bcffe2 100644
--- a/modules/enterprise/server/plugins/alert-email/src/main/java/org/rhq/enterprise/server/plugins/alertEmail/EmailSender.java
+++ b/modules/enterprise/server/plugins/alert-email/src/main/java/org/rhq/enterprise/server/plugins/alertEmail/EmailSender.java
@@ -48,6 +48,9 @@ public class EmailSender extends AlertSender {
@Override
public String previewConfiguration() {
String emailAddressString = alertParameters.getSimpleValue("emailAddress", null);
+ if (emailAddressString == null) {
+ return "<empty>";
+ }
return emailAddressString;
}
}
commit b848dc16492a1c34dc043c9fcd7243e9ac38cfd7
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 10 04:27:59 2010 -0400
BZ-593223: add ability to save/restore operationArguments for operation-based alert senders
'extra parameters' base support:
* augment AlertNotification entity store "extra parameters" configuration object
* add dbsetup/dbupgrade parts for this "extra parameters" element
* modify backend and UI code to do managed loading/persistence of this extra notification info
** update various locations in servar/jar, server/plugin/pc/alert, and portal/war for retrieval/storage
operation-based alert sender improvements:
* modify the load/save algorithms to use "extra parameters" config to retrieve/store arguments for selected operation
* remove enum and legacy referencs to OperationInfo.Constants.ARGUMENTS_CONFIG_ID
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml
index 09823a2..a9ad342 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml
@@ -125,6 +125,7 @@
primarykey="true" required="true" type="INTEGER"/>
<column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
<column name="SENDER_CONFIG_ID" required="false" type="INTEGER" references="RHQ_CONFIG(ID)"/>
+ <column name="EXTRA_CONFIG_ID" required="false" type="INTEGER" references="RHQ_CONFIG(ID)"/>
<column name="SENDER_NAME" required="true" size="100" type="VARCHAR2" />
</table>
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 0a92b99..71aa297 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2063,6 +2063,7 @@
<schemaSpec version="2.70.1">
<schema-addColumn table="RHQ_ALERT_NOTIFICATION" column="SENDER_NAME" precision="100" columnType="VARCHAR2" />
<schema-addColumn table="RHQ_ALERT_NOTIFICATION" column="SENDER_CONFIG_ID" columnType="INTEGER" />
+ <schema-addColumn table="RHQ_ALERT_NOTIFICATION" column="EXTRA_CONFIG_ID" columnType="INTEGER" />
<schema-directSQL>
<statement>
ALTER TABLE RHQ_ALERT_NOTIFICATION
@@ -2071,6 +2072,14 @@
REFERENCES RHQ_CONFIG (ID)
</statement>
</schema-directSQL>
+ <schema-directSQL>
+ <statement>
+ ALTER TABLE RHQ_ALERT_NOTIFICATION
+ ADD CONSTRAINT RHQ_AN_EXTRA_CONFIG_ID_FK
+ FOREIGN KEY (EXTRA_CONFIG_ID)
+ REFERENCES RHQ_CONFIG (ID)
+ </statement>
+ </schema-directSQL>
</schemaSpec>
<schemaSpec version="2.70.2">
<!-- turn first-class notification data into configuration objects for custom alert senders -->
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
index c1010e7..776ebd1 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotification.java
@@ -73,6 +73,10 @@ public class AlertNotification implements Serializable {
@OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private Configuration configuration;
+ @JoinColumn(name = "EXTRA_CONFIG_ID", referencedColumnName = "ID")
+ @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
+ private Configuration extraConfiguration;
+
@Column(name = "SENDER_NAME")
private String senderName;
@@ -92,6 +96,9 @@ public class AlertNotification implements Serializable {
public AlertNotification(AlertNotification source) {
this.configuration = source.configuration.deepCopy(false);
+ if (source.extraConfiguration != null) {
+ this.extraConfiguration = source.extraConfiguration.deepCopy(false);
+ }
this.senderName = source.senderName;
}
@@ -138,6 +145,15 @@ public class AlertNotification implements Serializable {
this.configuration = configuration;
}
+ public Configuration getExtraConfiguration() {
+ return extraConfiguration;
+ }
+
+ public void setExtraConfiguration(Configuration extraConfiguration) {
+ // extra configuration can be null
+ this.extraConfiguration = extraConfiguration;
+ }
+
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
index 8aa82fe..947158d 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/alert/common/CustomContentUIBean.java
@@ -81,6 +81,7 @@ public class CustomContentUIBean extends EnterpriseFacesContextUIBean {
customBackingBean.setContextId(FacesContextUtility.getRequiredRequestParameter("contextId"));
customBackingBean.setContextSubId(FacesContextUtility.getOptionalRequestParameter("contextSubId",
(String) null));
+ customBackingBean.setAlertNotificationId(alertNotificationId);
customBackingBean.loadView();
outjectBean(backingBeanName, customBackingBean);
}
@@ -100,8 +101,14 @@ public class CustomContentUIBean extends EnterpriseFacesContextUIBean {
public String saveConfiguration() {
try {
customBackingBean.saveView();
+ AlertNotification notification = null;
+ if (customBackingBean.getExtraParameters() != null) {
+ int notificationId = customBackingBean.getAlertNotificationId();
+ notification = alertNotificationManager.getAlertNotification(getSubject(), notificationId);
+ notification.setExtraConfiguration(customBackingBean.getExtraParameters());
+ }
int alertDefinitionId = Integer.parseInt(customBackingBean.getContextId());
- alertNotificationManager.updateAlertNotification(getSubject(), alertDefinitionId, null);
+ alertNotificationManager.updateAlertNotification(getSubject(), alertDefinitionId, notification);
} catch (Throwable t) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Failed to save alert notification", t);
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
index 597d1aa..991eb57 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
@@ -57,7 +57,6 @@ import org.rhq.enterprise.server.alert.engine.AlertDefinitionEvent;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.cloud.StatusManagerLocal;
-import org.rhq.enterprise.server.plugin.pc.alert.CustomAlertSenderBackingBean;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
@@ -154,6 +153,9 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
//alertDefinition.getAlerts().size();
for (AlertNotification notification : alertDefinition.getAlertNotifications()) {
notification.getConfiguration().getProperties().size(); // eager load configuration and properties too
+ if (notification.getExtraConfiguration() != null) {
+ notification.getExtraConfiguration().getProperties().size();
+ }
}
return alertDefinition;
@@ -506,26 +508,6 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
alertDefinition.setConditionExpression(BooleanExpression.ANY);
}
- /*
- * Since the algorithm removes all existing notifications and adds them all back,
- * we need to clean up all of them
- */
- for (AlertNotification notification : oldAlertDefinition.getAlertNotifications()) {
- CustomAlertSenderBackingBean customBackingBean = alertNotificationManager.getBackingBeanForSender(
- notification.getSenderName(), notification.getId());
- if (customBackingBean != null) { // alert senders only have customBackingBeans if they have custom UIs
- try {
- customBackingBean.internalCleanup();
- } catch (Throwable t) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Error cleaning up custom alert sender data for " + notification, t);
- } else {
- LOG.error("Error cleaning up custom alert sender data for " + notification);
- }
- }
- }
- }
-
oldAlertDefinition.update(alertDefinition);
if (LOG.isDebugEnabled()) {
LOG.debug("Updating: " + oldAlertDefinition);
@@ -535,8 +517,13 @@ public class AlertDefinitionManagerBean implements AlertDefinitionManagerLocal,
for (AlertNotification nextNotification : oldAlertDefinition.getAlertNotifications()) {
LOG.debug("Notification: " + nextNotification);
LOG.debug("Notification-Configuration: " + nextNotification.getConfiguration().toString(true));
+ if (nextNotification.getExtraConfiguration() != null) {
+ LOG.debug("Notification-Extra-Configuration: "
+ + nextNotification.getExtraConfiguration().toString(true));
+ }
}
}
+
fixRecoveryId(oldAlertDefinition);
AlertDefinition newAlertDefinition = entityManager.merge(oldAlertDefinition);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java
index eb43be0..4419c51 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerBean.java
@@ -40,7 +40,6 @@ import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.alert.AlertDefinitionContext;
import org.rhq.core.domain.alert.notification.AlertNotification;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.plugin.PluginKey;
import org.rhq.enterprise.server.RHQConstants;
@@ -188,14 +187,6 @@ public class AlertNotificationManagerBean implements AlertNotificationManagerLoc
return updated;
}
- public Configuration getAlertPropertiesConfiguration(AlertNotification notification) {
- Configuration config = notification.getConfiguration();
- if (config != null)
- config = config.deepCopy();
-
- return config;
- }
-
public ConfigurationDefinition getConfigurationDefinitionForSender(String shortName) {
AlertSenderPluginManager pluginmanager = alertManager.getAlertPluginManager();
@@ -250,14 +241,9 @@ public class AlertNotificationManagerBean implements AlertNotificationManagerLoc
if (alertNotificationId != null) {
AlertNotification notification = entityManager.find(AlertNotification.class, alertNotificationId);
if (notification != null && bean != null) {
- Configuration config = notification.getConfiguration();
- Configuration config2 = config.deepCopy(true);
-
- bean.setAlertParameters(config2);
- try {
- bean.internalInit();
- } catch (Throwable t) {
- LOG.error("getBackingBean, calling backingBean.internalInit() resulted in " + t.getMessage());
+ bean.setAlertParameters(notification.getConfiguration().deepCopy(true));
+ if (notification.getExtraConfiguration() != null) {
+ bean.setExtraParameters(notification.getExtraConfiguration().deepCopy(true));
}
}
}
@@ -290,6 +276,9 @@ public class AlertNotificationManagerBean implements AlertNotificationManagerLoc
List<AlertNotification> notifications = definition.getAlertNotifications();
for (AlertNotification notification : notifications) {
notification.getConfiguration().getProperties().size(); // eager load
+ if (notification.getExtraConfiguration() != null) {
+ notification.getExtraConfiguration().getProperties().size();
+ }
}
return notifications;
@@ -300,8 +289,9 @@ public class AlertNotificationManagerBean implements AlertNotificationManagerLoc
if (notification == null) {
return null;
}
- if (notification.getConfiguration() != null) { // an "incomplete" notification might not have a config yet
- notification.getConfiguration().getProperties().size(); // eager load the alert properties
+ notification.getConfiguration().getProperties().size(); // eager load the alert properties
+ if (notification.getExtraConfiguration() != null) {
+ notification.getExtraConfiguration().getProperties().size(); // eager load the extra alert properties
}
return notification;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerLocal.java
index 9b2c27f..2597f03 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertNotificationManagerLocal.java
@@ -24,7 +24,6 @@ import javax.ejb.Local;
import org.rhq.core.domain.alert.notification.AlertNotification;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.enterprise.server.plugin.pc.alert.AlertSender;
import org.rhq.enterprise.server.plugin.pc.alert.AlertSenderInfo;
@@ -64,8 +63,6 @@ public interface AlertNotificationManagerLocal {
int purgeOrphanedAlertNotifications();
- public Configuration getAlertPropertiesConfiguration(AlertNotification notification);
-
/**
* Return a list of all available AlertSenders in the system by their shortname.
* @return list of senders.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSender.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSender.java
index 6890ad3..c9a0602 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSender.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSender.java
@@ -51,6 +51,9 @@ public abstract class AlertSender<T extends ServerPluginComponent> {
/** Configuration from the per alert definition parameters */
protected Configuration alertParameters;
+ /** Configuration from the per alert definition parameters */
+ protected Configuration extraParameters;
+
/** Global component holding persistent resources */
protected T pluginComponent;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSenderPluginManager.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSenderPluginManager.java
index bd844ae..dbbd01c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSenderPluginManager.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/AlertSenderPluginManager.java
@@ -31,7 +31,6 @@ import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.plugin.PluginKey;
import org.rhq.core.domain.plugin.ServerPlugin;
import org.rhq.core.util.exception.ThrowableUtil;
-import org.rhq.enterprise.server.alert.AlertNotificationManagerLocal;
import org.rhq.enterprise.server.plugin.ServerPluginsLocal;
import org.rhq.enterprise.server.plugin.pc.AbstractTypeServerPluginContainer;
import org.rhq.enterprise.server.plugin.pc.ServerPluginContext;
@@ -199,31 +198,32 @@ public class AlertSenderPluginManager extends ServerPluginManager {
// Configuration is an uninitialized Proxy and we'd get a LazyInit
// Exception later.
// So lets get it from the SessionBeans
- ServerPluginContext ctx = getServerPluginContext(env);
- AlertNotificationManagerLocal mgr = LookupUtil.getAlertNotificationManager();
-
- sender.alertParameters = mgr.getAlertPropertiesConfiguration(notification);
- if (sender.alertParameters == null) {
- sender.alertParameters = new Configuration(); // Safety measure
- }
- ServerPluginsLocal pluginsMgr = LookupUtil.getServerPlugins();
+ sender.alertParameters = getNewOrCleansed(notification.getConfiguration());
+ sender.extraParameters = getNewOrCleansed(notification.getExtraConfiguration());
+ ServerPluginContext ctx = getServerPluginContext(env);
PluginKey key = ctx.getPluginEnvironment().getPluginKey();
+
+ ServerPluginsLocal pluginsMgr = LookupUtil.getServerPlugins();
ServerPlugin plugin = pluginsMgr.getServerPlugin(key);
plugin = pluginsMgr.getServerPluginRelationships(plugin);
- sender.preferences = plugin.getPluginConfiguration();
- if (sender.preferences == null) {
- sender.preferences = new Configuration(); // Safety measure
- }
-
+ sender.preferences = getNewOrCleansed(plugin.getPluginConfiguration());
sender.pluginComponent = getServerPluginComponent(key.getPluginName());
sender.serverPluginEnvironment = pluginEnvByName.get(senderName);
return sender;
}
+ private Configuration getNewOrCleansed(Configuration config) {
+ if (config == null) {
+ return new Configuration();
+ } else {
+ return config.deepCopy();
+ }
+ }
+
/**
* Return the list of deployed alert sender plug-ins by their <shortName>
* @return List of plugin names
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
index 848765f..0e4f47d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/plugin/pc/alert/CustomAlertSenderBackingBean.java
@@ -33,19 +33,29 @@ public class CustomAlertSenderBackingBean {
/** Configuration from the per alert definition parameters */
protected Configuration alertParameters;
+ protected Configuration extraParameters;
protected Subject webUser;
protected String context;
protected String contextId;
protected String contextSubId;
+ protected Integer alertNotificationId;
public Configuration getAlertParameters() {
return alertParameters;
}
+ public Configuration getExtraParameters() {
+ return extraParameters;
+ }
+
public void setAlertParameters(Configuration alertParameters) {
this.alertParameters = alertParameters;
}
+ public void setExtraParameters(Configuration extraParameters) {
+ this.extraParameters = extraParameters;
+ }
+
public Subject getWebUser() {
return webUser;
}
@@ -78,24 +88,18 @@ public class CustomAlertSenderBackingBean {
this.contextSubId = contextSubId;
}
- public void loadView() {
+ public Integer getAlertNotificationId() {
+ return alertNotificationId;
}
- public void saveView() {
+ public void setAlertNotificationId(Integer alertNotificationId) {
+ this.alertNotificationId = alertNotificationId;
}
- /**
- * This method is called after constructing the bean and injecting the
- * #alertParameters
- */
- public void internalInit() {
+ public void loadView() {
}
- /**
- * This method is called when the alert notification that uses this backing bean
- * is removed, so that the backing bean can do some cleanup work
- */
- public void internalCleanup() {
+ public void saveView() {
}
/**
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
index 82d5a20..0241db5 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
@@ -18,8 +18,7 @@ public class OperationInfo {
RELATIVE_ANCESTOR_TYPE_ID("selection-relative-ancestor-type-id"), //
RELATIVE_DESCENDANT_TYPE_ID("selection-relative-descendant-type-id"), //
RELATIVE_DESCENDANT_NAME("selection-relative-descendant-name"), //
- OPERATION_ID("operation-definition-id"), //
- ARGUMENTS_CONFIG_ID("operation-arguments-configuration-id");
+ OPERATION_ID("operation-definition-id");
public final String propertyName;
@@ -46,14 +45,14 @@ public class OperationInfo {
public final Integer descendantTypeId;
public final String descendantName;
public final Integer operationId;
- public final Integer argumentsConfigurationId;
+ public final Configuration arguments;;
public final String error;
private Subject overlord;
private OperationInfo(String mode, String resourceId, String ancestorTypeId, String descendantTypeId,
- String descendantName, String operationId, String argumentsConfigurationId) {
+ String descendantName, String operationId, Configuration arguments) {
ResourceSelectionMode selectionMode = null;
try {
selectionMode = ResourceSelectionMode.valueOf(mode);
@@ -65,7 +64,7 @@ public class OperationInfo {
this.descendantTypeId = get(descendantTypeId);
this.descendantName = descendantName;
this.operationId = get(operationId);
- this.argumentsConfigurationId = get(argumentsConfigurationId);
+ this.arguments = arguments;
this.error = getErrorString();
}
@@ -97,17 +96,16 @@ public class OperationInfo {
return null;
}
- public static OperationInfo load(Configuration configuration) {
+ public static OperationInfo load(Configuration configuration, Configuration extraConfiguration) {
String mode = get(configuration, Constants.SELECTION_MODE, null);
String resourceId = get(configuration, Constants.SPECIFIC_RESOURCE_ID, null);
String ancestorTypeId = get(configuration, Constants.RELATIVE_ANCESTOR_TYPE_ID, null);
String descendantTypeId = get(configuration, Constants.RELATIVE_DESCENDANT_TYPE_ID, null);
String descendantName = get(configuration, Constants.RELATIVE_DESCENDANT_NAME, null);
String operationId = get(configuration, Constants.OPERATION_ID, null);
- String argumentsConfigurationId = get(configuration, Constants.ARGUMENTS_CONFIG_ID, null);
return new OperationInfo(mode, resourceId, ancestorTypeId, descendantTypeId, descendantName, operationId,
- argumentsConfigurationId);
+ extraConfiguration);
}
private static String get(Configuration configuration, Constants operationInfoConstants, String defaultValue) {
@@ -192,11 +190,6 @@ public class OperationInfo {
}
public Configuration getArguments() {
- if (argumentsConfigurationId == null) {
- return null;
- }
-
- Configuration arguments = LookupUtil.getConfigurationManager().getConfigurationById(argumentsConfigurationId);
return arguments;
}
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
index 2880800..4fbd15b 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsBackingBean.java
@@ -80,13 +80,15 @@ public class OperationsBackingBean extends CustomAlertSenderBackingBean {
selectionModeOptions.put(mode.displayString, mode.name());
}
+ Configuration previousArguments = extraParameters;
+ /*
String argumentsConfigurationId = get(OperationInfo.Constants.ARGUMENTS_CONFIG_ID, null);
- Configuration previousArguments = null;
if (argumentsConfigurationId != null && !argumentsConfigurationId.equals("none")) {
// look it up and then delete it, because the user may switch options in the conditional form, invalidating this
previousArguments = LookupUtil.getConfigurationManager().getConfiguration(getOverlord(),
Integer.parseInt(argumentsConfigurationId));
}
+ */
// load secondList if currentType is selected
if (selectionMode.equals("none")) {
@@ -224,11 +226,6 @@ public class OperationsBackingBean extends CustomAlertSenderBackingBean {
}
@Override
- public void internalCleanup() {
- cleanupPreviousArguments();
- }
-
- @Override
public void saveView() {
set(selectionMode, OperationInfo.Constants.SELECTION_MODE);
set(resourceId, OperationInfo.Constants.SPECIFIC_RESOURCE_ID);
@@ -244,20 +241,28 @@ public class OperationsBackingBean extends CustomAlertSenderBackingBean {
// persist new one
if (operationDefinitionId != null && !operationDefinitionId.equals("none") && argumentsConfiguration != null) {
argumentsConfiguration.setId(0); // force Hibernate to interpret this configuration as a new one
- argumentsConfiguration = persistConfiguration(argumentsConfiguration);
- set(String.valueOf(argumentsConfiguration.getId()), OperationInfo.Constants.ARGUMENTS_CONFIG_ID);
+ //argumentsConfiguration = persistConfiguration(argumentsConfiguration);
+ //set(String.valueOf(argumentsConfiguration.getId()), OperationInfo.Constants.ARGUMENTS_CONFIG_ID);
+ extraParameters = argumentsConfiguration;
+ extraParameters = persistConfiguration(extraParameters);
}
alertParameters = persistConfiguration(alertParameters);
}
private void cleanupPreviousArguments() {
+ /*
String previousArgumentsConfigurationId = get(OperationInfo.Constants.ARGUMENTS_CONFIG_ID, null);
set(null, OperationInfo.Constants.ARGUMENTS_CONFIG_ID);
if (previousArgumentsConfigurationId != null && !previousArgumentsConfigurationId.equals("none")) {
LookupUtil.getConfigurationManager().deleteConfigurations(
Arrays.asList(Integer.parseInt(previousArgumentsConfigurationId)));
}
+ */
+ if (extraParameters != null) {
+ LookupUtil.getConfigurationManager().deleteConfigurations(Arrays.asList(extraParameters.getId()));
+ extraParameters = null;
+ }
}
private boolean set(String value, OperationInfo.Constants operationInfoConstant) {
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
index bf96b15..d9996ed 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
@@ -45,7 +45,7 @@ public class OperationsSender extends AlertSender {
@Override
public SenderResult send(Alert alert) {
- OperationInfo info = OperationInfo.load(alertParameters);
+ OperationInfo info = OperationInfo.load(alertParameters, extraParameters);
if (info.error != null) {
return new SenderResult(ResultState.FAILURE, info.error);
}
@@ -157,7 +157,7 @@ public class OperationsSender extends AlertSender {
@Override
public String previewConfiguration() {
- OperationInfo info = OperationInfo.load(alertParameters);
+ OperationInfo info = OperationInfo.load(alertParameters, extraParameters);
return info.toString();
}
}
commit 49c0ecc1dd04ce695c38ba2610853c36b9afa1cd
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Jun 9 22:17:04 2010 -0400
Fixing misnamed sequence
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index bd67d89..abf488a 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -1828,7 +1828,7 @@
</statement>
</schema-directSQL>
- <schema-createSequence name="RHQ_RHQ_DISTRIBUTION_ID_SEQ" initial="10001" />
+ <schema-createSequence name="RHQ_DISTRIBUTION_ID_SEQ" initial="10001" />
<schema-directSQL>
<statement desc="Creating table RHQ_DISTRIBUTION">
CREATE TABLE RHQ_DISTRIBUTION ( ID INTEGER PRIMARY KEY )
commit 5150bc62f52dfeadbd7ea2ae69889cc001155473
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Jun 9 22:14:55 2010 -0400
Fixing another misnamed sequence
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 6779073..bd67d89 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2187,7 +2187,7 @@
</statement>
</schema-directSQL>
- <schema-createSequence name="RHQ_CVE_SEQ" initial="101" />
+ <schema-createSequence name="RHQ_CVE_ID_SEQ" initial="101" />
<schema-directSQL>
<statement>
CREATE TABLE RHQ_CVE ( ID INTEGER PRIMARY KEY )
commit 821e4fb7fe4a4b4c064af10e3b8557f855808370
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Jun 9 17:29:04 2010 -0400
Revert "Declare more singleton resource types where possible. This simplifies tree" NOT FOR THE BETA!
This reverts commit 8793259d90b5d961ecdb2fba97ac2b2423046824.
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 b0d9364..010de71 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
@@ -570,8 +570,7 @@
name="Tomcat Cache"
discovery="TomcatCacheDiscoveryComponent"
class="TomcatCacheComponent"
- description="A Tomcat Application (WAR) Cache"
- singleton="true">
+ description="A Tomcat Application (WAR) Cache">
<plugin-configuration>
<c:group name="General">
@@ -954,8 +953,7 @@
name="Tomcat User Database"
discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
class="TomcatUserDatabaseComponent"
- description="Tomcat User Database"
- singleton="true">
+ description="Tomcat User Database">
<plugin-configuration>
<c:group name="General">
commit 5d3af0e80bff8bcea32d0a7be730d7bb91b78c30
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Jun 9 16:42:48 2010 -0400
Changing db user for creating test db due to insufficient privileges
diff --git a/modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java b/modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java
index fd6b6d6..12f4ac6 100644
--- a/modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java
+++ b/modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java
@@ -100,7 +100,7 @@ public class DBInstallatonTest {
try {
String dbUrl = "jdbc:postgresql://127.0.0.1:5432/postgres";
- connection = DbUtil.getConnection(dbUrl, USERNAME, PASSWORD);
+ connection = DbUtil.getConnection(dbUrl, "postgres", "postgres");
dropDB = connection.createStatement();
createDB = connection.createStatement();
commit 786e4b0df1d62ddd313a8d6792e65ddfd45a0561
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Jun 9 16:39:25 2010 -0400
Remove another instance of #{CreateNewPackageUIBean.selectedArchitectureId}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
index 990281b..f6af050 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
@@ -81,7 +81,7 @@
<h:panelGroup style="float: right">
<b>Architecture <span class="required-marker-text">*</span></b>
</h:panelGroup>
- <h:panelGroup style="clear: both" rendered="#{CreateNewPackageUIBean.supportsArchitecture}">
+ <h:panelGroup style="clear: both">
<h:selectOneMenu value="#{CreateNewPackageUIBean.selectedArchitectureId}">
<f:selectItems value="#{CreateNewPackageUIBean.architectures}" />
</h:selectOneMenu>
commit f7d1041b0ebe7e0e426bbccdf3bfdff845c4ca9d
Merge: 9390a3c... 4b74ffa...
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Jun 9 16:31:35 2010 -0400
Merge branch 'master' into bugfixes
Conflicts:
modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerDiscoveryComponent.java
modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
diff --cc modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index c2c3ccd,6288fcb..249d249
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@@ -1489,4 -1507,123 +1507,123 @@@ public class ContentManagerBean impleme
return result;
}
- }
+
+ /** Does much of same functionality as createPackageVersion, but uses same named query
+ * as the agent side discovery mechanism, and passes in additional parameters available
+ * when file has been uploaded via the UI.
+ */
+ public PackageVersion getUploadedPackageVersion(String packageName, int packageTypeId, String version,
+ int architectureId, InputStream packageBitStream, Map<String, String> packageUploadDetails,
+ int newResourceTypeId) {
+
+ PackageVersion packageVersion = null;
+
+ //default version to 1.0 if is null, not provided for any reason.
+ if ((version == null) || (version.trim().isEmpty())) {
+ version = "1.0";
+ }
+
+ // See if package version already exists for the resource package
+ Query packageVersionQuery = entityManager.createNamedQuery(PackageVersion.QUERY_FIND_BY_PACKAGE_DETAILS_KEY);
+ packageVersionQuery.setFlushMode(FlushModeType.COMMIT);
+ packageVersionQuery.setParameter("packageName", packageName);
+ PackageType packageType = contentManager.getResourceCreationPackageType(newResourceTypeId);
+ packageVersionQuery.setParameter("packageTypeName", packageType.getName());
+ packageVersionQuery.setParameter("resourceTypeId", newResourceTypeId);
+
+ Architecture architecture = entityManager.find(Architecture.class, architectureId);
+ packageVersionQuery.setParameter("architectureName", architecture.getName());
+ packageVersionQuery.setParameter("version", version);
+
+ // Result of the query should be either 0 or 1
+ List<PackageVersion> existingPackageVersionList = packageVersionQuery.getResultList();
+
+ if (existingPackageVersionList.size() > 0) {
+ packageVersion = existingPackageVersionList.get(0);
+ }
+
+ Package existingPackage = null;
+
+ Query packageQuery = entityManager.createNamedQuery(Package.QUERY_FIND_BY_NAME_PKG_TYPE_ID);
+ packageQuery.setParameter("name", packageName);
+ packageQuery.setParameter("packageTypeId", packageTypeId);
+ List<Package> existingPackageList = packageQuery.getResultList();
+
+ if (existingPackageList.size() == 0) {
+ // If the package doesn't exist, create that here
+ existingPackage = new Package(packageName, packageType);
+ existingPackage = persistOrMergePackageSafely(existingPackage);
+ } else {
+ existingPackage = existingPackageList.get(0);
+ }
+
+ //initialize package version if not already
+ if (packageVersion == null) {
+ packageVersion = new PackageVersion(existingPackage, version, architecture);
+ packageVersion.setDisplayName(existingPackage.getName());
+ entityManager.persist(packageVersion);
+ }
+
+ //get the data and persist/merge packageVersion
+ // PackageBits bits = loadPackageBits(packageBitStream);
+ // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
+ // Write the content into the newly created package version. This may eventually move, but for now we'll just
+ // use the byte array in the package version to store the bits.
+ byte[] packageBits;
+ try {
+ packageBits = StreamUtil.slurp(packageBitStream);
+ } catch (RuntimeException re) {
+ throw new RuntimeException("Error reading in the package file", re);
+ }
+
+ PackageBits bits = new PackageBits();
+ try {
+ bits.setBits(packageBits);
+ } catch (Exception e) {
+ log.error("Error savinf the package.", e);
+ }
+
+ packageVersion.setPackageBits(bits);
+
+ //populate extra details, persist
+ if (packageUploadDetails != null) {
+ packageVersion.setFileCreatedDate(Long.valueOf(packageUploadDetails
+ .get(ContentManagerBean.UPLOAD_FILE_INSTALL_DATE)));
+ packageVersion.setFileName(packageUploadDetails.get(ContentManagerBean.UPLOAD_FILE_NAME));
+ packageVersion.setFileSize(Long.valueOf(packageUploadDetails.get(ContentManagerBean.UPLOAD_FILE_SIZE)));
+ packageVersion.setMD5(packageUploadDetails.get(ContentManagerBean.UPLOAD_MD5));
+ packageVersion.setSHA256(packageUploadDetails.get(ContentManagerBean.UPLOAD_SHA256));
+ }
+ entityManager.merge(packageVersion);
+ entityManager.flush();
+
+ return packageVersion;
+
+ }
+
+ /** Pulls in package bits from the stream. Currently inefficient.
+ *
+ * @param packageBitStream
+ * @return PackageBits ref populated.
+ */
+ private PackageBits loadPackageBits(InputStream packageBitStream) {
+ PackageBits bits = null;
+ // TODO: THIS IS VERY BAD - MUST FIX - DO NOT SLURP THE ENTIRE FILE IN MEMORY - USE JDBC STREAMING
+ // Write the content into the newly created package version. This may eventually move, but for now we'll just
+ // use the byte array in the package version to store the bits.
+ byte[] packageBits;
+ try {
+ packageBits = StreamUtil.slurp(packageBitStream);
+ } catch (RuntimeException re) {
+ throw new RuntimeException("Error reading in the package file", re);
+ }
+
+ bits = new PackageBits();
+ try {
+ bits.setBits(packageBits);
+ } catch (Exception e) {
+ log.error("Error saving the package.", e);
+ }
+ return bits;
+ }
-}
++}
diff --cc modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index e49c8f3,a64f266..1306fcb
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@@ -1388,4 -1507,4 +1507,4 @@@ public class ResourceMetadataManagerBea
return result;
}
--}
++}
commit 4b74ffa62f2db75238882acafbac7d22dfb38a9a
Merge: 9faea4c... 8f86f29...
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Jun 9 15:23:10 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 8c4a17b58f354b4dfe16ea645e322a13c9ddaa3c
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Wed Jun 9 21:03:04 2010 +0200
Fix small typos.
diff --git a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/StandaloneContainer.java b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/StandaloneContainer.java
index 651b627..cb93aa2 100644
--- a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/StandaloneContainer.java
+++ b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/StandaloneContainer.java
@@ -670,25 +670,25 @@ public class StandaloneContainer {
System.err.println("You must first set the resource to work with.");
return;
}
-
+
Configuration config = pc.getInventoryManager().getResourceContainer(resourceId).getResource().getPluginConfiguration();
showConfig(config);
}
-
+
private void showResourceConfig() throws PluginContainerException {
if (resourceId == 0) {
System.err.println("You must first set the resource to work with.");
return;
}
-
+
Configuration config = pc.getConfigurationManager().loadResourceConfiguration(resourceId);
showConfig(config);
}
-
+
private void showConfig(Configuration config) {
System.out.println(config.getProperties());
}
-
+
/**
* List of possible commands
*/
@@ -706,13 +706,13 @@ public class StandaloneContainer {
MEASURE("m", "datatype property+", 2, "Triggers getting metric values. All need to be of the same data type"), //
NATIVE("n", "e | d | s", 1, "Enables/disables native system or shows native status"), //
QUIT("quit", "", 0, "Terminates the application"), //
- RESOURCES("res", "", 0, "Shows the discovere resources"), //
+ RESOURCES("res", "", 0, "Shows the discovered resources"), //
SET("set", "resourceId n", 2,
"Sets the resource id to work with. N can be a number or '$r' as result of last find resource call"), //
WAIT("w", "milliseconds", 1, "Waits the given amount of time"),
P_CONFIG("pc", "", 0, "Shows the plugin configuration of the current resource."),
R_CONFIG("rc", "", 0, "Shows the resource configuration of the current resource.");
-
+
private String abbrev;
private String args;
private String help;
diff --git a/modules/helpers/pluginGen/src/main/resources/component.ftl b/modules/helpers/pluginGen/src/main/resources/component.ftl
index e9961fc..56effd8 100644
--- a/modules/helpers/pluginGen/src/main/resources/component.ftl
+++ b/modules/helpers/pluginGen/src/main/resources/component.ftl
@@ -152,7 +152,7 @@ public class ${props.componentClass} implements ResourceComponent<#if props.pare
/**
- * Tear down the rescource connection
+ * Tear down the resource connection
* @see org.rhq.core.pluginapi.inventory.ResourceComponent#stop()
*/
public void stop() {
commit 8060122dd627e87a12877952fca9bd63d0fda246
Merge: e688d27... 8f86f29...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Jun 9 14:04:27 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 9390a3c3a9a89ddb99c93c1de1f64da3b9eaccf6
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed Jun 9 13:49:41 2010 -0400
Fixing misnamed sequence
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 6ec7660..98b91e7 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2117,7 +2117,7 @@
<!-- RHQ Advisory Representation -->
<schemaSpec version="2.71">
- <schema-createSequence name="RHQ_ADVISORY_SEQ" initial="10001" />
+ <schema-createSequence name="RHQ_ADVISORY_ID_SEQ" initial="10001" />
<schema-directSQL>
<statement desc="Creating table RHQ_ADVISORY">
CREATE TABLE RHQ_ADVISORY ( ID INTEGER PRIMARY KEY )
commit 43b27e590bc6532b0d1436d03ae1675bb555f8ef
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Jun 3 14:23:50 2010 -0400
Adding tests to exercise the installation code that runs the dbsetup/dbupgrade scripts
I am adding these tests in response to https://bugzilla.redhat.com/show_bug.cgi?id=596753.
This commit only adds support for testing against postgresql. I will add support for oracle
in a subsequent commit after I get it installed and configured.
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..958177d 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -126,6 +126,12 @@
<scope>provided</scope> <!-- by JBossAS -->
</dependency>
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
diff --git a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ServerInformation.java b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ServerInformation.java
index 425dc01..d2ed604 100644
--- a/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ServerInformation.java
+++ b/modules/enterprise/gui/installer-war/src/main/java/org/rhq/enterprise/installer/ServerInformation.java
@@ -213,7 +213,7 @@ public class ServerInformation {
*
* @throws Exception if failed to create the new schema for some reason
*/
- public void createNewDatabaseSchema(Properties props) throws Exception {
+ public void createNewDatabaseSchema(Properties props) throws Exception {
if (props == null) {
props = getServerProperties();
}
@@ -542,7 +542,7 @@ public class ServerInformation {
return binDirectory;
}
- private File getLogDirectory() {
+ File getLogDirectory() {
if (logDirectory == null) {
MBeanServer mbs = getMBeanServer();
ObjectName name = ObjectNameFactory.create("jboss.system:type=ServerConfig");
@@ -556,6 +556,10 @@ public class ServerInformation {
return logDirectory;
}
+ void setLogDirectory(File dir) {
+ logDirectory = dir;
+ }
+
public File getDataDirectory() {
if (dataDirectory == null) {
MBeanServer mbs = getMBeanServer();
diff --git a/modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java b/modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java
new file mode 100644
index 0000000..fd6b6d6
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/test/java/org/rhq/enterprise/installer/DBInstallatonTest.java
@@ -0,0 +1,169 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.installer;
+
+import org.rhq.core.db.DbUtil;
+import org.rhq.core.db.setup.DBSetup;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.sql.Connection;
+import java.sql.Statement;
+import java.util.Properties;
+
+/**
+ * The tests in this class exercise the dbsetup/dbupgrade code that is run in the installer. The tests currently only
+ * run against postgresql. Support needs to be added for oracle. The tests do not do any post-install/upgrade
+ * verification at the time of this writing. They just simply exercise the dbsetup/dbupgrade scripts to ensure that
+ * they do not contain any errors.
+ *
+ * @author John Sanda
+ */
+public class DBInstallatonTest {
+
+ final String TEST_DB = "installer_test_db";
+ final String USERNAME = "rhqadmin";
+ final String PASSWORD = "rhqadmin";
+
+ ServerInformation installer = new ServerInformation();
+
+ @BeforeMethod
+ public void prepareForInstallation() throws Exception {
+ initLogDirectory();
+ recreateTestDatabase();
+
+ installer = new ServerInformation();
+ installer.setLogDirectory(getLogDirectory());
+ }
+
+ @Test
+ public void overwriteJON230Schema() throws Exception {
+ installSchemaAndData("2.3.0");
+ installer.createNewDatabaseSchema(getInstallProperties());
+ }
+
+ @Test
+ public void upgradeJON230Schema() throws Exception {
+ installSchemaAndData("2.3.0");
+ installer.upgradeExistingDatabaseSchema(getInstallProperties());
+ }
+
+ @Test
+ public void overwriteJON231Schema() throws Exception {
+ installSchemaAndData("2.3.1");
+ installer.createNewDatabaseSchema(getInstallProperties());
+ }
+
+ @Test
+ public void upgradeJON231Schema() throws Exception {
+ installSchemaAndData("2.3.1");
+ installer.upgradeExistingDatabaseSchema(getInstallProperties());
+ }
+
+ void initLogDirectory() {
+ File logDir = getLogDirectory();
+ if (logDir.exists()) {
+ logDir.delete();
+ }
+ logDir.mkdirs();
+ }
+
+ void recreateTestDatabase() throws Exception {
+ Connection connection = null;
+ Statement dropDB = null;
+ Statement createDB = null;
+
+ try {
+ String dbUrl = "jdbc:postgresql://127.0.0.1:5432/postgres";
+
+ connection = DbUtil.getConnection(dbUrl, USERNAME, PASSWORD);
+ dropDB = connection.createStatement();
+ createDB = connection.createStatement();
+
+ dropDB.execute("drop database if exists " + TEST_DB);
+ createDB.execute("create database " + TEST_DB + " with owner " + USERNAME);
+ } finally {
+ if (dropDB != null) {
+ dropDB.close();
+ }
+ if (createDB != null) {
+ createDB.close();
+ }
+ if (connection != null) {
+ connection.close();
+ }
+ }
+ }
+
+ void installSchemaAndData(String jonVersion) throws Exception {
+ String testDbUrl = getTestDbUrl();
+
+ DBSetup dbsetup = new DBSetup(testDbUrl, USERNAME, PASSWORD);
+ dbsetup.setup(getSchemaFile(jonVersion).getAbsolutePath());
+ dbsetup.setup(getDataFile(jonVersion).getAbsolutePath());
+ }
+
+ File getSchemaFile(String version) throws Exception {
+ URL url = getClass().getResource("db-schema-combined-" + version + ".xml");
+
+ if (url == null) {
+ throw new RuntimeException("Failed to find schema file for version " + version);
+ }
+
+ return new File(url.toURI().getPath());
+ }
+
+ File getDataFile(String version) throws Exception {
+ URL url = getClass().getResource("db-data-combined-" + version + ".xml");
+
+ if (url == null) {
+ throw new RuntimeException("Failed to find data file for version " + version);
+ }
+
+ return new File(url.toURI().getPath());
+ }
+
+ File getLogDirectory() {
+ return new File(System.getProperty("java.io.tmpdir", "rhq/installer-test"));
+ }
+
+ private Properties getInstallProperties() {
+ Properties dbProperties = new Properties();
+ dbProperties.put(ServerProperties.PROP_DATABASE_CONNECTION_URL, getTestDbUrl());
+ dbProperties.put(ServerProperties.PROP_DATABASE_USERNAME, USERNAME);
+ dbProperties.put(ServerProperties.PROP_DATABASE_PASSWORD, PASSWORD);
+ dbProperties.put(ServerProperties.PROP_EMAIL_FROM_ADDRESS, "rhqadmin(a)localhost.com");
+ return dbProperties;
+ }
+
+ private String getTestDbUrl() {
+ return "jdbc:postgresql://127.0.0.1:5432/" + TEST_DB;
+ }
+
+
+
+}
diff --git a/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.0.xml b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.0.xml
new file mode 100644
index 0000000..6d5c0fe
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.0.xml
@@ -0,0 +1,661 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dbsetup name="data.xml">
+<!-- BEGIN: rhq-data.xml -->
+<!-- BEGIN: auth-data.xml -->
+
+
+ <table name="RHQ_PRINCIPAL">
+ <data id="2" PRINCIPAL="rhqadmin" PASSWORD="x1XwrxKuPvYUILiOnOZTLg=="/>
+ </table>
+
+<!-- END: auth-data.xml -->
+<!-- BEGIN: authz-data.xml -->
+
+
+ <!-- the overlord user -->
+ <table name="RHQ_SUBJECT">
+ <data ID="1"
+ NAME="admin"
+ FIRST_NAME="Super"
+ LAST_NAME="User"
+ FSYSTEM="TRUE"/>
+ </table>
+
+ <!-- the initial rhqadmin user -->
+ <table name="RHQ_SUBJECT">
+ <data ID="2"
+ NAME="rhqadmin"
+ FIRST_NAME="RHQ"
+ LAST_NAME="Administrator"
+ EMAIL_ADDRESS="rhqadmin@localhost"
+ FSYSTEM="FALSE"/>
+ </table>
+
+ <!-- Define the system root role which includes our overlord and rhqadmin users -->
+ <table name="RHQ_ROLE">
+ <data ID="1"
+ NAME="Super User Role"
+ FSYSTEM="TRUE"
+ DESCRIPTION="System superuser role that provides full access to everything. This role cannot be modified."/>
+ <data ID="2"
+ NAME="All Resources Role"
+ FSYSTEM="FALSE"
+ DESCRIPTION="Provides full access to all resources in inventory. Cannot modify users, roles or server settings."/>
+ </table>
+
+ <!-- associate the root users with all security permissions -->
+ <table name="RHQ_SUBJECT_ROLE_MAP">
+ <data SUBJECT_ID="1" ROLE_ID="1"/>
+ <!-- overlord user -->
+ <data SUBJECT_ID="2" ROLE_ID="1"/>
+ <!-- rhqadmin user -->
+ </table>
+
+ <table name="RHQ_PERMISSION">
+ <!-- give super-user-role all permissions (resource perms is mainly just to show on view-role page) -->
+ <data ROLE_ID="1" OPERATION="0"/>
+ <!-- Permission.MANAGE_SECURITY -->
+ <data ROLE_ID="1" OPERATION="1"/>
+ <!-- Permission.MANAGE_INVENTORY -->
+ <data ROLE_ID="1" OPERATION="2"/>
+ <!-- Permission.MANAGE_SETTINGS -->
+ <!-- resource permissions start here-->
+ <data ROLE_ID="1" OPERATION="3"/>
+ <!-- Permission.VIEW_RESOURCE -->
+ <data ROLE_ID="1" OPERATION="4"/>
+ <!-- Permission.MODIFY_RESOURCE -->
+ <data ROLE_ID="1" OPERATION="5"/>
+ <!-- Permission.DELETE_RESOURCE -->
+ <data ROLE_ID="1" OPERATION="6"/>
+ <!-- Permission.CREATE_CHILD_RESOURCES -->
+ <data ROLE_ID="1" OPERATION="7"/>
+ <!-- Permission.MANAGE_ALERTS -->
+ <data ROLE_ID="1" OPERATION="8"/>
+ <!-- Permission.MANAGE_MEASUREMENTS -->
+ <data ROLE_ID="1" OPERATION="9"/>
+ <!-- Permission.MANAGE_CONTENT -->
+ <data ROLE_ID="1" OPERATION="10"/>
+ <!-- Permission.CONTROL -->
+ <data ROLE_ID="1" OPERATION="11"/>
+ <!-- Permission.CONFIGURE -->
+
+ <!-- give all-resources-role all permissions (resource perms is mainly just to show on view-role page) -->
+ <data ROLE_ID="2" OPERATION="1"/>
+ <!-- Permission.MANAGE_INVENTORY -->
+ <!-- resource permissions start here-->
+ <data ROLE_ID="2" OPERATION="3"/>
+ <!-- Permission.VIEW_RESOURCE -->
+ <data ROLE_ID="2" OPERATION="4"/>
+ <!-- Permission.MODIFY_RESOURCE -->
+ <data ROLE_ID="2" OPERATION="5"/>
+ <!-- Permission.DELETE_RESOURCE -->
+ <data ROLE_ID="2" OPERATION="6"/>
+ <!-- Permission.CREATE_CHILD_RESOURCES -->
+ <data ROLE_ID="2" OPERATION="7"/>
+ <!-- Permission.MANAGE_ALERTS -->
+ <data ROLE_ID="2" OPERATION="8"/>
+ <!-- Permission.MANAGE_MEASUREMENTS -->
+ <data ROLE_ID="2" OPERATION="9"/>
+ <!-- Permission.MANAGE_CONTENT -->
+ <data ROLE_ID="2" OPERATION="10"/>
+ <!-- Permission.CONTROL -->
+ <data ROLE_ID="2" OPERATION="11"/>
+ <!-- Permission.CONFIGURE -->
+ </table>
+
+<!-- END: authz-data.xml -->
+<!-- BEGIN: sysconfig-data.xml -->
+
+
+ <!--
+ This file contains the seed data for the configuration table.
+ All keys mentioned here should be referenced via the RHQConstants class
+ -->
+ <table name="RHQ_SYSTEM_CONFIG">
+ <data ID="1" PROPERTY_KEY="SERVER_VERSION" PROPERTY_VALUE="1.3.0.GA"
+ DEFAULT_PROPERTY_VALUE="1.3.0.GA" FREAD_ONLY="TRUE"/>
+ <data ID="2" PROPERTY_KEY="DB_SCHEMA_VERSION" PROPERTY_VALUE="2.58"
+ DEFAULT_PROPERTY_VALUE="2.58" FREAD_ONLY="TRUE"/>
+ <data ID="3" PROPERTY_KEY="CAM_JAAS_PROVIDER" PROPERTY_VALUE="JDBC"
+ DEFAULT_PROPERTY_VALUE="JDBC" FREAD_ONLY="FALSE"/>
+ <data ID="4" PROPERTY_KEY="CAM_BASE_URL" PROPERTY_VALUE="http://169.254.213.175:7080/"
+ DEFAULT_PROPERTY_VALUE="http://169.254.213.175:7080/" FREAD_ONLY="FALSE"/>
+ <data ID="9" PROPERTY_KEY="CAM_HELP_USER" PROPERTY_VALUE="web"
+ DEFAULT_PROPERTY_VALUE="web" FREAD_ONLY="FALSE"/>
+ <data ID="10" PROPERTY_KEY="CAM_HELP_PASSWORD" PROPERTY_VALUE="user"
+ DEFAULT_PROPERTY_VALUE="user" FREAD_ONLY="FALSE"/>
+
+ <!-- default LDAP configuration options -->
+ <data ID="11" PROPERTY_KEY="CAM_LDAP_NAMING_FACTORY_INITIAL"
+ PROPERTY_VALUE="com.sun.jndi.ldap.LdapCtxFactory"
+ DEFAULT_PROPERTY_VALUE="com.sun.jndi.ldap.LdapCtxFactory"
+ FREAD_ONLY="FALSE"/>
+ <data ID="12" PROPERTY_KEY="CAM_LDAP_NAMING_PROVIDER_URL"
+ PROPERTY_VALUE="ldap://localhost/"
+ DEFAULT_PROPERTY_VALUE="ldap://localhost/"
+ FREAD_ONLY="FALSE"/>
+ <data ID="13" PROPERTY_KEY="CAM_LDAP_LOGIN_PROPERTY"
+ PROPERTY_VALUE="cn"
+ DEFAULT_PROPERTY_VALUE="cn" FREAD_ONLY="FALSE"/>
+ <data ID="14" PROPERTY_KEY="CAM_LDAP_BASE_DN"
+ PROPERTY_VALUE="o=JBoss,c=US"
+ DEFAULT_PROPERTY_VALUE="o=JBoss,c=US"
+ FREAD_ONLY="FALSE"/>
+ <data ID="15" PROPERTY_KEY="CAM_LDAP_BIND_DN"
+ PROPERTY_VALUE=""
+ DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="16" PROPERTY_KEY="CAM_LDAP_BIND_PW"
+ PROPERTY_VALUE=""
+ DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="17" PROPERTY_KEY="CAM_LDAP_PROTOCOL"
+ PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="18" PROPERTY_KEY="CAM_LDAP_FILTER"
+ PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+
+ <!-- Does this build support Syslog actions? -->
+ <data ID="21" PROPERTY_KEY="CAM_SYSLOG_ACTIONS_ENABLED"
+ PROPERTY_VALUE="false" DEFAULT_PROPERTY_VALUE="false"
+ FREAD_ONLY="FALSE"/>
+ <data ID="23" PROPERTY_KEY="CAM_GUIDE_ENABLED"
+ PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+ <data ID="24" PROPERTY_KEY="CAM_RT_COLLECT_IP_ADDRS"
+ PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+
+ <!-- Default data storage options -->
+ <!-- Default 14 days -->
+ <data ID="26" PROPERTY_KEY="CAM_DATA_PURGE_1H"
+ PROPERTY_VALUE="1209600000" DEFAULT_PROPERTY_VALUE="1209600000"
+ FREAD_ONLY="FALSE"/>
+ <!-- Default 31 days -->
+ <data ID="27" PROPERTY_KEY="CAM_DATA_PURGE_6H"
+ PROPERTY_VALUE="2678400000" DEFAULT_PROPERTY_VALUE="2678400000"
+ FREAD_ONLY="FALSE"/>
+ <!-- Default 1 year -->
+ <data ID="28" PROPERTY_KEY="CAM_DATA_PURGE_1D"
+ PROPERTY_VALUE="31536000000" DEFAULT_PROPERTY_VALUE="31536000000"
+ FREAD_ONLY="FALSE"/>
+
+ <!-- Baseline options -->
+ <!-- How often to calculate, default 3 days; if 0, never calculate them automatically -->
+ <data ID="29" PROPERTY_KEY="CAM_BASELINE_FREQUENCY"
+ PROPERTY_VALUE="259200000" DEFAULT_PROPERTY_VALUE="259200000"
+ FREAD_ONLY="FALSE"/>
+ <!-- How much data to include in the calulation, default 7 days -->
+ <data ID="30" PROPERTY_KEY="CAM_BASELINE_DATASET"
+ PROPERTY_VALUE="604800000" DEFAULT_PROPERTY_VALUE="604800000"
+ FREAD_ONLY="FALSE"/>
+
+ <!-- ID 31 has been deleted -->
+
+ <!-- How often to run database maintainence routines -->
+ <data ID="32" PROPERTY_KEY="CAM_DATA_MAINTENANCE"
+ PROPERTY_VALUE="3600000" DEFAULT_PROPERTY_VALUE="3600000" FREAD_ONLY="FALSE"/>
+
+ <!-- How long to keep RT data around -->
+ <data ID="34" PROPERTY_KEY="RT_DATA_PURGE" PROPERTY_VALUE="2678400000"
+ DEFAULT_PROPERTY_VALUE="2678400000" FREAD_ONLY="FALSE"/>
+
+ <!-- Whether to reindex the data tables nightly -->
+ <data ID="35" PROPERTY_KEY="DATA_REINDEX_NIGHTLY" PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+
+ <!-- How long to keep alerts around -->
+ <data ID="36" PROPERTY_KEY="ALERT_PURGE" PROPERTY_VALUE="2678400000"
+ DEFAULT_PROPERTY_VALUE="2678400000" FREAD_ONLY="FALSE"/>
+
+ <!-- Determines if SNMP actions will be used -->
+ <data ID="37" PROPERTY_KEY="SNMP_VERSION" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="38" PROPERTY_KEY="SNMP_AUTH_PROTOCOL" PROPERTY_VALUE="MD5" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="39" PROPERTY_KEY="SNMP_AUTH_PASSPHRASE" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="40" PROPERTY_KEY="SNMP_PRIV_PASSPHRASE" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="41" PROPERTY_KEY="SNMP_COMMUNITY" PROPERTY_VALUE="public" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="42" PROPERTY_KEY="SNMP_ENGINE_ID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="43" PROPERTY_KEY="SNMP_CONTEXT_NAME" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="44" PROPERTY_KEY="SNMP_SECURITY_NAME" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="45" PROPERTY_KEY="SNMP_TRAP_OID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="46" PROPERTY_KEY="SNMP_ENTERPRISE_OID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="47" PROPERTY_KEY="SNMP_GENERIC_ID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="48" PROPERTY_KEY="SNMP_SPECIFIC_ID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="49" PROPERTY_KEY="SNMP_AGENT_ADDRESS" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="50" PROPERTY_KEY="SNMP_PRIVACY_PROTOCOL" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+
+ <!-- How long to keep events around (1209600000 millis == 14 days) -->
+ <data ID="51" PROPERTY_KEY="EVENT_PURGE" PROPERTY_VALUE="1209600000"
+ DEFAULT_PROPERTY_VALUE="1209600000" FREAD_ONLY="FALSE"/>
+
+ <!-- How long an agent is allowed to be quiet before we consider it down and backfill it -->
+ <data ID="52" PROPERTY_KEY="AGENT_MAX_QUIET_TIME_ALLOWED" PROPERTY_VALUE="900000"
+ DEFAULT_PROPERTY_VALUE="900000" FREAD_ONLY="FALSE"/>
+
+ <!-- Will our server-cloud support agents auto-updating themselves? -->
+ <data ID="53" PROPERTY_KEY="ENABLE_AGENT_AUTO_UPDATE" PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+
+ <!-- How old does a trait have to be in order to get purged -->
+ <data ID="54" PROPERTY_KEY="TRAIT_PURGE" PROPERTY_VALUE="31536000000"
+ DEFAULT_PROPERTY_VALUE="31536000000" FREAD_ONLY="FALSE"/>
+
+ <!-- How old does availability have to be in order to get purged -->
+ <data ID="55" PROPERTY_KEY="AVAILABILITY_PURGE" PROPERTY_VALUE="31536000000"
+ DEFAULT_PROPERTY_VALUE="31536000000" FREAD_ONLY="FALSE"/>
+
+ </table>
+
+<!-- END: sysconfig-data.xml -->
+<!-- BEGIN: measurement-data.xml -->
+
+ <table name="RHQ_NUMBERS">
+ <data i="0"/>
+ <data i="1"/>
+ <data i="2"/>
+ <data i="3"/>
+ <data i="4"/>
+ <data i="5"/>
+ <data i="6"/>
+ <data i="7"/>
+ <data i="8"/>
+ <data i="9"/>
+ <data i="10"/>
+ <data i="11"/>
+ <data i="12"/>
+ <data i="13"/>
+ <data i="14"/>
+ <data i="15"/>
+ <data i="16"/>
+ <data i="17"/>
+ <data i="18"/>
+ <data i="19"/>
+ <data i="20"/>
+ <data i="21"/>
+ <data i="22"/>
+ <data i="23"/>
+ <data i="24"/>
+ <data i="25"/>
+ <data i="26"/>
+ <data i="27"/>
+ <data i="28"/>
+ <data i="29"/>
+ <data i="30"/>
+ <data i="31"/>
+ <data i="32"/>
+ <data i="33"/>
+ <data i="34"/>
+ <data i="35"/>
+ <data i="36"/>
+ <data i="37"/>
+ <data i="38"/>
+ <data i="39"/>
+ <data i="40"/>
+ <data i="41"/>
+ <data i="42"/>
+ <data i="43"/>
+ <data i="44"/>
+ <data i="45"/>
+ <data i="46"/>
+ <data i="47"/>
+ <data i="48"/>
+ <data i="49"/>
+ <data i="50"/>
+ <data i="51"/>
+ <data i="52"/>
+ <data i="53"/>
+ <data i="54"/>
+ <data i="55"/>
+ <data i="56"/>
+ <data i="57"/>
+ <data i="58"/>
+ <data i="59"/>
+ </table>
+
+<!-- END: measurement-data.xml -->
+<!-- BEGIN: content-data.xml -->
+
+ <table name="RHQ_ARCHITECTURE">
+ <data id="1" name="noarch"/>
+ <data id="2" name="i386"/>
+ <data id="3" name="i486"/>
+ <data id="4" name="i586"/>
+ <data id="5" name="i686"/>
+ <data id="6" name="alpha"/>
+ <data id="7" name="alphaev6"/>
+ <data id="8" name="ia64"/>
+ <data id="9" name="sparc"/>
+ <data id="10" name="sparcv9"/>
+ <data id="11" name="sparc64"/>
+ <data id="12" name="src"/>
+ <data id="13" name="s390"/>
+ <data id="14" name="athlon"/>
+ <data id="15" name="s390x"/>
+ <data id="16" name="ppc"/>
+ <data id="17" name="ppc64"/>
+ <data id="18" name="pSeries"/>
+ <data id="19" name="iSeries"/>
+ <data id="20" name="x86_64"/>
+ <data id="21" name="ppc64iseries"/>
+ <data id="22" name="ppc64pseries"/>
+ <data id="23" name="sparc-solaris"/>
+ <data id="24" name="sparc.sun4u-solaris"/>
+ <data id="25" name="tar"/>
+ <data id="26" name="ia32e"/>
+ <data id="27" name="amd64"/>
+ <data id="28" name="i386-solaris"/>
+ <data id="29" name="nosrc"/>
+ <data id="30" name="sparc-solaris-patch"/>
+ <data id="31" name="i386-solaris-patch"/>
+ <data id="32" name="sparc-solaris-patch-cluster"/>
+ <data id="33" name="i386-solaris-patch-cluster"/>
+ <data id="34" name="noarch-solaris"/>
+ <data id="35" name="noarch-solaris-patch"/>
+ <data id="36" name="noarch-solaris-patch-cluster"/>
+ <data id="37" name="solaris-patch"/>
+ <data id="38" name="solaris-patch-cluster"/>
+ </table>
+<!-- END: content-data.xml -->
+<!-- BEGIN: jms-data.xml -->
+
+<!-- the schema matches that which would be automatically created by the JMS subsystem -->
+<!-- see deploy/jms/rhq-jdbc-state-service.xml and rhq-jdbc2-service.xml -->
+<!-- the data must match that which is expected in conf/login-config.xml -->
+
+
+ <table name="JMS_USERS">
+ <data USERID="guest" PASSWD="guest" />
+ </table>
+
+ <table name="JMS_ROLES">
+ <data ROLEID="guest" USERID="guest" />
+ </table>
+
+<!-- END: jms-data.xml -->
+<!-- END: rhq-data.xml -->
+<!-- BEGIN: jon-data.xml -->
+
+
+ <!-- *** metadata *** -->
+
+ <table name="RHQ_CONFIG_DEF">
+ <data ID="101"
+ NAME="JBossASPatchSource"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_DEF">
+ <data ID="101"
+ NAME="url"
+ DISPLAY_NAME="Feed URL"
+ DESCRIPTION="Destination URL of the feed."
+ REQUIRED="1"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="0"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="102"
+ NAME="username"
+ DISPLAY_NAME="Username"
+ DESCRIPTION="Username used to log into the feed."
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="1"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="103"
+ NAME="password"
+ DISPLAY_NAME="Password"
+ DESCRIPTION="Password used to log into the feed."
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="2"
+ SIMPLE_TYPE="PASSWORD"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="104"
+ NAME="active"
+ DISPLAY_NAME="Active"
+ DESCRIPTION="Indicates if this instance should go out and check the feed for packages."
+ REQUIRED="1"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="3"
+ SIMPLE_TYPE="BOOLEAN"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="105"
+ NAME="proxyUrl"
+ DISPLAY_NAME="Proxy URL"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="4"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="106"
+ NAME="proxyPort"
+ DISPLAY_NAME="Proxy Port"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="5"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="107"
+ NAME="proxyUsername"
+ DISPLAY_NAME="Proxy Username"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="6"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="108"
+ NAME="proxyPassword"
+ DISPLAY_NAME="Proxy Password"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="7"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE_TYPE">
+ <data ID="101"
+ NAME="JBossASPatchSource"
+ DISPLAY_NAME="JBoss AS Patch Content Source"
+ DESCRIPTION="This content source retrieves packages from the JBoss CSP RSS feed."
+ PLUGIN_NAME="JBossASPatchContentSourcePlugin"
+ DEFAULT_LAZY_LOAD="1"
+ DEFAULT_DOWNLOAD_MODE="DATABASE"
+ DEFAULT_SYNC_SCHEDULE="0 0 3 * * ?"
+ API_CLASS="org.rhq.enterprise.server.plugins.jboss.software.JBossSoftwareContentSourceAdapter"
+ SOURCE_CONFIG_DEF_ID="101"/>
+ </table>
+
+
+ <!-- Default template for the AS software content source type's configuration -->
+ <table name="RHQ_CONFIG">
+ <data ID="101"
+ VERSION="0"
+ CTIME="1207582412345"
+ MTIME="1207582412345"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROPERTY">
+ <data ID="101"
+ NAME="url"
+ CONFIGURATION_ID="101"
+ STRING_VALUE=""
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="102"
+ NAME="username"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="103"
+ NAME="password"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="104"
+ NAME="proxyUrl"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="105"
+ NAME="proxyPort"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="106"
+ NAME="active"
+ CONFIGURATION_ID="101"
+ STRING_VALUE="true"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="107"
+ NAME="proxyUsername"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="108"
+ NAME="proxyPassword"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ </table>
+
+ <table name="RHQ_CONFIG_TEMPLATE">
+ <data ID="101"
+ NAME="default"
+ DESCRIPTION="the default template"
+ CONFIG_ID="101"
+ CONFIG_DEF_ID="101"
+ IS_DEFAULT="1"/>
+ </table>
+
+ <!-- *** data *** -->
+
+ <table name="RHQ_CONFIG">
+ <data ID="102"
+ VERSION="0"
+ CTIME="1207582412345"
+ MTIME="1207582412345"/>
+ </table>
+
+ <!-- Data for the content source itself -->
+ <table name="RHQ_CONFIG_PROPERTY">
+ <data ID="111"
+ NAME="url"
+ CONFIGURATION_ID="102"
+ STRING_VALUE="https://support.redhat.com/jbossnetwork/restricted/feed/software.html?pro..."
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="112"
+ NAME="username"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="113"
+ NAME="password"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="114"
+ NAME="proxyUrl"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="115"
+ NAME="proxyPort"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="116"
+ NAME="active"
+ CONFIGURATION_ID="102"
+ STRING_VALUE="false"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="117"
+ NAME="proxyUsername"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="118"
+ NAME="proxyPassword"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE">
+ <data ID="101"
+ NAME="JBoss Patch Content Source"
+ DESCRIPTION="All patches provided by the JBoss Subscription"
+ LAZY_LOAD="1"
+ DOWNLOAD_MODE="DATABASE"
+ SYNC_SCHEDULE="0 0 3 * * ?"
+ CREATION_TIME="1207008000"
+ LAST_MODIFIED_TIME="1207008000"
+ CONTENT_SOURCE_TYPE_ID="101"
+ CONFIGURATION_ID="102"/>
+ </table>
+
+ <table name="RHQ_CHANNEL">
+ <data ID="101"
+ NAME="JBoss Patch Channel"
+ DESCRIPTION="JBoss Subscription Channel"
+ CREATION_TIME="1207008000"
+ LAST_MODIFIED_TIME="1207008000"/>
+ </table>
+
+ <table name="RHQ_CHANNEL_CONTENT_SRC_MAP">
+ <data CHANNEL_ID="101"
+ CONTENT_SRC_ID="101"
+ CTIME="1207582412345"/>
+ </table>
+
+<!-- END: jon-data.xml -->
+</dbsetup>
diff --git a/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.1.xml b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.1.xml
new file mode 100644
index 0000000..7d83798
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-data-combined-2.3.1.xml
@@ -0,0 +1,663 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dbsetup name="data.xml">
+<!-- BEGIN: rhq-data.xml -->
+<!-- BEGIN: auth-data.xml -->
+
+
+ <table name="RHQ_PRINCIPAL">
+ <data id="2" PRINCIPAL="rhqadmin" PASSWORD="x1XwrxKuPvYUILiOnOZTLg=="/>
+ </table>
+
+<!-- END: auth-data.xml -->
+<!-- BEGIN: authz-data.xml -->
+
+
+ <!-- the overlord user -->
+ <table name="RHQ_SUBJECT">
+ <data ID="1"
+ NAME="admin"
+ FIRST_NAME="Super"
+ LAST_NAME="User"
+ FSYSTEM="TRUE"/>
+ </table>
+
+ <!-- the initial rhqadmin user -->
+ <table name="RHQ_SUBJECT">
+ <data ID="2"
+ NAME="rhqadmin"
+ FIRST_NAME="RHQ"
+ LAST_NAME="Administrator"
+ EMAIL_ADDRESS="rhqadmin@localhost"
+ FSYSTEM="FALSE"/>
+ </table>
+
+ <!-- Define the system root role which includes our overlord and rhqadmin users -->
+ <table name="RHQ_ROLE">
+ <data ID="1"
+ NAME="Super User Role"
+ FSYSTEM="TRUE"
+ DESCRIPTION="System superuser role that provides full access to everything. This role cannot be modified."/>
+ <data ID="2"
+ NAME="All Resources Role"
+ FSYSTEM="FALSE"
+ DESCRIPTION="Provides full access to all resources in inventory. Cannot modify users, roles or server settings."/>
+ </table>
+
+ <!-- associate the root users with all security permissions -->
+ <table name="RHQ_SUBJECT_ROLE_MAP">
+ <data SUBJECT_ID="1" ROLE_ID="1"/>
+ <!-- overlord user -->
+ <data SUBJECT_ID="2" ROLE_ID="1"/>
+ <!-- rhqadmin user -->
+ </table>
+
+ <table name="RHQ_PERMISSION">
+ <!-- give super-user-role all permissions (resource perms is mainly just to show on view-role page) -->
+ <data ROLE_ID="1" OPERATION="0"/>
+ <!-- Permission.MANAGE_SECURITY -->
+ <data ROLE_ID="1" OPERATION="1"/>
+ <!-- Permission.MANAGE_INVENTORY -->
+ <data ROLE_ID="1" OPERATION="2"/>
+ <!-- Permission.MANAGE_SETTINGS -->
+ <!-- resource permissions start here-->
+ <data ROLE_ID="1" OPERATION="3"/>
+ <!-- Permission.VIEW_RESOURCE -->
+ <data ROLE_ID="1" OPERATION="4"/>
+ <!-- Permission.MODIFY_RESOURCE -->
+ <data ROLE_ID="1" OPERATION="5"/>
+ <!-- Permission.DELETE_RESOURCE -->
+ <data ROLE_ID="1" OPERATION="6"/>
+ <!-- Permission.CREATE_CHILD_RESOURCES -->
+ <data ROLE_ID="1" OPERATION="7"/>
+ <!-- Permission.MANAGE_ALERTS -->
+ <data ROLE_ID="1" OPERATION="8"/>
+ <!-- Permission.MANAGE_MEASUREMENTS -->
+ <data ROLE_ID="1" OPERATION="9"/>
+ <!-- Permission.MANAGE_CONTENT -->
+ <data ROLE_ID="1" OPERATION="10"/>
+ <!-- Permission.CONTROL -->
+ <data ROLE_ID="1" OPERATION="11"/>
+ <!-- Permission.CONFIGURE -->
+
+ <!-- give all-resources-role all permissions (resource perms is mainly just to show on view-role page) -->
+ <data ROLE_ID="2" OPERATION="1"/>
+ <!-- Permission.MANAGE_INVENTORY -->
+ <!-- resource permissions start here-->
+ <data ROLE_ID="2" OPERATION="3"/>
+ <!-- Permission.VIEW_RESOURCE -->
+ <data ROLE_ID="2" OPERATION="4"/>
+ <!-- Permission.MODIFY_RESOURCE -->
+ <data ROLE_ID="2" OPERATION="5"/>
+ <!-- Permission.DELETE_RESOURCE -->
+ <data ROLE_ID="2" OPERATION="6"/>
+ <!-- Permission.CREATE_CHILD_RESOURCES -->
+ <data ROLE_ID="2" OPERATION="7"/>
+ <!-- Permission.MANAGE_ALERTS -->
+ <data ROLE_ID="2" OPERATION="8"/>
+ <!-- Permission.MANAGE_MEASUREMENTS -->
+ <data ROLE_ID="2" OPERATION="9"/>
+ <!-- Permission.MANAGE_CONTENT -->
+ <data ROLE_ID="2" OPERATION="10"/>
+ <!-- Permission.CONTROL -->
+ <data ROLE_ID="2" OPERATION="11"/>
+ <!-- Permission.CONFIGURE -->
+ </table>
+
+<!-- END: authz-data.xml -->
+<!-- BEGIN: sysconfig-data.xml -->
+
+
+ <!--
+ This file contains the seed data for the configuration table.
+ All keys mentioned here should be referenced via the RHQConstants class
+ -->
+ <table name="RHQ_SYSTEM_CONFIG">
+ <data ID="1" PROPERTY_KEY="SERVER_VERSION" PROPERTY_VALUE="1.3.1.GA"
+ DEFAULT_PROPERTY_VALUE="1.3.1.GA" FREAD_ONLY="TRUE"/>
+ <data ID="2" PROPERTY_KEY="DB_SCHEMA_VERSION" PROPERTY_VALUE="2.59"
+ DEFAULT_PROPERTY_VALUE="2.59" FREAD_ONLY="TRUE"/>
+ <data ID="3" PROPERTY_KEY="CAM_JAAS_PROVIDER" PROPERTY_VALUE="JDBC"
+ DEFAULT_PROPERTY_VALUE="JDBC" FREAD_ONLY="FALSE"/>
+ <data ID="4" PROPERTY_KEY="CAM_BASE_URL" PROPERTY_VALUE="http://169.254.222.60:7080/"
+ DEFAULT_PROPERTY_VALUE="http://169.254.222.60:7080/" FREAD_ONLY="FALSE"/>
+ <data ID="9" PROPERTY_KEY="CAM_HELP_USER" PROPERTY_VALUE="web"
+ DEFAULT_PROPERTY_VALUE="web" FREAD_ONLY="FALSE"/>
+ <data ID="10" PROPERTY_KEY="CAM_HELP_PASSWORD" PROPERTY_VALUE="user"
+ DEFAULT_PROPERTY_VALUE="user" FREAD_ONLY="FALSE"/>
+
+ <!-- default LDAP configuration options -->
+ <data ID="11" PROPERTY_KEY="CAM_LDAP_NAMING_FACTORY_INITIAL"
+ PROPERTY_VALUE="com.sun.jndi.ldap.LdapCtxFactory"
+ DEFAULT_PROPERTY_VALUE="com.sun.jndi.ldap.LdapCtxFactory"
+ FREAD_ONLY="FALSE"/>
+ <data ID="12" PROPERTY_KEY="CAM_LDAP_NAMING_PROVIDER_URL"
+ PROPERTY_VALUE="ldap://localhost/"
+ DEFAULT_PROPERTY_VALUE="ldap://localhost/"
+ FREAD_ONLY="FALSE"/>
+ <data ID="13" PROPERTY_KEY="CAM_LDAP_LOGIN_PROPERTY"
+ PROPERTY_VALUE="cn"
+ DEFAULT_PROPERTY_VALUE="cn" FREAD_ONLY="FALSE"/>
+ <data ID="14" PROPERTY_KEY="CAM_LDAP_BASE_DN"
+ PROPERTY_VALUE="o=JBoss,c=US"
+ DEFAULT_PROPERTY_VALUE="o=JBoss,c=US"
+ FREAD_ONLY="FALSE"/>
+ <data ID="15" PROPERTY_KEY="CAM_LDAP_BIND_DN"
+ PROPERTY_VALUE=""
+ DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="16" PROPERTY_KEY="CAM_LDAP_BIND_PW"
+ PROPERTY_VALUE=""
+ DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="17" PROPERTY_KEY="CAM_LDAP_PROTOCOL"
+ PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="18" PROPERTY_KEY="CAM_LDAP_FILTER"
+ PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+
+ <!-- Does this build support Syslog actions? -->
+ <data ID="21" PROPERTY_KEY="CAM_SYSLOG_ACTIONS_ENABLED"
+ PROPERTY_VALUE="false" DEFAULT_PROPERTY_VALUE="false"
+ FREAD_ONLY="FALSE"/>
+ <data ID="23" PROPERTY_KEY="CAM_GUIDE_ENABLED"
+ PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+ <data ID="24" PROPERTY_KEY="CAM_RT_COLLECT_IP_ADDRS"
+ PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+
+ <!-- Default data storage options -->
+ <!-- Default 14 days -->
+ <data ID="26" PROPERTY_KEY="CAM_DATA_PURGE_1H"
+ PROPERTY_VALUE="1209600000" DEFAULT_PROPERTY_VALUE="1209600000"
+ FREAD_ONLY="FALSE"/>
+ <!-- Default 31 days -->
+ <data ID="27" PROPERTY_KEY="CAM_DATA_PURGE_6H"
+ PROPERTY_VALUE="2678400000" DEFAULT_PROPERTY_VALUE="2678400000"
+ FREAD_ONLY="FALSE"/>
+ <!-- Default 1 year -->
+ <data ID="28" PROPERTY_KEY="CAM_DATA_PURGE_1D"
+ PROPERTY_VALUE="31536000000" DEFAULT_PROPERTY_VALUE="31536000000"
+ FREAD_ONLY="FALSE"/>
+
+ <!-- Baseline options -->
+ <!-- How often to calculate, default 3 days; if 0, never calculate them automatically -->
+ <data ID="29" PROPERTY_KEY="CAM_BASELINE_FREQUENCY"
+ PROPERTY_VALUE="259200000" DEFAULT_PROPERTY_VALUE="259200000"
+ FREAD_ONLY="FALSE"/>
+ <!-- How much data to include in the calulation, default 7 days -->
+ <data ID="30" PROPERTY_KEY="CAM_BASELINE_DATASET"
+ PROPERTY_VALUE="604800000" DEFAULT_PROPERTY_VALUE="604800000"
+ FREAD_ONLY="FALSE"/>
+
+ <!-- ID 31 has been deleted -->
+
+ <!-- How often to run database maintainence routines -->
+ <data ID="32" PROPERTY_KEY="CAM_DATA_MAINTENANCE"
+ PROPERTY_VALUE="3600000" DEFAULT_PROPERTY_VALUE="3600000" FREAD_ONLY="FALSE"/>
+
+ <!-- How long to keep RT data around -->
+ <data ID="34" PROPERTY_KEY="RT_DATA_PURGE" PROPERTY_VALUE="2678400000"
+ DEFAULT_PROPERTY_VALUE="2678400000" FREAD_ONLY="FALSE"/>
+
+ <!-- Whether to reindex the data tables nightly -->
+ <data ID="35" PROPERTY_KEY="DATA_REINDEX_NIGHTLY" PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+
+ <!-- How long to keep alerts around -->
+ <data ID="36" PROPERTY_KEY="ALERT_PURGE" PROPERTY_VALUE="2678400000"
+ DEFAULT_PROPERTY_VALUE="2678400000" FREAD_ONLY="FALSE"/>
+
+ <!-- Determines if SNMP actions will be used -->
+ <data ID="37" PROPERTY_KEY="SNMP_VERSION" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="38" PROPERTY_KEY="SNMP_AUTH_PROTOCOL" PROPERTY_VALUE="MD5" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="39" PROPERTY_KEY="SNMP_AUTH_PASSPHRASE" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="40" PROPERTY_KEY="SNMP_PRIV_PASSPHRASE" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="41" PROPERTY_KEY="SNMP_COMMUNITY" PROPERTY_VALUE="public" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="42" PROPERTY_KEY="SNMP_ENGINE_ID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="43" PROPERTY_KEY="SNMP_CONTEXT_NAME" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="44" PROPERTY_KEY="SNMP_SECURITY_NAME" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="45" PROPERTY_KEY="SNMP_TRAP_OID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="46" PROPERTY_KEY="SNMP_ENTERPRISE_OID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+ <data ID="47" PROPERTY_KEY="SNMP_GENERIC_ID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="48" PROPERTY_KEY="SNMP_SPECIFIC_ID" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="49" PROPERTY_KEY="SNMP_AGENT_ADDRESS" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE="" FREAD_ONLY="FALSE"/>
+ <data ID="50" PROPERTY_KEY="SNMP_PRIVACY_PROTOCOL" PROPERTY_VALUE="" DEFAULT_PROPERTY_VALUE=""
+ FREAD_ONLY="FALSE"/>
+
+ <!-- How long to keep events around (1209600000 millis == 14 days) -->
+ <data ID="51" PROPERTY_KEY="EVENT_PURGE" PROPERTY_VALUE="1209600000"
+ DEFAULT_PROPERTY_VALUE="1209600000" FREAD_ONLY="FALSE"/>
+
+ <!-- How long an agent is allowed to be quiet before we consider it down and backfill it -->
+ <data ID="52" PROPERTY_KEY="AGENT_MAX_QUIET_TIME_ALLOWED" PROPERTY_VALUE="900000"
+ DEFAULT_PROPERTY_VALUE="900000" FREAD_ONLY="FALSE"/>
+
+ <!-- Will our server-cloud support agents auto-updating themselves? -->
+ <data ID="53" PROPERTY_KEY="ENABLE_AGENT_AUTO_UPDATE" PROPERTY_VALUE="true"
+ DEFAULT_PROPERTY_VALUE="true" FREAD_ONLY="FALSE"/>
+
+ <!-- How old does a trait have to be in order to get purged -->
+ <data ID="54" PROPERTY_KEY="TRAIT_PURGE" PROPERTY_VALUE="31536000000"
+ DEFAULT_PROPERTY_VALUE="31536000000" FREAD_ONLY="FALSE"/>
+
+ <!-- How old does availability have to be in order to get purged -->
+ <data ID="55" PROPERTY_KEY="AVAILABILITY_PURGE" PROPERTY_VALUE="31536000000"
+ DEFAULT_PROPERTY_VALUE="31536000000" FREAD_ONLY="FALSE"/>
+
+ </table>
+
+<!-- END: sysconfig-data.xml -->
+<!-- BEGIN: measurement-data.xml -->
+
+ <table name="RHQ_NUMBERS">
+ <data i="0"/>
+ <data i="1"/>
+ <data i="2"/>
+ <data i="3"/>
+ <data i="4"/>
+ <data i="5"/>
+ <data i="6"/>
+ <data i="7"/>
+ <data i="8"/>
+ <data i="9"/>
+ <data i="10"/>
+ <data i="11"/>
+ <data i="12"/>
+ <data i="13"/>
+ <data i="14"/>
+ <data i="15"/>
+ <data i="16"/>
+ <data i="17"/>
+ <data i="18"/>
+ <data i="19"/>
+ <data i="20"/>
+ <data i="21"/>
+ <data i="22"/>
+ <data i="23"/>
+ <data i="24"/>
+ <data i="25"/>
+ <data i="26"/>
+ <data i="27"/>
+ <data i="28"/>
+ <data i="29"/>
+ <data i="30"/>
+ <data i="31"/>
+ <data i="32"/>
+ <data i="33"/>
+ <data i="34"/>
+ <data i="35"/>
+ <data i="36"/>
+ <data i="37"/>
+ <data i="38"/>
+ <data i="39"/>
+ <data i="40"/>
+ <data i="41"/>
+ <data i="42"/>
+ <data i="43"/>
+ <data i="44"/>
+ <data i="45"/>
+ <data i="46"/>
+ <data i="47"/>
+ <data i="48"/>
+ <data i="49"/>
+ <data i="50"/>
+ <data i="51"/>
+ <data i="52"/>
+ <data i="53"/>
+ <data i="54"/>
+ <data i="55"/>
+ <data i="56"/>
+ <data i="57"/>
+ <data i="58"/>
+ <data i="59"/>
+ </table>
+
+<!-- END: measurement-data.xml -->
+<!-- BEGIN: content-data.xml -->
+
+ <table name="RHQ_ARCHITECTURE">
+ <data id="1" name="noarch"/>
+ <data id="2" name="i386"/>
+ <data id="3" name="i486"/>
+ <data id="4" name="i586"/>
+ <data id="5" name="i686"/>
+ <data id="6" name="alpha"/>
+ <data id="7" name="alphaev6"/>
+ <data id="8" name="ia64"/>
+ <data id="9" name="sparc"/>
+ <data id="10" name="sparcv9"/>
+ <data id="11" name="sparc64"/>
+ <data id="12" name="src"/>
+ <data id="13" name="s390"/>
+ <data id="14" name="athlon"/>
+ <data id="15" name="s390x"/>
+ <data id="16" name="ppc"/>
+ <data id="17" name="ppc64"/>
+ <data id="18" name="pSeries"/>
+ <data id="19" name="iSeries"/>
+ <data id="20" name="x86_64"/>
+ <data id="21" name="ppc64iseries"/>
+ <data id="22" name="ppc64pseries"/>
+ <data id="23" name="sparc-solaris"/>
+ <data id="24" name="sparc.sun4u-solaris"/>
+ <data id="25" name="tar"/>
+ <data id="26" name="ia32e"/>
+ <data id="27" name="amd64"/>
+ <data id="28" name="i386-solaris"/>
+ <data id="29" name="nosrc"/>
+ <data id="30" name="sparc-solaris-patch"/>
+ <data id="31" name="i386-solaris-patch"/>
+ <data id="32" name="sparc-solaris-patch-cluster"/>
+ <data id="33" name="i386-solaris-patch-cluster"/>
+ <data id="34" name="noarch-solaris"/>
+ <data id="35" name="noarch-solaris-patch"/>
+ <data id="36" name="noarch-solaris-patch-cluster"/>
+ <data id="37" name="solaris-patch"/>
+ <data id="38" name="solaris-patch-cluster"/>
+ </table>
+<!-- END: content-data.xml -->
+<!-- BEGIN: jms-data.xml -->
+
+<!-- the schema matches that which would be automatically created by the JMS subsystem -->
+<!-- see deploy/jms/rhq-jdbc-state-service.xml and rhq-jdbc2-service.xml -->
+<!-- the data must match that which is expected in conf/login-config.xml -->
+
+
+ <table name="JMS_USERS">
+ <data USERID="guest" PASSWD="guest" />
+ </table>
+
+ <table name="JMS_ROLES">
+ <data ROLEID="guest" USERID="guest" />
+ </table>
+
+<!-- END: jms-data.xml -->
+<!-- END: rhq-data.xml -->
+<!-- BEGIN: jon-data.xml -->
+
+
+ <!-- *** metadata *** -->
+
+ <table name="RHQ_CONFIG_DEF">
+ <data ID="101"
+ NAME="JBossASPatchSource"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_DEF">
+ <data ID="101"
+ NAME="url"
+ DISPLAY_NAME="Feed URL"
+ DESCRIPTION="Destination URL of the feed."
+ REQUIRED="1"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="0"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="102"
+ NAME="username"
+ DISPLAY_NAME="Username"
+ DESCRIPTION="Username used to log into the feed."
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="1"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="103"
+ NAME="password"
+ DISPLAY_NAME="Password"
+ DESCRIPTION="Password used to log into the feed."
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="2"
+ SIMPLE_TYPE="PASSWORD"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="104"
+ NAME="active"
+ DISPLAY_NAME="Active"
+ DESCRIPTION="Indicates if this instance should go out and check the feed for packages."
+ REQUIRED="1"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="3"
+ SIMPLE_TYPE="BOOLEAN"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="105"
+ NAME="proxyUrl"
+ DISPLAY_NAME="Proxy URL"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="4"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="106"
+ NAME="proxyPort"
+ DISPLAY_NAME="Proxy Port"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="5"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="107"
+ NAME="proxyUsername"
+ DISPLAY_NAME="Proxy Username"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="6"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ <data ID="108"
+ NAME="proxyPassword"
+ DISPLAY_NAME="Proxy Password"
+ REQUIRED="0"
+ READONLY="0"
+ SUMMARY="0"
+ ACTIVATION_POLICY="IMMEDIATE"
+ ORDER_INDEX="7"
+ SIMPLE_TYPE="STRING"
+ ALLOW_CUSTOM_ENUM_VALUE="0"
+ DTYPE="property"
+ CONFIG_DEF_ID="101"
+ UNITS="0"/>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE_TYPE">
+ <data ID="101"
+ NAME="JBossASPatchSource"
+ DISPLAY_NAME="JBoss CSP Patch Content Source"
+ DESCRIPTION="This content source retrieves packages from the JBoss CSP RSS feed."
+ PLUGIN_NAME="JBossASPatchContentSourcePlugin"
+ DEFAULT_LAZY_LOAD="1"
+ DEFAULT_DOWNLOAD_MODE="FILESYSTEM"
+ DEFAULT_SYNC_SCHEDULE="0 0 3 * * ?"
+ API_CLASS="org.rhq.enterprise.server.plugins.jboss.software.JBossSoftwareContentSourceAdapter"
+ SOURCE_CONFIG_DEF_ID="101"/>
+ </table>
+
+
+ <!-- Default template for the AS software content source type's configuration -->
+ <table name="RHQ_CONFIG">
+ <data ID="101"
+ VERSION="0"
+ CTIME="1267099200000"
+ MTIME="1267099200000"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROPERTY">
+ <data ID="101"
+ NAME="url"
+ CONFIGURATION_ID="101"
+ STRING_VALUE=""
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="102"
+ NAME="username"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="103"
+ NAME="password"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="104"
+ NAME="proxyUrl"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="105"
+ NAME="proxyPort"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="106"
+ NAME="active"
+ CONFIGURATION_ID="101"
+ STRING_VALUE="true"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="107"
+ NAME="proxyUsername"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="108"
+ NAME="proxyPassword"
+ CONFIGURATION_ID="101"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ </table>
+
+ <table name="RHQ_CONFIG_TEMPLATE">
+ <data ID="101"
+ NAME="default"
+ DESCRIPTION="the default template"
+ CONFIG_ID="101"
+ CONFIG_DEF_ID="101"
+ IS_DEFAULT="1"/>
+ </table>
+
+
+ <!-- *** data *** -->
+
+ <table name="RHQ_CONFIG">
+ <data ID="102"
+ VERSION="0"
+ CTIME="1267099200000"
+ MTIME="1267099200000"/>
+ </table>
+
+ <!-- Data for the content source itself -->
+ <table name="RHQ_CONFIG_PROPERTY">
+ <data ID="111"
+ NAME="url"
+ CONFIGURATION_ID="102"
+ STRING_VALUE="https://support.redhat.com/jbossnetwork/restricted/feed/software.html?pro..."
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="112"
+ NAME="username"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="113"
+ NAME="password"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="114"
+ NAME="proxyUrl"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="115"
+ NAME="proxyPort"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="116"
+ NAME="active"
+ CONFIGURATION_ID="102"
+ STRING_VALUE="false"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="117"
+ NAME="proxyUsername"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ <data ID="118"
+ NAME="proxyPassword"
+ CONFIGURATION_ID="102"
+ OVERRIDE="0"
+ DTYPE="property"/>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE">
+ <data ID="101"
+ NAME="JBoss Patch Content Source"
+ DESCRIPTION="All patches provided by the JBoss Subscription"
+ LAZY_LOAD="1"
+ DOWNLOAD_MODE="FILESYSTEM"
+ SYNC_SCHEDULE="0 0 3 * * ?"
+ CREATION_TIME="1267099200000"
+ LAST_MODIFIED_TIME="1267099200000"
+ CONTENT_SOURCE_TYPE_ID="101"
+ CONFIGURATION_ID="102"/>
+ </table>
+
+ <table name="RHQ_CHANNEL">
+ <data ID="101"
+ NAME="JBoss Patch Channel"
+ DESCRIPTION="JBoss Subscription Channel"
+ CREATION_TIME="1267099200000"
+ LAST_MODIFIED_TIME="1267099200000"/>
+ </table>
+
+ <table name="RHQ_CHANNEL_CONTENT_SRC_MAP">
+ <data CHANNEL_ID="101"
+ CONTENT_SRC_ID="101"
+ CTIME="1267099200000"/>
+ </table>
+
+
+<!-- END: jon-data.xml -->
+</dbsetup>
diff --git a/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.0.xml b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.0.xml
new file mode 100644
index 0000000..923c0b5
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.0.xml
@@ -0,0 +1,1916 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dbsetup name="schema">
+<!-- BEGIN: config-schema.xml -->
+
+
+ <!-- Definition or Metadata tables -->
+
+ <table name="RHQ_CONFIG_DEF">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="250"/>
+ <column name="VERSION" type="VARCHAR2" required="false" size="50"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_GRP_DEF">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="250"/>
+ <column name="DEFAULT_HIDDEN" type="BOOLEAN" required="false"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_DEF">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="1000"/>
+ <column name="DEFAULT_VALUE" type="VARCHAR2" required="false" size="2000"/>
+ <column name="REQUIRED" type="BOOLEAN" required="false"/>
+ <column name="READONLY" type="BOOLEAN" required="false"/>
+ <column name="SUMMARY" type="BOOLEAN" required="false"/>
+ <column name="ACTIVATION_POLICY" type="VARCHAR2" required="false" size="20"/>
+ <column name="GROUP_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_GRP_DEF"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ <column name="VERSION" type="VARCHAR2" required="false" size="50"/>
+ <column name="PARENT_MAP_DEFINITION_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ <column name="PARENT_LIST_DEFINITION_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ <column name="SIMPLE_TYPE" type="VARCHAR2" required="false" size="20"/>
+ <column name="ALLOW_CUSTOM_ENUM_VALUE" type="BOOLEAN" required="false"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ <column name="CONFIG_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_DEF"/>
+
+ <!-- only simple properties (not lists and maps) have this -->
+ <column name="UNITS" type="SMALLINT" required="false"/>
+ </table>
+
+ <table name="RHQ_CONF_PROP_DEF_ENUM">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="STRING_VALUE" type="VARCHAR2" required="false" size="500"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ <column name="IS_DEFAULT" type="BOOLEAN" required="false"/>
+ <column name="NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="PROPERTY_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_CONSTR">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="15"/>
+ <column name="DETAILS" type="VARCHAR2" required="false" size="250"/>
+ <column name="CONFIG_PROP_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ </table>
+
+
+ <!-- Content or value tables -->
+
+ <table name="RHQ_CONFIG">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NOTES" type="VARCHAR2" required="false" size="512"/>
+ <column name="VERSION" type="VARCHAR2" required="false" size="50"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROPERTY">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="false" references="RHQ_CONFIG" ondelete="cascade"/>
+ <column name="STRING_VALUE" type="VARCHAR2" required="false" size="2000"/>
+ <column name="OVERRIDE" type="BOOLEAN" required="false"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ <!-- Recursive cascade path to RHQ_CONFIG_PROPERTY causes constraint creation errors on SQL Server, see
+ http://support.microsoft.com/kb/321843 -->
+ <column name="PARENT_LIST_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROPERTY" ondelete="cascade" />
+ <column name="PARENT_MAP_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROPERTY" ondelete="cascade" />
+ <column name="LIST_INDEX" type="INTEGER"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <index name="RHQ_CONFIG_PROP_idx_prop_key" unique="false">
+ <field ref="CONFIGURATION_ID"/>
+ <field ref="NAME"/>
+ </index>
+ <index name="RHQ_CONFIG_PROP_idx_map_key" unique="false">
+ <field ref="PARENT_MAP_ID"/>
+ <field ref="NAME"/>
+ </index>
+ <index name="RHQ_CONFIG_PROP_idx_list_key" unique="false">
+ <field ref="PARENT_LIST_ID"/>
+ </index>
+ <!-- List entries all have the same name -->
+ </table>
+
+ <table name="RHQ_CONFIG_TEMPLATE">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="500"/>
+ <column name="CONFIG_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ <column name="CONFIG_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_DEF"/>
+ <column name="IS_DEFAULT" type="BOOLEAN" required="false"/>
+ </table>
+
+<!-- END: config-schema.xml -->
+<!-- BEGIN: cluster-schema.xml -->
+
+ <table name="RHQ_AFFINITY_GROUP">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="255" type="VARCHAR2"/>
+ </table>
+
+ <table name="RHQ_SERVER">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="255" type="VARCHAR2"/>
+ <column name="ADDRESS" required="true" size="255" type="VARCHAR2"/>
+ <column name="PORT" required="true" type="INTEGER"/>
+ <column name="SECURE_PORT" required="true" type="INTEGER"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="MTIME" required="true" type="LONG"/>
+ <column name="AFFINITY_GROUP_ID" type="INTEGER" references="RHQ_AFFINITY_GROUP" required="false"/>
+ <column name="COMPUTE_POWER" required="true" type="INTEGER"/>
+ <column name="OPERATION_MODE" required="true" size="32" type="VARCHAR2"/>
+ <column name="STATUS" type="INTEGER" required="false" default="0" />
+
+ <!-- This index is for constraint, not performance -->
+ <index name="RHQ_SERVER_NAME_UNIQUE" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <!-- new agent -->
+ <table name="RHQ_AGENT">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="255" type="VARCHAR2"/>
+ <column name="ADDRESS" required="true" size="255" type="VARCHAR2"/>
+ <column name="PORT" required="true" type="INTEGER"/>
+ <column name="AGENTTOKEN" required="true" size="100" type="VARCHAR2"/>
+ <column name="REMOTE_ENDPOINT" required="false" size="4000" type="VARCHAR2"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="MTIME" required="true" type="LONG"/>
+ <column name="LAST_AVAILABILITY_REPORT" required="false" type="LONG"/>
+ <column name="AFFINITY_GROUP_ID" type="INTEGER" references="RHQ_AFFINITY_GROUP" required="false"/>
+ <column name="SERVER_ID" type="INTEGER" references="RHQ_SERVER" required="false"/>
+ <column name="STATUS" type="INTEGER" required="false" default="0" />
+ <column name="BACKFILLED" type="BOOLEAN" required="true" />
+
+ <index name="RHQ_AGENT_NAME_UNIQUE" unique="true">
+ <field ref="NAME"/>
+ </index>
+
+ <index name="RHQ_AGENT_ADDRESS_PORT" unique="true">
+ <field ref="ADDRESS"/>
+ <field ref="PORT"/>
+ </index>
+
+ <index name="RHQ_AGENT_TOKEN_UNIQUE" unique="true">
+ <field ref="AGENTTOKEN"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PARTITION_EVENT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="SUBJECT_NAME" required="true" size="255" type="VARCHAR2"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="EVENT_TYPE" required="true" size="50" type="VARCHAR2"/>
+ <column name="EVENT_DETAIL" required="false" size="512" type="VARCHAR2"/>
+ <column name="EXECUTION_STATUS" required="true" size="32" type="VARCHAR2"/>
+ </table>
+
+ <table name="RHQ_PARTITION_DETAILS">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PARTITION_EVENT_ID" type="INTEGER" references="RHQ_PARTITION_EVENT" required="true"/>
+ <column name="AGENT_NAME" type="VARCHAR2" size="255" required="true"/>
+ <column name="SERVER_NAME" type="VARCHAR2" size="255" required="true"/>
+ </table>
+
+ <table name="RHQ_FAILOVER_LIST">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PARTITION_EVENT_ID" type="INTEGER" references="RHQ_PARTITION_EVENT" required="true"/>
+ <column name="AGENT_ID" type="INTEGER" references="RHQ_AGENT" required="true"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ </table>
+
+ <table name="RHQ_FAILOVER_DETAILS">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="FAILOVER_LIST_ID" type="INTEGER" references="RHQ_FAILOVER_LIST" required="true"/>
+ <column name="SERVER_ID" type="INTEGER" references="RHQ_SERVER" required="true"/>
+ <column name="ORDINAL" type = "INTEGER" required="true"/>
+ </table>
+
+<!-- END: cluster-schema.xml -->
+<!-- BEGIN: inventory-schema.xml -->
+
+
+ <!-- NEW RESOURCE TYPES -->
+ <table name="RHQ_RESOURCE_TYPE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" type="VARCHAR2" size="100" required="true"/>
+ <column name="CATEGORY" type="VARCHAR2" size="16" required="true"/>
+ <column name="CREATION_DATA_TYPE" type="VARCHAR2" size="16" required="true"/>
+ <column name="CREATE_DELETE_POLICY" type="VARCHAR2" size="16" required="true"/>
+ <column name="SINGLETON" type="BOOLEAN" required="true"/>
+ <column name="SUPPORTS_MANUAL_ADD" type="BOOLEAN" required="true"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+ <column name="PLUGIN" type="VARCHAR2" size="100"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="SUBCATEGORY_ID" type="INTEGER"/>
+ <!--
+ TODO add support to DB setup for tables with circular dependencies and then add back this RI
+ <column name="SUBCATEGORY_ID" type="INTEGER" references="RHQ_RESOURCE_SUBCAT" />
+ -->
+ <column name="PLUGIN_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+ <column name="RES_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+
+ <index name="RHQ_RES_TYPE_IDX_PLG_NAME">
+ <field ref="NAME"/>
+ <field ref="PLUGIN"/>
+ </index>
+ </table>
+
+ <!-- NEW RESOURCE SUBCATEGORIES -->
+ <table name="RHQ_RESOURCE_SUBCAT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" type="VARCHAR2" size="100"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="PARENT_SUBCATEGORY_ID" type="INTEGER" references="RHQ_RESOURCE_SUBCAT"/>
+ <!-- resourceTypeId is not required on child sub categories -->
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+ </table>
+
+ <!-- Many To Many mapping for resource type to its parents -->
+ <table name="RHQ_RESOURCE_TYPE_PARENTS">
+ <column name="RESOURCE_TYPE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+ <column name="PARENT_RESOURCE_TYPE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+
+ <!-- not using full words to fit index name length -->
+ <constraint name="RHQ_RES_TYPE_PARENTS_KEY">
+ <primaryKey>
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="PARENT_RESOURCE_TYPE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PROCESS_SCAN">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="QUERY" type="VARCHAR2" size="256" required="true"/>
+ <column name="NAME" type="VARCHAR2" size="100" required="false"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+
+ <index name="RHQ_PROCESS_SCAN_QUERY_INDEX" unique="true">
+ <field ref="QUERY"/>
+ <field ref="RESOURCE_TYPE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PRD_VER">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="VERSION" type="VARCHAR2" size="50" required="true"/>
+ <column name="RES_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE"/>
+ </table>
+
+ <table name="RHQ_RESOURCE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE"/>
+ <column name="UUID" type="CHAR" size="36" required="true"/>
+ <column name="NAME" type="VARCHAR2" size="500"/>
+ <column name="RESOURCE_KEY" type="VARCHAR2" required="true" size="500"/>
+ <column name="AGENT_ID" required="false" type="INTEGER" references="RHQ_AGENT(id)"/>
+ <column name="INVENTORY_STATUS" type="VARCHAR2" size="20"/>
+ <column name="CONNECTED" type="BOOLEAN"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+ <column name="VERSION" type="VARCHAR2" size="50"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="ITIME" type="LONG"/>
+ <column name="RES_CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
+ <column name="PLUGIN_CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
+ <column name="MODIFIED_BY" required="false" type="INTEGER"/>
+ <column name="LOCATION" required="false" size="100" type="VARCHAR2"/>
+ <column name="PARENT_RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE"/>
+ <column name="PRODUCT_VERSION_ID" type="INTEGER" references="RHQ_PRD_VER"/>
+
+ <index name="RHQ_RESOURCE_idx_key">
+ <field ref="RESOURCE_KEY"/>
+ </index>
+
+ <index name="RHQ_RESOURCE_idx_type">
+ <field ref="RESOURCE_TYPE_ID"/>
+ </index>
+
+ <index name="RHQ_RESOURCE_idx_agent">
+ <field ref="AGENT_ID"/>
+ </index>
+
+ <index name="RHQ_RESOURCE_idx_parent">
+ <field ref="PARENT_RESOURCE_ID"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_RESOURCE_ERROR">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="TIME_OCCURRED" type="LONG" required="true"/>
+ <column name="ERROR_TYPE" type="VARCHAR2" required="true" size="32"/>
+ <column name="SUMMARY" type="VARCHAR2" required="true" size="1000"/>
+ <column name="DETAIL" type="LONGVARCHAR" required="false"/>
+
+ <index name="RHQ_RES_ERROR_IDX_RES_ID">
+ <field ref="RESOURCE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_GROUP_DEF">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="DESCRIPTION" size="100" type="VARCHAR2"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="CALC_TIME" type="LONG"/>
+ <column name="CALC_INTERVAL" type="LONG"/>
+ <column name="RECURSIVE" type="BOOLEAN"/>
+ <column name="EXPRESSION" type="VARCHAR2" size="1000"/>
+
+ <index name="RHQ_GROUP_DEF_NAME" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_RESOURCE_GROUP">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <!-- this name can be longer than the size of the GROUP_BY column, which is used to uniquely identify it -->
+ <!-- Max bytes for Oracle Varchar2 to accommodate large cluster keys -->
+ <column name="NAME" required="true" size="4000" type="VARCHAR2"/>
+ <column name="DESCRIPTION" size="100" type="VARCHAR2"/>
+ <column name="LOCATION" required="false" size="100" type="VARCHAR2"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+ <!-- Compatible groups only -->
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="MODIFIED_BY" required="false" type="INTEGER"/>
+ <!-- TODO: Reorder to allow this references="RHQ_SUBJECT" -->
+ <column name="RECURSIVE" type="BOOLEAN"/>
+
+ <column name="GROUP_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_GROUP_DEF"/>
+ <column name="GROUP_BY" size="500" type="VARCHAR2"/>
+
+ <column name="CATEGORY" type="VARCHAR2" size="20" required="true"/>
+
+ <column name="CLUSTER_KEY" type="VARCHAR2" size="4000" required="false"/>
+
+ <!-- These two only set if this is a backing group for a resource cluster -->
+ <column name="CLUSTER_RESOURCE_GROUP_ID" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <column name="VISIBLE" type="BOOLEAN"/>
+
+ <index name="RHQ_RES_GROUP_NAME" unique="false">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <!-- Many To Many mapping for groups to implicit resources -->
+ <table name="RHQ_RESOURCE_GROUP_RES_IMP_MAP">
+ <column name="RESOURCE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE"/>
+ <column name="RESOURCE_GROUP_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <!-- not using full words to fit index name length -->
+ <constraint name="RHQ_RES_GROUP_RES_IMP_MAP_KEY">
+ <primaryKey>
+ <field ref="RESOURCE_ID"/>
+ <field ref="RESOURCE_GROUP_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <!-- Many To Many mapping for groups to explicit resources -->
+ <table name="RHQ_RESOURCE_GROUP_RES_EXP_MAP">
+ <column name="RESOURCE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE"/>
+ <column name="RESOURCE_GROUP_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <!-- not using full words to fit index name length -->
+ <constraint name="RHQ_RES_GROUP_RES_EXP_MAP_KEY">
+ <primaryKey>
+ <field ref="RESOURCE_ID"/>
+ <field ref="RESOURCE_GROUP_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_CONFIG_GROUP_UPDATE">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="GROUP_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_GROUP"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="true" references="RHQ_CONFIG"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ </table>
+
+ <table name="RHQ_CONFIG_UPDATE">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="true" references="RHQ_CONFIG" ondelete="cascade"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="CONFIG_RES_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+ <column name="PLUGIN_CONFIG_RES_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+ <column name="AGG_RES_UPDATE_ID" type="INTEGER" required="false" references="RHQ_CONFIG_GROUP_UPDATE"/>
+ <column name="AGG_PLUGIN_UPDATE_ID" type="INTEGER" required="false" references="RHQ_CONFIG_GROUP_UPDATE"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ </table>
+
+<!-- END: inventory-schema.xml -->
+<!-- BEGIN: auth-schema.xml -->
+
+
+ <table name="RHQ_PRINCIPAL">
+
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PRINCIPAL" required="true" type="VARCHAR2" size="100"/>
+ <column name="PASSWORD" required="true" type="VARCHAR2" size="64"/>
+
+ <!-- ensure that principals are unique -->
+ <index name="RHQ_PRINCIPAL_PRINCIPAL_KEY" unique="true">
+ <field ref="PRINCIPAL"/>
+ </index>
+
+ </table>
+
+<!-- END: auth-schema.xml -->
+<!-- BEGIN: authz-schema.xml -->
+
+
+ <table name="RHQ_ROLE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="DESCRIPTION" size="100" type="VARCHAR2"/>
+ <column name="FSYSTEM" type="BOOLEAN" default="false"/>
+
+ <index name="RHQ_ROLE_NAME_KEY" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ROLE_RESOURCE_GROUP_MAP">
+ <column name="ROLE_ID" required="true" type="INTEGER" references="RHQ_ROLE"/>
+ <column name="RESOURCE_GROUP_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <constraint name="RHQ_ROLE_RES_GROUP_MAP_KEY">
+ <primaryKey>
+ <field ref="ROLE_ID"/>
+ <field ref="RESOURCE_GROUP_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PERMISSION">
+ <column name="ROLE_ID" type="INTEGER" references="RHQ_ROLE" required="true"/>
+ <column name="OPERATION" type="INTEGER" required="true"/>
+ <constraint name="RHQ_PERMISSION_PK">
+ <primaryKey>
+ <field ref="ROLE_ID"/>
+ <field ref="OPERATION"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_SUBJECT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
+ <column name="FIRST_NAME" required="false" size="100" type="VARCHAR2"/>
+ <column name="LAST_NAME" required="false" size="100" type="VARCHAR2"/>
+ <column name="EMAIL_ADDRESS" size="100" type="VARCHAR2"/>
+ <column name="SMS_ADDRESS" size="100" type="VARCHAR2"/>
+ <column name="PHONE_NUMBER" size="100" type="VARCHAR2"/>
+ <column name="DEPARTMENT" size="100" type="VARCHAR2"/>
+ <column name="FACTIVE" required="true" type="BOOLEAN" default="true"/>
+ <column name="FSYSTEM" required="true" type="BOOLEAN" default="false"/>
+
+ <index name="RHQ_SUBJECT_AUTH_KEY" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_SUBJECT_ROLE_MAP">
+ <column name="SUBJECT_ID" required="true" type="INTEGER" references="RHQ_SUBJECT"/>
+ <column name="ROLE_ID" required="true" type="INTEGER" references="RHQ_ROLE"/>
+
+ <constraint name="RHQ_SUBJECT_ROLE_MAPPING_KEY">
+ <primaryKey>
+ <field ref="SUBJECT_ID"/>
+ <field ref="ROLE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: authz-schema.xml -->
+<!-- BEGIN: operation-schema.xml -->
+
+
+ <table name="RHQ_OPERATION_DEF">
+
+ <!-- === required columns === -->
+
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE(ID)"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+
+ <!-- === optional columns === -->
+
+ <!-- an OSGI version range - if null, the operation def applies to all versions of the associated resource type -->
+ <column name="RESOURCE_VERSION_RANGE" type="VARCHAR2" size="100"/>
+
+ <!-- A parameter config definition is only required for operations that have parameters. -->
+ <!-- A results config definition is only required for operations that return data. -->
+ <column name="PARAMETER_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+ <column name="RESULTS_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="4000"/>
+ <column name="TIMEOUT" type="INTEGER"/>
+
+ <!-- === business key (RESOURCE_TYPE_ID + NAME) === -->
+ <index name="RHQ_OPERATION_DEF_KEY_IDX" unique="true">
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="NAME"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_OPERATION_HISTORY">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="8"/>
+ <column name="JOB_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="JOB_GROUP" type="VARCHAR2" required="true" size="100"/>
+ <column name="OPERATION_DEF_ID" type="INTEGER" required="true" references="RHQ_OPERATION_DEF"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="STIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="PARAMETERS_CONFIG_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+
+ <!-- for resource history -->
+ <column name="RESOURCE_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+ <column name="RESULTS_CONFIG_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ <column name="GROUP_HISTORY_ID" type="INTEGER" required="false" references="RHQ_OPERATION_HISTORY"/>
+
+ <!-- for group history -->
+ <column name="GROUP_ID" type="INTEGER" required="false" references="RHQ_RESOURCE_GROUP"/>
+
+ <index name="RHQ_OPERATION_HISTORY_JOB_IDX" unique="true">
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ <field ref="CTIME"/>
+ </index>
+
+ </table>
+
+ <!--
+ This table is really just to support some specific use-cases.
+ Specifically, to be able to get a list of histories for a specific schedule (aka quartz job)
+ and to be able to query a list of all schedules along with their associated resource/group IDs
+ possibly sorted by their next fire time.
+ Note that a NULL next fire time means it won't fire again and the row is probaby about to be deleted;
+ we can probably not even insert rows with NULL and make it a non-nullable field. But rather than
+ code special conditions into the session bean, we'll allow a short-lived NULL next fire time row.
+ -->
+ <table name="RHQ_OPERATION_SCHEDULE">
+ <column name="JOB_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="JOB_GROUP" type="VARCHAR2" required="true" size="100"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="8"/>
+ <column name="NEXT_FIRE_TIME" type="LONG" required="false"/>
+
+ <!-- for resource history -->
+ <column name="RESOURCE_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+
+ <!-- for group history -->
+ <column name="GROUP_ID" type="INTEGER" required="false" references="RHQ_RESOURCE_GROUP"/>
+
+ <!--
+ Note that this is the same primary key that Quartz uses for its schedules (RHQ_qrtz_job_details).
+ We do not need to add DTYPE to the key, because we ensure the name/group are unique
+ across resource/group schedules
+ -->
+ <constraint name="RHQ_OPERATION_SCHEDULE_KEY">
+ <primaryKey>
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: operation-schema.xml -->
+<!-- BEGIN: sysconfig-schema.xml -->
+
+
+ <table name="RHQ_SYSTEM_CONFIG">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PROPERTY_KEY" type="VARCHAR2" size="80"/>
+ <column name="PROPERTY_VALUE" type="VARCHAR2" size="300"/>
+ <column name="DEFAULT_PROPERTY_VALUE" type="VARCHAR2" size="300"/>
+ <column name="FREAD_ONLY" type="BOOLEAN" default="FALSE"/>
+
+ <index name="RHQ_SYSTEM_CONFIG_KEY_INDX" unique="true">
+ <field ref="PROPERTY_KEY"/>
+ </index>
+ </table>
+
+<!-- END: sysconfig-schema.xml -->
+<!-- BEGIN: scheduler-schema.xml -->
+
+
+ <table name="RHQ_QRTZ_JOB_DETAILS">
+ <column name="JOB_NAME" required="true" type="VARCHAR2" size="80"/>
+ <column name="JOB_GROUP" required="true" type="VARCHAR2" size="80"/>
+ <column name="DESCRIPTION" required="false" type="VARCHAR2" size="120"/>
+ <column name="JOB_CLASS_NAME" required="true" type="VARCHAR2" size="128"/>
+ <column name="IS_DURABLE" required="true" type="BOOLEAN" default="FALSE"/>
+ <column name="IS_VOLATILE" required="true" type="BOOLEAN"/>
+ <column name="IS_STATEFUL" required="true" type="BOOLEAN" default="FALSE"/>
+ <column name="REQUESTS_RECOVERY" required="true" type="BOOLEAN" default="FALSE"/>
+ <column name="JOB_DATA" required="false" type="BLOB"/>
+
+ <constraint name="RHQ_PK_QRTZ_JOB_DETAILS">
+ <primaryKey>
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_QRTZ_JOB_LISTENERS">
+ <column name="JOB_NAME" required="true" type="VARCHAR2" size="80"/>
+ <column name="JOB_GROUP" required="true" type="VARCHAR2" size="80"/>
+ <column name="JOB_LISTENER" required="true" type="VARCHAR2" size="80"/>
+
+ <constraint name="RHQ_PK_QRTZ_JOB_LISTENERS">
+ <primaryKey>
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ <field ref="JOB_LISTENER"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_JOB_LSTNRS_JN_JG">
+ <foreignKey local="JOB_NAME,JOB_GROUP"
+ references="RHQ_QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+ </table>
+
+ <table name="RHQ_QRTZ_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" required="true" size="80"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" required="true" size="80"/>
+ <column name="JOB_NAME" type="VARCHAR2" required="true" size="80"/>
+ <column name="JOB_GROUP" type="VARCHAR2" required="true" size="80"/>
+ <column name="IS_VOLATILE" type="BOOLEAN" required="true"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="120"/>
+ <column name="NEXT_FIRE_TIME" type="LONG" required="false"/>
+ <column name="PREV_FIRE_TIME" type="LONG" required="false"/>
+ <column name="PRIORITY" type="INTEGER" required="false"/>
+ <column name="TRIGGER_STATE" type="VARCHAR" required="true" size="16"/>
+ <column name="TRIGGER_TYPE" type="VARCHAR" required="true" size="8"/>
+ <column name="START_TIME" type="LONG" required="true"/>
+ <column name="END_TIME" type="LONG" required="false"/>
+ <column name="CALENDAR_NAME" type="VARCHAR2" required="false" size="80"/>
+ <column name="MISFIRE_INSTR" type="INTEGER" required="false"/>
+ <column name="JOB_DATA" type="BLOB" required="false"/>
+
+ <constraint name="RHQ_PK_QRTZ_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_TRIGGERS_JN_JG">
+ <foreignKey local="JOB_NAME,JOB_GROUP"
+ references="RHQ_QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend these indexes. -->
+ <index name="RHQ_QRTZ_TRIGGERS_JN_JG_IDX">
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ </index>
+ <index name="RHQ_QRTZ_TRIGGERS_NFT_IDX">
+ <field ref="NEXT_FIRE_TIME"/>
+ </index>
+ <index name="RHQ_QRTZ_TRIGGERS_TS_IDX">
+ <field ref="TRIGGER_STATE"/>
+ </index>
+ <index name="RHQ_QRTZ_TRIGGERS_TS_NFT_IDX">
+ <field ref="TRIGGER_STATE"/>
+ <field ref="NEXT_FIRE_TIME"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_QRTZ_SIMPLE_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" required="true" size="80"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" required="true" size="80"/>
+ <column name="REPEAT_COUNT" type="LONG" required="true"/>
+ <column name="REPEAT_INTERVAL" type="LONG" required="true"/>
+ <column name="TIMES_TRIGGERED" type="LONG" required="true"/>
+
+ <constraint name="RHQ_PK_QRTZ_SIMPLE_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_SIMPLE_TRGRS_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <!-- Commenting out, because Oracle auto-creates an index for the
+ primary key column(s) and fails if you try to create another
+ index for the same column(s) (ips, 03/29/07).
+ -->
+ <!--
+ <index name="RHQ_QRTZ_SIMPLE_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ -->
+ </table>
+
+ <table name="RHQ_QRTZ_CRON_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="CRON_EXPRESSION" type="VARCHAR2" size="80" required="true"/>
+ <column name="TIME_ZONE_ID" type="VARCHAR2" size="80" required="false"/>
+
+ <constraint name="RHQ_PK_QRTZ_CRON_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_CRON_TRIG_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <!-- Commenting out, because Oracle auto-creates an index for the
+ primary key column(s) and fails if you try to create another
+ index for the same column(s) (ips, 03/29/07).
+ -->
+ <!--
+ <index name="RHQ_QRTZ_CRON_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ -->
+ </table>
+
+ <table name="RHQ_QRTZ_BLOB_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="BLOB_DATA" type="BLOB" required="false"/>
+
+ <constraint name="RHQ_PK_QRTZ_BLOB_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_BLOB_TRIGG_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <!-- Commenting out, because Oracle auto-creates an index for the
+ primary key column(s) and fails if you try to create another
+ index for the same column(s) (ips, 03/29/07).
+ -->
+ <!--
+ <index name="RHQ_QRTZ_BLOB_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ -->
+ </table>
+
+ <table name="RHQ_QRTZ_TRIGGER_LISTENERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_LISTENER" type="VARCHAR2" size="80" required="true"/>
+
+ <constraint name="RHQ_PK_QRTZ_TRIGGER_LISTENERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ <field ref="TRIGGER_LISTENER"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_TRGR_LSTNRS_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <index name="RHQ_QRTZ_TRGR_LSTNRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_QRTZ_FIRED_TRIGGERS">
+ <column name="ENTRY_ID" primarykey="true" type="VARCHAR2" size="95" required="true"/>
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="INSTANCE_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="FIRED_TIME" type="LONG" required="true"/>
+ <column name="PRIORITY" type="INTEGER" required="false"/>
+ <column name="STATE" type="VARCHAR2" size="16" required="true"/>
+ <column name="IS_VOLATILE" type="BOOLEAN" required="true"/>
+ <column name="JOB_NAME" type="VARCHAR2" size="80" required="false"/>
+ <column name="JOB_GROUP" type="VARCHAR2" size="80" required="false"/>
+ <column name="IS_STATEFUL" type="BOOLEAN" required="false"/>
+ <column name="REQUESTS_RECOVERY" type="BOOLEAN" required="false"/>
+
+ <!-- Quartz docs recommend these indexes. -->
+ <index name="RHQ_QRTZ_FIRED_TRGRS_TN_IDX">
+ <field ref="TRIGGER_NAME"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_TG_IDX">
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_IN_IDX">
+ <field ref="INSTANCE_NAME"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_JN_IDX">
+ <field ref="JOB_NAME"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_JG_IDX">
+ <field ref="JOB_GROUP"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_QRTZ_CALENDARS">
+ <column name="CALENDAR_NAME" primarykey="true" type="VARCHAR2" size="80" required="true"/>
+ <column name="CALENDAR" type="BLOB" required="true"/>
+ </table>
+
+ <table name="RHQ_QRTZ_PAUSED_TRIGGER_GRPS">
+ <column name="TRIGGER_GROUP" primarykey="true" type="VARCHAR2" size="80" required="true"/>
+ </table>
+
+ <table name="RHQ_QRTZ_SCHEDULER_STATE">
+ <column name="INSTANCE_NAME" primarykey="true" type="VARCHAR2" size="80" required="true"/>
+ <column name="LAST_CHECKIN_TIME" type="LONG" required="true"/>
+ <column name="CHECKIN_INTERVAL" type="LONG" required="true"/>
+ <column name="RECOVERER" type="VARCHAR2" size="80" required="false"/>
+ </table>
+
+ <table name="RHQ_QRTZ_LOCKS">
+ <column name="LOCK_NAME" primarykey="true" type="VARCHAR2" size="40" required="true"/>
+ <data LOCK_NAME="TRIGGER_ACCESS"/>
+ <data LOCK_NAME="JOB_ACCESS"/>
+ <data LOCK_NAME="CALENDAR_ACCESS"/>
+ <data LOCK_NAME="STATE_ACCESS"/>
+ <data LOCK_NAME="MISFIRE_ACCESS"/>
+ </table>
+
+<!-- END: scheduler-schema.xml -->
+<!-- BEGIN: amps-schema.xml -->
+
+
+
+ <table name="RHQ_PLUGIN">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DESCRIPTION" size="4000" type="VARCHAR2" required="false"/>
+ <column name="VERSION" size="200" type="VARCHAR2" required="false"/>
+ <column name="ENABLED" type="BOOLEAN" required="true"/>
+ <column name="HELP" type="CLOB" required="false"/>
+ <column name="PATH" size="500" type="VARCHAR2" required="true"/>
+ <column name="MD5" size="100" type="VARCHAR2" required="true"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="CONTENT" type="BLOB" required="false"/>
+
+ <index name="RHQ_PLUGIN_NAME_IDX" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+<!-- END: amps-schema.xml -->
+<!-- BEGIN: measurement-schema.xml -->
+
+ <table name="RHQ_MEASUREMENT_DEF">
+
+ <!-- === required columns === -->
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE(ID)"/>
+ <column name="NAME" type="VARCHAR2" size="100" required="true"/>
+
+ <!-- === optional columns === -->
+ <!-- an OSGI version range - if null, the metric def applies to all versions of the associated resource type -->
+ <column name="RESOURCE_VERSION_RANGE" type="VARCHAR2" size="100"/>
+ <column name="CATEGORY" type="SMALLINT"/>
+ <column name="UNITS" type="SMALLINT"/>
+ <column name="NUMERIC_TYPE" type="SMALLINT"/>
+ <column name="DISPLAY_TYPE" type="SMALLINT"/>
+ <column name="DATA_TYPE" type="SMALLINT"/>
+ <column name="RAW_NUMERIC_TYPE" type="SMALLINT"/>
+ <column name="DEFAULT_ON" type="BOOLEAN" default="false"/>
+ <column name="DEFAULT_INTERVAL" type="LONG" />
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DISPLAY_ORDER" type="INTEGER" default="1000"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="500"/>
+ <column name="DESTINATION_TYPE" type="VARCHAR2" size="100"/>
+
+ <column name="VERSION" type="INTEGER"/>
+ <!-- for optimistic locking -->
+
+ <!-- === business key (RESOURCE_TYPE_ID + NAME + RAW_NUMERIC_TYPE) === -->
+ <index name="RHQ_METRIC_DEF_KEY_IDX" unique="true">
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="NAME"/>
+ <field ref="RAW_NUMERIC_TYPE"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_SCHED">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+
+ <column name="ENABLED" type="BOOLEAN" default="false"/>
+ <column name="MTIME" type="LONG" />
+ <column name="DEFINITION" type="INTEGER" references="RHQ_MEASUREMENT_DEF(ID)"/>
+ <column name="VERSION" type="INTEGER" />
+ <column name="COLL_INTERVAL" type="LONG" />
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE(ID)"/>
+ <index name="RHQ_MEAS_SCHED_UNIQ" unique="true">
+ <field ref="RESOURCE_ID"/>
+ <field ref="DEFINITION"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_BLINE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+
+ <column name="BL_USER_ENTERED" type="BOOLEAN" default="false" required="true"/>
+ <column name="BL_MIN" type="DOUBLE" required="true"/>
+ <column name="BL_MAX" type="DOUBLE" required="true"/>
+ <column name="BL_MEAN" type="DOUBLE" required="true"/>
+ <column name="BL_COMPUTE_TIME" type="LONG" required="true"/>
+ <column name="SCHEDULE_ID" type="INTEGER" required="true" references="RHQ_MEASUREMENT_SCHED(ID)"/>
+ <index name="RHQ_MEAS_BASELINE_CTIME_IDX">
+ <field ref="BL_COMPUTE_TIME"/>
+ </index>
+ <index name="RHQ_MEAS_BASELINE_SID_IDX">
+ <field ref="SCHEDULE_ID"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_NUM_1H" logging="false" cache="true"
+ tablespace="DEFAULT" storage-options="freelists 20">
+
+ <column name="TIME_STAMP" required="true" type="LONG"/>
+ <column name="SCHEDULE_ID" required="true" type="INTEGER"/>
+ <column name="VALUE" required="false" type="DOUBLE"/>
+ <column name="MINVALUE" required="false" type="DOUBLE"/>
+ <column name="MAXVALUE" required="false" type="DOUBLE"/>
+
+ <constraint name="RHQ_MEAS_DATA_1H_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+
+ <index name="RHQ_MEAS_DATA_1H_TIME_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_NUM_6H" logging="false" cache="true"
+ tablespace="DEFAULT" storage-options="freelists 20">
+
+ <column name="TIME_STAMP" required="true" type="LONG"/>
+ <column name="SCHEDULE_ID" required="true" type="INTEGER"/>
+ <column name="VALUE" required="false" type="DOUBLE"/>
+ <column name="MINVALUE" required="false" type="DOUBLE"/>
+ <column name="MAXVALUE" required="false" type="DOUBLE"/>
+
+ <constraint name="RHQ_MEAS_DATA_6H_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+
+ <index name="RHQ_MEAS_DATA_6H_TIME_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_NUM_1D" logging="false" cache="true"
+ tablespace="DEFAULT" storage-options="freelists 20">
+
+ <column name="TIME_STAMP" required="true" type="LONG"/>
+ <column name="SCHEDULE_ID" required="true" type="INTEGER"/>
+ <column name="VALUE" required="false" type="DOUBLE"/>
+ <column name="MINVALUE" required="false" type="DOUBLE"/>
+ <column name="MAXVALUE" required="false" type="DOUBLE"/>
+
+ <constraint name="RHQ_MEAS_DATA_1D_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_TRAIT">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER" />
+ <column name="VALUE" type="VARCHAR2" size="4000" />
+ <constraint name="RHQ_MEAS_DATA_TRAIT_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+
+ <table name="RHQ_CALLTIME_DATA_KEY">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="SCHEDULE_ID" type="INTEGER" required="true"/>
+ <column name="CALL_DESTINATION" type="VARCHAR2" size="4000" required="true"/>
+ <index name="RHQ_CALLTIME_DATA_KEY_IDX" unique="true">
+ <field ref="SCHEDULE_ID"/>
+ <field ref="CALL_DESTINATION"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_CALLTIME_DATA_VALUE">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="KEY_ID" type="INTEGER" references="RHQ_CALLTIME_DATA_KEY" required="true"/>
+ <column name="BEGIN_TIME" type="LONG" required="true"/>
+ <column name="END_TIME" type="LONG" required="true"/>
+ <column name="MINIMUM" type="DOUBLE" required="true"/>
+ <column name="MAXIMUM" type="DOUBLE" required="true"/>
+ <column name="TOTAL" type="DOUBLE" required="true"/>
+ <column name="COUNT" type="LONG" required="true"/>
+ </table>
+
+
+ <table name="RHQ_AVAILABILITY">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE(ID)"/>
+ <column name="START_TIME" type="LONG" required="true" />
+ <column name="END_TIME" type="LONG" required="false" />
+ <column name="AVAILABILITY_TYPE" type="SMALLINT" required="false" />
+ <index name="RHQ_AVAIL_RESOURCE_START_IDX">
+ <field ref="RESOURCE_ID"/>
+ <field ref="START_TIME"/>
+ </index>
+ <!-- only one null row can exist for any resource -->
+ <index name="RHQ_AVAIL_RESOURCE_END_IDX" condition="END_TIME IS NULL">
+ <field ref="RESOURCE_ID"/>
+ <field ref="END_TIME" />
+ </index>
+ </table>
+
+ <table name="RHQ_RESOURCE_AVAIL">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE(ID)" ondelete="cascade"/>
+ <column name="AVAILABILITY_TYPE" type="SMALLINT" required="false" />
+ <index name="RHQ_RESOURCE_AVAIL_IDX">
+ <field ref="RESOURCE_ID" />
+ </index>
+ </table>
+
+ <!-- !!!!! REMOVED !!!!! -->
+ <table name="RHQ_MEASUREMENT_OOB" obsolete="true">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="SCHEDULE_ID" type="INTEGER" references="RHQ_MEASUREMENT_SCHED(ID)" required="true"/>
+ <column name="OCCURRED" type="LONG" required="true"/>
+ <column name="DIFF" type="DOUBLE" required="true"/>
+
+ <index name="RHQ_MEASUREMENT_OOB_IDX" unique="true">
+ <field ref="SCHEDULE_ID" />
+ <field ref="OCCURRED" />
+ </index>
+ </table>
+
+ <table name="RHQ_MEASUREMENT_OOB">
+ <column name="SCHEDULE_ID" type="INTEGER" references="RHQ_MEASUREMENT_SCHED(ID)" required="true"/>
+ <column name="TIME_STAMP" type="LONG" required="true"/>
+ <column name="OOB_FACTOR" type="INTEGER" required="true" />
+ <constraint name="RHQ_MEAS_OOB_ID_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_MEASUREMENT_OOB_TMP">
+ <column name="SCHEDULE_ID" type="INTEGER" required="true"/>
+ <column name="TIME_STAMP" type="LONG" required="true"/>
+ <column name="OOB_FACTOR" type="INTEGER" required="true" />
+ <constraint name="RHQ_MEAS_OOB_TMP_ID_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_NUMBERS">
+ <column name="i" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true" />
+ </table>
+
+
+ <table name="RHQ_MEAS_DATA_NUM_R00">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R00_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R00_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R01">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R01_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R01_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R02">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R02_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R02_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R03">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R03_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R03_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R04">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R04_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R04_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R05">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R05_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R05_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R06">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R06_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R06_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R07">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R07_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R07_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R08">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R08_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R08_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R09">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R09_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R09_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R10">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R10_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R10_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R11">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R11_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R11_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R12">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R12_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R12_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R13">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R13_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R13_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R14">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R14_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R14_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: measurement-schema.xml -->
+<!-- BEGIN: content-schema.xml -->
+
+
+ <table name="RHQ_ARCHITECTURE">
+ <column name="ID" default="sequence-only" initial="100" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="50" type="VARCHAR2" required="true"/>
+ <index name="RHQ_ARCHITECTURE_NAME_IDX" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE_TYPE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="false"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="PLUGIN_NAME" size="100" type="VARCHAR2" required="false"/>
+ <!-- we might want this as part of natural key -->
+ <column name="DEFAULT_LAZY_LOAD" type="BOOLEAN" required="true"/>
+ <column name="DEFAULT_DOWNLOAD_MODE" size="16" type="VARCHAR2" required="true"/>
+ <column name="DEFAULT_SYNC_SCHEDULE" size="64" type="VARCHAR2" required="false"/>
+ <column name="API_CLASS" size="100" type="VARCHAR2" required="true"/>
+
+ <column name="SOURCE_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF" required="false"/>
+
+ <index name="RHQ_CONTENT_SOURCE_TYPE_IDX" unique="true">
+ <field ref="NAME"/>
+ <!-- <field ref="PLUGIN_NAME"/> -->
+ </index>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="LAZY_LOAD" type="BOOLEAN" required="true"/>
+ <column name="DOWNLOAD_MODE" size="16" type="VARCHAR2" required="true"/>
+ <column name="SYNC_SCHEDULE" size="64" type="VARCHAR2" required="false"/>
+ <column name="LOAD_ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="CREATION_TIME" type="LONG" required="true"/>
+ <column name="LAST_MODIFIED_TIME" type="LONG" required="true"/>
+
+ <column name="CONTENT_SOURCE_TYPE_ID" type="INTEGER" references="RHQ_CONTENT_SOURCE_TYPE" required="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG" required="false"/>
+
+ <index name="RHQ_CONTENT_SOURCE_IDX" unique="true">
+ <field ref="NAME"/>
+ <field ref="CONTENT_SOURCE_TYPE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_CHANNEL">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="CREATION_TIME" type="LONG" required="true"/>
+ <column name="LAST_MODIFIED_TIME" type="LONG" required="true"/>
+
+ <index name="RHQ_CHANNEL_IDX" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PACKAGE_TYPE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="false"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="CATEGORY" size="50" type="VARCHAR2" required="false"/>
+ <column name="DISCOVERY_INTERVAL" type="INTEGER" required="false"/>
+ <column name="IS_CREATION_DATA" type="BOOLEAN" required="true"/>
+ <column name="SUPPORTS_ARCHITECTURE" type="BOOLEAN" required="true"/>
+
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE" required="true"/>
+ <column name="DEPLOYMENT_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF" required="false"/>
+ <column name="PACKAGE_EXTRA_CONFIG_ID" type="INTEGER" references="RHQ_CONFIG_DEF" required="false"/>
+
+ <index name="RHQ_PACKAGE_TYPE_IDX" unique="true">
+ <field ref="NAME"/>
+ <field ref="RESOURCE_TYPE_ID"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_PACKAGE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="CLASSIFICATION" size="200" type="VARCHAR2" required="false"/>
+
+ <column name="PACKAGE_TYPE_ID" type="INTEGER" references="RHQ_PACKAGE_TYPE" required="true"/>
+
+ <index name="RHQ_PACKAGE_IDX" unique="true">
+ <field ref="NAME"/>
+ <field ref="PACKAGE_TYPE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PACKAGE_BITS">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="BITS" type="BLOB" required="false"/>
+ </table>
+
+ <table name="RHQ_PACKAGE_VERSION">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="false"/>
+ <column name="SHORT_DESCRIPTION" size="10000" type="CLOB" required="false"/>
+ <column name="LONG_DESCRIPTION" size="50000" type="CLOB" required="false"/>
+ <column name="VERSION" size="500" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_VERSION" size="500" type="VARCHAR2" required="false"/>
+ <column name="FILE_NAME" size="255" type="VARCHAR2" required="false"/>
+ <column name="FILE_SIZE" type="LONG" required="false"/>
+ <column name="FILE_MD5" size="32" type="VARCHAR2" required="false"/>
+ <column name="FILE_SHA256" size="64" type="VARCHAR2" required="false"/>
+ <column name="FILE_CREATION_TIME" type="LONG" required="false"/>
+ <column name="LICENSE_NAME" size="255" type="VARCHAR2" required="false"/>
+ <column name="LICENSE_VERSION" size="20" type="VARCHAR2" required="false"/>
+ <column name="METADATA" type="BLOB" required="false"/>
+
+ <column name="PACKAGE_ID" type="INTEGER" references="RHQ_PACKAGE" required="true"/>
+ <column name="ARCHITECTURE_ID" type="INTEGER" references="RHQ_ARCHITECTURE" required="true"/>
+ <column name="CONFIG_ID" type="INTEGER" references="RHQ_CONFIG" required="false"/>
+ <column name="PACKAGE_BITS_ID" type="INTEGER" references="RHQ_PACKAGE_BITS" required="false"/>
+
+ <index name="RHQ_PACKAGE_VERSION_IDX" unique="true">
+ <field ref="PACKAGE_ID"/>
+ <field ref="VERSION"/>
+ <field ref="ARCHITECTURE_ID"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_CONTENT_REQ">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="REQUEST_TYPE" type="VARCHAR2" required="true" size="20"/>
+ <column name="NOTES" type="VARCHAR2" required="false" size="512"/>
+ </table>
+
+ <table name="RHQ_INSTALLED_PACKAGE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="INSTALLATION_TIME" type="LONG" required="false"/>
+
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE" required="true"/>
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" references="RHQ_PACKAGE_VERSION" required="true"/>
+ <column name="SUBJECT_ID" type="INTEGER" references="RHQ_SUBJECT" required="false"/>
+ </table>
+
+ <table name="RHQ_INSTALLED_PKG_HIST">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="STATUS" type="VARCHAR2" size="24" required="true"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="HISTORY_TIMESTAMP" type="LONG" required="false"/>
+
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" references="RHQ_PACKAGE_VERSION" required="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE" required="true"/>
+ <column name="DEPLOYMENT_CONFIG_ID" type="INTEGER" references="RHQ_CONFIG" required="false"/>
+ <column name="CONTENT_SERVICE_REQUEST_ID" type="INTEGER" references="RHQ_CONTENT_REQ" required="false"/>
+ </table>
+
+ <table name="RHQ_CONTENT_SRC_SYNC">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="STATUS" type="VARCHAR2" size="16" required="true"/>
+ <column name="START_TIME" type="LONG" required="true"/>
+ <column name="END_TIME" type="LONG" required="false"/>
+ <column name="RESULTS" type="LONGVARCHAR" required="false"/>
+
+ <column name="CONTENT_SRC_ID" type="INTEGER" required="true" references="RHQ_CONTENT_SOURCE"/>
+ </table>
+
+ <table name="RHQ_PACKAGE_INST_STEP">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="STEP_KEY" type="VARCHAR2" size="500" required="true"/>
+ <column name="STEP_ORDER" type="INTEGER" required="true"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="4000" required="true"/>
+ <column name="ERROR_MSG" type="LONGVARCHAR" required="false"/>
+ <column name="RESULT" type="VARCHAR2" size="25" required="true"/>
+
+ <column name="INSTALLED_PKG_HIST_ID" type="INTEGER" references="RHQ_INSTALLED_PKG_HIST"/>
+ </table>
+
+ <table name="RHQ_CHANNEL_RESOURCE_MAP">
+ <column name="CHANNEL_ID" type="INTEGER" required="true" references="RHQ_CHANNEL"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="CTIME" type="LONG" required="true"/>
+
+ <constraint name="RHQ_CHANNEL_RESOURCE_MAP_KEY">
+ <primaryKey>
+ <field ref="CHANNEL_ID"/>
+ <field ref="RESOURCE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_CHANNEL_CONTENT_SRC_MAP">
+ <column name="CHANNEL_ID" type="INTEGER" required="true" references="RHQ_CHANNEL"/>
+ <column name="CONTENT_SRC_ID" type="INTEGER" required="true" references="RHQ_CONTENT_SOURCE"/>
+ <column name="CTIME" type="LONG" required="true"/>
+
+ <constraint name="RHQ_CHAN_CONTENT_SRC_MAP_KEY">
+ <primaryKey>
+ <field ref="CHANNEL_ID"/>
+ <field ref="CONTENT_SRC_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_CHANNEL_PKG_VERSION_MAP">
+ <column name="CHANNEL_ID" type="INTEGER" required="true" references="RHQ_CHANNEL"/>
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" required="true" references="RHQ_PACKAGE_VERSION"/>
+ <column name="CTIME" type="LONG" required="true"/>
+
+ <constraint name="RHQ_CHANNEL_PKG_VER_MAP_KEY">
+ <primaryKey>
+ <field ref="CHANNEL_ID"/>
+ <field ref="PACKAGE_VERSION_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PKG_VER_CONTENT_SRC_MAP">
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" required="true" references="RHQ_PACKAGE_VERSION"/>
+ <column name="CONTENT_SRC_ID" type="INTEGER" required="true" references="RHQ_CONTENT_SOURCE"/>
+ <column name="LOCATION" type="VARCHAR2" size="4000" required="true"/>
+
+ <constraint name="RHQ_PKG_VER_CONTENT_SRC_KEY">
+ <primaryKey>
+ <field ref="PACKAGE_VERSION_ID"/>
+ <field ref="CONTENT_SRC_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PKG_PRD_MAP">
+ <column name="PKG_ID" type="INTEGER" required="true" references="RHQ_PACKAGE_VERSION"/>
+ <column name="PRD_ID" type="INTEGER" required="true" references="RHQ_PRD_VER"/>
+
+ <constraint name="RHQ_PKG_PRD_KEY">
+ <primaryKey>
+ <field ref="PKG_ID"/>
+ <field ref="PRD_ID"/>
+ </primaryKey>
+ </constraint>
+
+ </table>
+
+<!-- END: content-schema.xml -->
+<!-- BEGIN: resource-request-schema.xml -->
+
+
+ <table name="RHQ_CREATE_RES_HIST">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="PARENT_RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="CREATED_RESOURCE_NAME" type="VARCHAR2" size="500" required="false"/>
+ <column name="NEW_RESOURCE_KEY" type="VARCHAR2" required="false" size="500"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ <column name="INSTALLED_PACKAGE_ID" type="INTEGER" required="false" references="RHQ_INSTALLED_PACKAGE"/>
+ </table>
+
+ <table name="RHQ_DELETE_RES_HIST">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ </table>
+
+<!-- END: resource-request-schema.xml -->
+<!-- BEGIN: jms-schema.xml -->
+
+<!-- the schema matches that which would be automatically created by the JMS subsystem -->
+<!-- see deploy/jms/rhq-jdbc-state-service.xml and rhq-jdbc2-service.xml -->
+
+
+ <table name="JMS_MESSAGES">
+ <column name="MESSAGEID" required="true" type="INTEGER" />
+ <column name="DESTINATION" required="true" type="VARCHAR2" size="255" />
+ <column name="TXID" required="false" type="INTEGER" />
+ <column name="TXOP" required="false" type="CHAR" size="1" />
+ <column name="MESSAGEBLOB" required="false" type="BLOB" />
+
+ <constraint name="JMS_MESSAGES_PKEY">
+ <primaryKey>
+ <field ref="MESSAGEID"/>
+ <field ref="DESTINATION"/>
+ </primaryKey>
+ </constraint>
+
+ <index name="JMS_MESSAGES_TXOP_TXID">
+ <field ref="TXOP"/>
+ <field ref="TXID"/>
+ </index>
+ <index name="JMS_MESSAGES_DESTINATION">
+ <field ref="DESTINATION"/>
+ </index>
+ </table>
+
+ <table name="JMS_TRANSACTIONS">
+ <column name="TXID" required="true" type="INTEGER" primarykey="true" />
+ </table>
+
+ <table name="JMS_USERS">
+ <column name="USERID" required="true" type="VARCHAR2" size="32" primarykey="true" />
+ <column name="PASSWD" required="true" type="VARCHAR2" size="32" />
+ <column name="CLIENTID" required="false" type="VARCHAR2" size="128" />
+ </table>
+
+ <table name="JMS_ROLES">
+ <column name="ROLEID" required="true" type="VARCHAR2" size="32" />
+ <column name="USERID" required="true" type="VARCHAR2" size="32" />
+
+ <constraint name="JMS_ROLES_PKEY">
+ <primaryKey>
+ <field ref="USERID"/>
+ <field ref="ROLEID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="JMS_SUBSCRIPTIONS">
+ <column name="CLIENTID" required="true" type="VARCHAR2" size="128" />
+ <column name="SUBNAME" required="true" type="VARCHAR2" size="128" />
+ <column name="TOPIC" required="true" type="VARCHAR2" size="255" />
+ <column name="SELECTOR" required="false" type="VARCHAR2" size="255" />
+
+ <constraint name="JMS_SUBSCRIPTIONS_PKEY">
+ <primaryKey>
+ <field ref="CLIENTID"/>
+ <field ref="SUBNAME"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: jms-schema.xml -->
+<!-- BEGIN: alert-schema.xml -->
+
+
+ <table name="RHQ_ALERT_DEFINITION">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="PARENT_ID" type="INTEGER" required="false"/>
+ <column name="GROUP_ALERT_DEF_ID" type="INTEGER" required="false"/>
+ <column name="DESCRIPTION" required="false" size="250" type="VARCHAR2"/>
+ <column name="PRIORITY" type="VARCHAR2" size="15" required="true"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE" required="false"/>
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE" required="false"/>
+ <column name="RESOURCE_GROUP_ID" type="INTEGER" references="RHQ_RESOURCE_GROUP" required="false"/>
+ <column name="ENABLED" required="true" default="TRUE" type="BOOLEAN"/>
+
+ <column name="REQUIRED" required="true" type="SMALLINT"/>
+
+ <column name="RECOVERY_ID" type="INTEGER" required="true"/>
+ <!-- required, but 0 effectively means null -->
+ <column name="WILL_RECOVER" required="true" default="false" type="BOOLEAN"/>
+ <column name="NOTIFY_FILTERED" required="true" default="false" type="BOOLEAN"/>
+ <column name="CONTROL_FILTERED" required="true" default="FALSE" type="BOOLEAN"/>
+
+ <column name="DELETED" required="true" default="FALSE" type="BOOLEAN"/>
+ <column name="READ_ONLY" required="true" default="FALSE" type="BOOLEAN"/>
+
+ <column name="DAMPENING_CATEGORY" type="SMALLINT" required="true"/>
+ <column name="DAMPENING_VALUE" type="INTEGER"/>
+ <column name="DAMPENING_VALUE_UNITS" type="SMALLINT"/>
+ <column name="DAMPENING_PERIOD" type="INTEGER"/>
+ <column name="DAMPENING_PERIOD_UNITS" type="SMALLINT"/>
+
+ <column name="OPERATION_DEF_ID" type="INTEGER" references="RHQ_OPERATION_DEF(ID)"/>
+ </table>
+
+ <table name="RHQ_ALERT_DAMPEN_EVENT">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="EVENT_TYPE" required="true" type="SMALLINT"/>
+ <column name="EVENT_TIMESTAMP" required="true" type="LONG"/>
+
+ <index name="RHQ_DAMPENING_EVENT_TYPE_IDX">
+ <field ref="EVENT_TYPE"/>
+ </index>
+ <index name="RHQ_DAMPENING_EVENT_TS_IDX">
+ <field ref="EVENT_TIMESTAMP"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ALERT_CONDITION">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="TYPE" required="true" type="VARCHAR2" size="15"/>
+ <!--
+ <column name="REQUIRED" required="true" type="BOOLEAN"/>
+ -->
+ <column name="MEASUREMENT_DEFINITION_ID" required="false" type="INTEGER"/>
+ <column name="NAME" required="false" size="100" type="VARCHAR2"/>
+ <column name="COMPARATOR" required="false" size="2" type="VARCHAR2"/>
+ <column name="THRESHOLD" required="false" type="DOUBLE"/>
+ <!-- event-based conditions use OPTION_STATUS for the string match, so should be a decent length -->
+ <column name="OPTION_STATUS" required="false" size="256" type="VARCHAR2"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="TRIGGER_ID" required="false" type="INTEGER"/>
+ </table>
+
+ <table name="RHQ_ALERT" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="TRIGGERED_OPERATION" required="false" type="VARCHAR2" size="255"/>
+ <column name="RECOVERY_ID" type="INTEGER" required="true"/>
+ <!-- required, but 0 effectively means null -->
+ <column name="WILL_RECOVER" required="true" default="false" type="BOOLEAN"/>
+ <index name="RHQ_ALERT_IDX_TIME" unique="false">
+ <field ref="CTIME"/>
+ </index>
+ <index name="RHQ_ALERT_IDX_ALERTDEF" unique="false">
+ <field ref="ALERT_DEFINITION_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ALERT_NOTIF_LOG" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="ALERT_ID" required="true" type="INTEGER" references="RHQ_ALERT(ID)"/>
+ <index name="RHQ_ALERT_IDX_ALERT" unique="true">
+ <field ref="ALERT_ID"/>
+ </index>
+ <column name="ROLES" required="false" size="200" type="VARCHAR2"/>
+ <column name="SUBJECTS" required="false" size="200" type="VARCHAR2"/>
+ <column name="EMAILS" required="false" size="200" type="VARCHAR2"/>
+ </table>
+
+ <table name="RHQ_ALERT_CONDITION_LOG" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="ALERT_ID" required="false" type="INTEGER" references="RHQ_ALERT(ID)"/>
+ <column name="CONDITION_ID" required="true" type="INTEGER" references="RHQ_ALERT_CONDITION(ID)"/>
+ <column name="VALUE" required="false" size="250" type="VARCHAR2"/>
+ <index name="RHQ_ALERT_COND_LOG_IDX_TIME">
+ <field ref="CTIME" />
+ </index>
+ <index name="RHQ_ALERT_COND_LOG_IDX_ALERT">
+ <field ref="ALERT_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ALERT_NOTIFICATION" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NOTIFICATION_TYPE" required="true" size="20" type="VARCHAR2"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="ROLE_ID" type="INTEGER" references="RHQ_ROLE(ID)"/>
+ <column name="SUBJECT_ID" type="INTEGER" references="RHQ_SUBJECT(ID)"/>
+ <column name="EMAIL_ADDRESS" size="100" type="VARCHAR2"/>
+ <column name="SNMP_HOST" size="100" type="VARCHAR2"/>
+ <column name="SNMP_PORT" type="INTEGER"/>
+ <column name="SNMP_OID" size="250" type="VARCHAR2"/>
+ </table>
+
+<!-- END: alert-schema.xml -->
+<!-- BEGIN: event-schema.xml -->
+
+
+ <!-- metadata -->
+
+ <table name="RHQ_EVENT_DEF">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE(ID)"/>
+
+ <column name="NAME" type="VARCHAR2" size="100" required="true"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+
+ <index name="RHQ_EVENT_DEF_IDX" unique="true">
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <!-- instance data -->
+
+ <table name="RHQ_EVENT_SOURCE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="EVENT_DEF_ID" type="INTEGER" required="true" references="RHQ_EVENT_DEF(ID)"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE(ID)"/>
+
+ <column name="LOCATION" required="true" size="2000" type="VARCHAR2"/>
+
+ <index name="RHQ_EVENT_SOURCE_IDX" unique="true">
+ <field ref="EVENT_DEF_ID"/>
+ <field ref="RESOURCE_ID"/>
+ <field ref="LOCATION"/>
+ </index>
+ </table>
+
+ <table name="RHQ_EVENT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="EVENT_SOURCE_ID" type="INTEGER" required="true" references="RHQ_EVENT_SOURCE(ID)"/>
+
+ <column name="TIMESTAMP" required="true" type="LONG"/>
+ <column name="SEVERITY" required="true" size="20" type="VARCHAR2"/>
+ <column name="DETAIL" required="true" size="4000" type="VARCHAR2"/>
+ <index name="RHQ_EVENT_IDX" unique="false">
+ <field ref="EVENT_SOURCE_ID"/>
+ <field ref="TIMESTAMP"/>
+ </index>
+ </table>
+
+<!-- END: event-schema.xml -->
+</dbsetup>
diff --git a/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.1.xml b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.1.xml
new file mode 100644
index 0000000..923c0b5
--- /dev/null
+++ b/modules/enterprise/gui/installer-war/src/test/resources/org/rhq/enterprise/installer/db-schema-combined-2.3.1.xml
@@ -0,0 +1,1916 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dbsetup name="schema">
+<!-- BEGIN: config-schema.xml -->
+
+
+ <!-- Definition or Metadata tables -->
+
+ <table name="RHQ_CONFIG_DEF">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="250"/>
+ <column name="VERSION" type="VARCHAR2" required="false" size="50"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_GRP_DEF">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="250"/>
+ <column name="DEFAULT_HIDDEN" type="BOOLEAN" required="false"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_DEF">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="1000"/>
+ <column name="DEFAULT_VALUE" type="VARCHAR2" required="false" size="2000"/>
+ <column name="REQUIRED" type="BOOLEAN" required="false"/>
+ <column name="READONLY" type="BOOLEAN" required="false"/>
+ <column name="SUMMARY" type="BOOLEAN" required="false"/>
+ <column name="ACTIVATION_POLICY" type="VARCHAR2" required="false" size="20"/>
+ <column name="GROUP_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_GRP_DEF"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ <column name="VERSION" type="VARCHAR2" required="false" size="50"/>
+ <column name="PARENT_MAP_DEFINITION_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ <column name="PARENT_LIST_DEFINITION_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ <column name="SIMPLE_TYPE" type="VARCHAR2" required="false" size="20"/>
+ <column name="ALLOW_CUSTOM_ENUM_VALUE" type="BOOLEAN" required="false"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ <column name="CONFIG_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_DEF"/>
+
+ <!-- only simple properties (not lists and maps) have this -->
+ <column name="UNITS" type="SMALLINT" required="false"/>
+ </table>
+
+ <table name="RHQ_CONF_PROP_DEF_ENUM">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="STRING_VALUE" type="VARCHAR2" required="false" size="500"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ <column name="IS_DEFAULT" type="BOOLEAN" required="false"/>
+ <column name="NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="PROPERTY_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROP_CONSTR">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="15"/>
+ <column name="DETAILS" type="VARCHAR2" required="false" size="250"/>
+ <column name="CONFIG_PROP_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROP_DEF"/>
+ <column name="ORDER_INDEX" type="INTEGER" required="false"/>
+ </table>
+
+
+ <!-- Content or value tables -->
+
+ <table name="RHQ_CONFIG">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NOTES" type="VARCHAR2" required="false" size="512"/>
+ <column name="VERSION" type="VARCHAR2" required="false" size="50"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ </table>
+
+ <table name="RHQ_CONFIG_PROPERTY">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="false" references="RHQ_CONFIG" ondelete="cascade"/>
+ <column name="STRING_VALUE" type="VARCHAR2" required="false" size="2000"/>
+ <column name="OVERRIDE" type="BOOLEAN" required="false"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ <!-- Recursive cascade path to RHQ_CONFIG_PROPERTY causes constraint creation errors on SQL Server, see
+ http://support.microsoft.com/kb/321843 -->
+ <column name="PARENT_LIST_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROPERTY" ondelete="cascade" />
+ <column name="PARENT_MAP_ID" type="INTEGER" required="false" references="RHQ_CONFIG_PROPERTY" ondelete="cascade" />
+ <column name="LIST_INDEX" type="INTEGER"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <index name="RHQ_CONFIG_PROP_idx_prop_key" unique="false">
+ <field ref="CONFIGURATION_ID"/>
+ <field ref="NAME"/>
+ </index>
+ <index name="RHQ_CONFIG_PROP_idx_map_key" unique="false">
+ <field ref="PARENT_MAP_ID"/>
+ <field ref="NAME"/>
+ </index>
+ <index name="RHQ_CONFIG_PROP_idx_list_key" unique="false">
+ <field ref="PARENT_LIST_ID"/>
+ </index>
+ <!-- List entries all have the same name -->
+ </table>
+
+ <table name="RHQ_CONFIG_TEMPLATE">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="500"/>
+ <column name="CONFIG_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ <column name="CONFIG_DEF_ID" type="INTEGER" required="false" references="RHQ_CONFIG_DEF"/>
+ <column name="IS_DEFAULT" type="BOOLEAN" required="false"/>
+ </table>
+
+<!-- END: config-schema.xml -->
+<!-- BEGIN: cluster-schema.xml -->
+
+ <table name="RHQ_AFFINITY_GROUP">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="255" type="VARCHAR2"/>
+ </table>
+
+ <table name="RHQ_SERVER">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="255" type="VARCHAR2"/>
+ <column name="ADDRESS" required="true" size="255" type="VARCHAR2"/>
+ <column name="PORT" required="true" type="INTEGER"/>
+ <column name="SECURE_PORT" required="true" type="INTEGER"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="MTIME" required="true" type="LONG"/>
+ <column name="AFFINITY_GROUP_ID" type="INTEGER" references="RHQ_AFFINITY_GROUP" required="false"/>
+ <column name="COMPUTE_POWER" required="true" type="INTEGER"/>
+ <column name="OPERATION_MODE" required="true" size="32" type="VARCHAR2"/>
+ <column name="STATUS" type="INTEGER" required="false" default="0" />
+
+ <!-- This index is for constraint, not performance -->
+ <index name="RHQ_SERVER_NAME_UNIQUE" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <!-- new agent -->
+ <table name="RHQ_AGENT">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="255" type="VARCHAR2"/>
+ <column name="ADDRESS" required="true" size="255" type="VARCHAR2"/>
+ <column name="PORT" required="true" type="INTEGER"/>
+ <column name="AGENTTOKEN" required="true" size="100" type="VARCHAR2"/>
+ <column name="REMOTE_ENDPOINT" required="false" size="4000" type="VARCHAR2"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="MTIME" required="true" type="LONG"/>
+ <column name="LAST_AVAILABILITY_REPORT" required="false" type="LONG"/>
+ <column name="AFFINITY_GROUP_ID" type="INTEGER" references="RHQ_AFFINITY_GROUP" required="false"/>
+ <column name="SERVER_ID" type="INTEGER" references="RHQ_SERVER" required="false"/>
+ <column name="STATUS" type="INTEGER" required="false" default="0" />
+ <column name="BACKFILLED" type="BOOLEAN" required="true" />
+
+ <index name="RHQ_AGENT_NAME_UNIQUE" unique="true">
+ <field ref="NAME"/>
+ </index>
+
+ <index name="RHQ_AGENT_ADDRESS_PORT" unique="true">
+ <field ref="ADDRESS"/>
+ <field ref="PORT"/>
+ </index>
+
+ <index name="RHQ_AGENT_TOKEN_UNIQUE" unique="true">
+ <field ref="AGENTTOKEN"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PARTITION_EVENT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="SUBJECT_NAME" required="true" size="255" type="VARCHAR2"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="EVENT_TYPE" required="true" size="50" type="VARCHAR2"/>
+ <column name="EVENT_DETAIL" required="false" size="512" type="VARCHAR2"/>
+ <column name="EXECUTION_STATUS" required="true" size="32" type="VARCHAR2"/>
+ </table>
+
+ <table name="RHQ_PARTITION_DETAILS">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PARTITION_EVENT_ID" type="INTEGER" references="RHQ_PARTITION_EVENT" required="true"/>
+ <column name="AGENT_NAME" type="VARCHAR2" size="255" required="true"/>
+ <column name="SERVER_NAME" type="VARCHAR2" size="255" required="true"/>
+ </table>
+
+ <table name="RHQ_FAILOVER_LIST">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PARTITION_EVENT_ID" type="INTEGER" references="RHQ_PARTITION_EVENT" required="true"/>
+ <column name="AGENT_ID" type="INTEGER" references="RHQ_AGENT" required="true"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ </table>
+
+ <table name="RHQ_FAILOVER_DETAILS">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="FAILOVER_LIST_ID" type="INTEGER" references="RHQ_FAILOVER_LIST" required="true"/>
+ <column name="SERVER_ID" type="INTEGER" references="RHQ_SERVER" required="true"/>
+ <column name="ORDINAL" type = "INTEGER" required="true"/>
+ </table>
+
+<!-- END: cluster-schema.xml -->
+<!-- BEGIN: inventory-schema.xml -->
+
+
+ <!-- NEW RESOURCE TYPES -->
+ <table name="RHQ_RESOURCE_TYPE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" type="VARCHAR2" size="100" required="true"/>
+ <column name="CATEGORY" type="VARCHAR2" size="16" required="true"/>
+ <column name="CREATION_DATA_TYPE" type="VARCHAR2" size="16" required="true"/>
+ <column name="CREATE_DELETE_POLICY" type="VARCHAR2" size="16" required="true"/>
+ <column name="SINGLETON" type="BOOLEAN" required="true"/>
+ <column name="SUPPORTS_MANUAL_ADD" type="BOOLEAN" required="true"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+ <column name="PLUGIN" type="VARCHAR2" size="100"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="SUBCATEGORY_ID" type="INTEGER"/>
+ <!--
+ TODO add support to DB setup for tables with circular dependencies and then add back this RI
+ <column name="SUBCATEGORY_ID" type="INTEGER" references="RHQ_RESOURCE_SUBCAT" />
+ -->
+ <column name="PLUGIN_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+ <column name="RES_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+
+ <index name="RHQ_RES_TYPE_IDX_PLG_NAME">
+ <field ref="NAME"/>
+ <field ref="PLUGIN"/>
+ </index>
+ </table>
+
+ <!-- NEW RESOURCE SUBCATEGORIES -->
+ <table name="RHQ_RESOURCE_SUBCAT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" type="VARCHAR2" size="100"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="PARENT_SUBCATEGORY_ID" type="INTEGER" references="RHQ_RESOURCE_SUBCAT"/>
+ <!-- resourceTypeId is not required on child sub categories -->
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+ </table>
+
+ <!-- Many To Many mapping for resource type to its parents -->
+ <table name="RHQ_RESOURCE_TYPE_PARENTS">
+ <column name="RESOURCE_TYPE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+ <column name="PARENT_RESOURCE_TYPE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+
+ <!-- not using full words to fit index name length -->
+ <constraint name="RHQ_RES_TYPE_PARENTS_KEY">
+ <primaryKey>
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="PARENT_RESOURCE_TYPE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PROCESS_SCAN">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="QUERY" type="VARCHAR2" size="256" required="true"/>
+ <column name="NAME" type="VARCHAR2" size="100" required="false"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+
+ <index name="RHQ_PROCESS_SCAN_QUERY_INDEX" unique="true">
+ <field ref="QUERY"/>
+ <field ref="RESOURCE_TYPE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PRD_VER">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="VERSION" type="VARCHAR2" size="50" required="true"/>
+ <column name="RES_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE"/>
+ </table>
+
+ <table name="RHQ_RESOURCE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE"/>
+ <column name="UUID" type="CHAR" size="36" required="true"/>
+ <column name="NAME" type="VARCHAR2" size="500"/>
+ <column name="RESOURCE_KEY" type="VARCHAR2" required="true" size="500"/>
+ <column name="AGENT_ID" required="false" type="INTEGER" references="RHQ_AGENT(id)"/>
+ <column name="INVENTORY_STATUS" type="VARCHAR2" size="20"/>
+ <column name="CONNECTED" type="BOOLEAN"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+ <column name="VERSION" type="VARCHAR2" size="50"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="ITIME" type="LONG"/>
+ <column name="RES_CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
+ <column name="PLUGIN_CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
+ <column name="MODIFIED_BY" required="false" type="INTEGER"/>
+ <column name="LOCATION" required="false" size="100" type="VARCHAR2"/>
+ <column name="PARENT_RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE"/>
+ <column name="PRODUCT_VERSION_ID" type="INTEGER" references="RHQ_PRD_VER"/>
+
+ <index name="RHQ_RESOURCE_idx_key">
+ <field ref="RESOURCE_KEY"/>
+ </index>
+
+ <index name="RHQ_RESOURCE_idx_type">
+ <field ref="RESOURCE_TYPE_ID"/>
+ </index>
+
+ <index name="RHQ_RESOURCE_idx_agent">
+ <field ref="AGENT_ID"/>
+ </index>
+
+ <index name="RHQ_RESOURCE_idx_parent">
+ <field ref="PARENT_RESOURCE_ID"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_RESOURCE_ERROR">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="TIME_OCCURRED" type="LONG" required="true"/>
+ <column name="ERROR_TYPE" type="VARCHAR2" required="true" size="32"/>
+ <column name="SUMMARY" type="VARCHAR2" required="true" size="1000"/>
+ <column name="DETAIL" type="LONGVARCHAR" required="false"/>
+
+ <index name="RHQ_RES_ERROR_IDX_RES_ID">
+ <field ref="RESOURCE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_GROUP_DEF">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="DESCRIPTION" size="100" type="VARCHAR2"/>
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="CALC_TIME" type="LONG"/>
+ <column name="CALC_INTERVAL" type="LONG"/>
+ <column name="RECURSIVE" type="BOOLEAN"/>
+ <column name="EXPRESSION" type="VARCHAR2" size="1000"/>
+
+ <index name="RHQ_GROUP_DEF_NAME" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_RESOURCE_GROUP">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <!-- this name can be longer than the size of the GROUP_BY column, which is used to uniquely identify it -->
+ <!-- Max bytes for Oracle Varchar2 to accommodate large cluster keys -->
+ <column name="NAME" required="true" size="4000" type="VARCHAR2"/>
+ <column name="DESCRIPTION" size="100" type="VARCHAR2"/>
+ <column name="LOCATION" required="false" size="100" type="VARCHAR2"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE"/>
+ <!-- Compatible groups only -->
+ <column name="CTIME" type="LONG"/>
+ <column name="MTIME" type="LONG"/>
+ <column name="MODIFIED_BY" required="false" type="INTEGER"/>
+ <!-- TODO: Reorder to allow this references="RHQ_SUBJECT" -->
+ <column name="RECURSIVE" type="BOOLEAN"/>
+
+ <column name="GROUP_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_GROUP_DEF"/>
+ <column name="GROUP_BY" size="500" type="VARCHAR2"/>
+
+ <column name="CATEGORY" type="VARCHAR2" size="20" required="true"/>
+
+ <column name="CLUSTER_KEY" type="VARCHAR2" size="4000" required="false"/>
+
+ <!-- These two only set if this is a backing group for a resource cluster -->
+ <column name="CLUSTER_RESOURCE_GROUP_ID" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <column name="VISIBLE" type="BOOLEAN"/>
+
+ <index name="RHQ_RES_GROUP_NAME" unique="false">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <!-- Many To Many mapping for groups to implicit resources -->
+ <table name="RHQ_RESOURCE_GROUP_RES_IMP_MAP">
+ <column name="RESOURCE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE"/>
+ <column name="RESOURCE_GROUP_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <!-- not using full words to fit index name length -->
+ <constraint name="RHQ_RES_GROUP_RES_IMP_MAP_KEY">
+ <primaryKey>
+ <field ref="RESOURCE_ID"/>
+ <field ref="RESOURCE_GROUP_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <!-- Many To Many mapping for groups to explicit resources -->
+ <table name="RHQ_RESOURCE_GROUP_RES_EXP_MAP">
+ <column name="RESOURCE_ID" required="true" type="INTEGER" references="RHQ_RESOURCE"/>
+ <column name="RESOURCE_GROUP_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <!-- not using full words to fit index name length -->
+ <constraint name="RHQ_RES_GROUP_RES_EXP_MAP_KEY">
+ <primaryKey>
+ <field ref="RESOURCE_ID"/>
+ <field ref="RESOURCE_GROUP_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_CONFIG_GROUP_UPDATE">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="GROUP_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_GROUP"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="true" references="RHQ_CONFIG"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ </table>
+
+ <table name="RHQ_CONFIG_UPDATE">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="true" references="RHQ_CONFIG" ondelete="cascade"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="false" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="CONFIG_RES_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+ <column name="PLUGIN_CONFIG_RES_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+ <column name="AGG_RES_UPDATE_ID" type="INTEGER" required="false" references="RHQ_CONFIG_GROUP_UPDATE"/>
+ <column name="AGG_PLUGIN_UPDATE_ID" type="INTEGER" required="false" references="RHQ_CONFIG_GROUP_UPDATE"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="10"/>
+ </table>
+
+<!-- END: inventory-schema.xml -->
+<!-- BEGIN: auth-schema.xml -->
+
+
+ <table name="RHQ_PRINCIPAL">
+
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PRINCIPAL" required="true" type="VARCHAR2" size="100"/>
+ <column name="PASSWORD" required="true" type="VARCHAR2" size="64"/>
+
+ <!-- ensure that principals are unique -->
+ <index name="RHQ_PRINCIPAL_PRINCIPAL_KEY" unique="true">
+ <field ref="PRINCIPAL"/>
+ </index>
+
+ </table>
+
+<!-- END: auth-schema.xml -->
+<!-- BEGIN: authz-schema.xml -->
+
+
+ <table name="RHQ_ROLE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="DESCRIPTION" size="100" type="VARCHAR2"/>
+ <column name="FSYSTEM" type="BOOLEAN" default="false"/>
+
+ <index name="RHQ_ROLE_NAME_KEY" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ROLE_RESOURCE_GROUP_MAP">
+ <column name="ROLE_ID" required="true" type="INTEGER" references="RHQ_ROLE"/>
+ <column name="RESOURCE_GROUP_ID" required="true" type="INTEGER" references="RHQ_RESOURCE_GROUP"/>
+
+ <constraint name="RHQ_ROLE_RES_GROUP_MAP_KEY">
+ <primaryKey>
+ <field ref="ROLE_ID"/>
+ <field ref="RESOURCE_GROUP_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PERMISSION">
+ <column name="ROLE_ID" type="INTEGER" references="RHQ_ROLE" required="true"/>
+ <column name="OPERATION" type="INTEGER" required="true"/>
+ <constraint name="RHQ_PERMISSION_PK">
+ <primaryKey>
+ <field ref="ROLE_ID"/>
+ <field ref="OPERATION"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_SUBJECT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG"/>
+ <column name="FIRST_NAME" required="false" size="100" type="VARCHAR2"/>
+ <column name="LAST_NAME" required="false" size="100" type="VARCHAR2"/>
+ <column name="EMAIL_ADDRESS" size="100" type="VARCHAR2"/>
+ <column name="SMS_ADDRESS" size="100" type="VARCHAR2"/>
+ <column name="PHONE_NUMBER" size="100" type="VARCHAR2"/>
+ <column name="DEPARTMENT" size="100" type="VARCHAR2"/>
+ <column name="FACTIVE" required="true" type="BOOLEAN" default="true"/>
+ <column name="FSYSTEM" required="true" type="BOOLEAN" default="false"/>
+
+ <index name="RHQ_SUBJECT_AUTH_KEY" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_SUBJECT_ROLE_MAP">
+ <column name="SUBJECT_ID" required="true" type="INTEGER" references="RHQ_SUBJECT"/>
+ <column name="ROLE_ID" required="true" type="INTEGER" references="RHQ_ROLE"/>
+
+ <constraint name="RHQ_SUBJECT_ROLE_MAPPING_KEY">
+ <primaryKey>
+ <field ref="SUBJECT_ID"/>
+ <field ref="ROLE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: authz-schema.xml -->
+<!-- BEGIN: operation-schema.xml -->
+
+
+ <table name="RHQ_OPERATION_DEF">
+
+ <!-- === required columns === -->
+
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE(ID)"/>
+ <column name="NAME" type="VARCHAR2" required="true" size="100"/>
+
+ <!-- === optional columns === -->
+
+ <!-- an OSGI version range - if null, the operation def applies to all versions of the associated resource type -->
+ <column name="RESOURCE_VERSION_RANGE" type="VARCHAR2" size="100"/>
+
+ <!-- A parameter config definition is only required for operations that have parameters. -->
+ <!-- A results config definition is only required for operations that return data. -->
+ <column name="PARAMETER_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+ <column name="RESULTS_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="4000"/>
+ <column name="TIMEOUT" type="INTEGER"/>
+
+ <!-- === business key (RESOURCE_TYPE_ID + NAME) === -->
+ <index name="RHQ_OPERATION_DEF_KEY_IDX" unique="true">
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="NAME"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_OPERATION_HISTORY">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="8"/>
+ <column name="JOB_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="JOB_GROUP" type="VARCHAR2" required="true" size="100"/>
+ <column name="OPERATION_DEF_ID" type="INTEGER" required="true" references="RHQ_OPERATION_DEF"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="STIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="PARAMETERS_CONFIG_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+
+ <!-- for resource history -->
+ <column name="RESOURCE_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+ <column name="RESULTS_CONFIG_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ <column name="GROUP_HISTORY_ID" type="INTEGER" required="false" references="RHQ_OPERATION_HISTORY"/>
+
+ <!-- for group history -->
+ <column name="GROUP_ID" type="INTEGER" required="false" references="RHQ_RESOURCE_GROUP"/>
+
+ <index name="RHQ_OPERATION_HISTORY_JOB_IDX" unique="true">
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ <field ref="CTIME"/>
+ </index>
+
+ </table>
+
+ <!--
+ This table is really just to support some specific use-cases.
+ Specifically, to be able to get a list of histories for a specific schedule (aka quartz job)
+ and to be able to query a list of all schedules along with their associated resource/group IDs
+ possibly sorted by their next fire time.
+ Note that a NULL next fire time means it won't fire again and the row is probaby about to be deleted;
+ we can probably not even insert rows with NULL and make it a non-nullable field. But rather than
+ code special conditions into the session bean, we'll allow a short-lived NULL next fire time row.
+ -->
+ <table name="RHQ_OPERATION_SCHEDULE">
+ <column name="JOB_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="JOB_GROUP" type="VARCHAR2" required="true" size="100"/>
+ <column name="DTYPE" type="VARCHAR2" required="true" size="8"/>
+ <column name="NEXT_FIRE_TIME" type="LONG" required="false"/>
+
+ <!-- for resource history -->
+ <column name="RESOURCE_ID" type="INTEGER" required="false" references="RHQ_RESOURCE"/>
+
+ <!-- for group history -->
+ <column name="GROUP_ID" type="INTEGER" required="false" references="RHQ_RESOURCE_GROUP"/>
+
+ <!--
+ Note that this is the same primary key that Quartz uses for its schedules (RHQ_qrtz_job_details).
+ We do not need to add DTYPE to the key, because we ensure the name/group are unique
+ across resource/group schedules
+ -->
+ <constraint name="RHQ_OPERATION_SCHEDULE_KEY">
+ <primaryKey>
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: operation-schema.xml -->
+<!-- BEGIN: sysconfig-schema.xml -->
+
+
+ <table name="RHQ_SYSTEM_CONFIG">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="PROPERTY_KEY" type="VARCHAR2" size="80"/>
+ <column name="PROPERTY_VALUE" type="VARCHAR2" size="300"/>
+ <column name="DEFAULT_PROPERTY_VALUE" type="VARCHAR2" size="300"/>
+ <column name="FREAD_ONLY" type="BOOLEAN" default="FALSE"/>
+
+ <index name="RHQ_SYSTEM_CONFIG_KEY_INDX" unique="true">
+ <field ref="PROPERTY_KEY"/>
+ </index>
+ </table>
+
+<!-- END: sysconfig-schema.xml -->
+<!-- BEGIN: scheduler-schema.xml -->
+
+
+ <table name="RHQ_QRTZ_JOB_DETAILS">
+ <column name="JOB_NAME" required="true" type="VARCHAR2" size="80"/>
+ <column name="JOB_GROUP" required="true" type="VARCHAR2" size="80"/>
+ <column name="DESCRIPTION" required="false" type="VARCHAR2" size="120"/>
+ <column name="JOB_CLASS_NAME" required="true" type="VARCHAR2" size="128"/>
+ <column name="IS_DURABLE" required="true" type="BOOLEAN" default="FALSE"/>
+ <column name="IS_VOLATILE" required="true" type="BOOLEAN"/>
+ <column name="IS_STATEFUL" required="true" type="BOOLEAN" default="FALSE"/>
+ <column name="REQUESTS_RECOVERY" required="true" type="BOOLEAN" default="FALSE"/>
+ <column name="JOB_DATA" required="false" type="BLOB"/>
+
+ <constraint name="RHQ_PK_QRTZ_JOB_DETAILS">
+ <primaryKey>
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_QRTZ_JOB_LISTENERS">
+ <column name="JOB_NAME" required="true" type="VARCHAR2" size="80"/>
+ <column name="JOB_GROUP" required="true" type="VARCHAR2" size="80"/>
+ <column name="JOB_LISTENER" required="true" type="VARCHAR2" size="80"/>
+
+ <constraint name="RHQ_PK_QRTZ_JOB_LISTENERS">
+ <primaryKey>
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ <field ref="JOB_LISTENER"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_JOB_LSTNRS_JN_JG">
+ <foreignKey local="JOB_NAME,JOB_GROUP"
+ references="RHQ_QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+ </table>
+
+ <table name="RHQ_QRTZ_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" required="true" size="80"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" required="true" size="80"/>
+ <column name="JOB_NAME" type="VARCHAR2" required="true" size="80"/>
+ <column name="JOB_GROUP" type="VARCHAR2" required="true" size="80"/>
+ <column name="IS_VOLATILE" type="BOOLEAN" required="true"/>
+ <column name="DESCRIPTION" type="VARCHAR2" required="false" size="120"/>
+ <column name="NEXT_FIRE_TIME" type="LONG" required="false"/>
+ <column name="PREV_FIRE_TIME" type="LONG" required="false"/>
+ <column name="PRIORITY" type="INTEGER" required="false"/>
+ <column name="TRIGGER_STATE" type="VARCHAR" required="true" size="16"/>
+ <column name="TRIGGER_TYPE" type="VARCHAR" required="true" size="8"/>
+ <column name="START_TIME" type="LONG" required="true"/>
+ <column name="END_TIME" type="LONG" required="false"/>
+ <column name="CALENDAR_NAME" type="VARCHAR2" required="false" size="80"/>
+ <column name="MISFIRE_INSTR" type="INTEGER" required="false"/>
+ <column name="JOB_DATA" type="BLOB" required="false"/>
+
+ <constraint name="RHQ_PK_QRTZ_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_TRIGGERS_JN_JG">
+ <foreignKey local="JOB_NAME,JOB_GROUP"
+ references="RHQ_QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend these indexes. -->
+ <index name="RHQ_QRTZ_TRIGGERS_JN_JG_IDX">
+ <field ref="JOB_NAME"/>
+ <field ref="JOB_GROUP"/>
+ </index>
+ <index name="RHQ_QRTZ_TRIGGERS_NFT_IDX">
+ <field ref="NEXT_FIRE_TIME"/>
+ </index>
+ <index name="RHQ_QRTZ_TRIGGERS_TS_IDX">
+ <field ref="TRIGGER_STATE"/>
+ </index>
+ <index name="RHQ_QRTZ_TRIGGERS_TS_NFT_IDX">
+ <field ref="TRIGGER_STATE"/>
+ <field ref="NEXT_FIRE_TIME"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_QRTZ_SIMPLE_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" required="true" size="80"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" required="true" size="80"/>
+ <column name="REPEAT_COUNT" type="LONG" required="true"/>
+ <column name="REPEAT_INTERVAL" type="LONG" required="true"/>
+ <column name="TIMES_TRIGGERED" type="LONG" required="true"/>
+
+ <constraint name="RHQ_PK_QRTZ_SIMPLE_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_SIMPLE_TRGRS_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <!-- Commenting out, because Oracle auto-creates an index for the
+ primary key column(s) and fails if you try to create another
+ index for the same column(s) (ips, 03/29/07).
+ -->
+ <!--
+ <index name="RHQ_QRTZ_SIMPLE_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ -->
+ </table>
+
+ <table name="RHQ_QRTZ_CRON_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="CRON_EXPRESSION" type="VARCHAR2" size="80" required="true"/>
+ <column name="TIME_ZONE_ID" type="VARCHAR2" size="80" required="false"/>
+
+ <constraint name="RHQ_PK_QRTZ_CRON_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_CRON_TRIG_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <!-- Commenting out, because Oracle auto-creates an index for the
+ primary key column(s) and fails if you try to create another
+ index for the same column(s) (ips, 03/29/07).
+ -->
+ <!--
+ <index name="RHQ_QRTZ_CRON_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ -->
+ </table>
+
+ <table name="RHQ_QRTZ_BLOB_TRIGGERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="BLOB_DATA" type="BLOB" required="false"/>
+
+ <constraint name="RHQ_PK_QRTZ_BLOB_TRIGGERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_BLOB_TRIGG_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <!-- Commenting out, because Oracle auto-creates an index for the
+ primary key column(s) and fails if you try to create another
+ index for the same column(s) (ips, 03/29/07).
+ -->
+ <!--
+ <index name="RHQ_QRTZ_BLOB_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ -->
+ </table>
+
+ <table name="RHQ_QRTZ_TRIGGER_LISTENERS">
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_LISTENER" type="VARCHAR2" size="80" required="true"/>
+
+ <constraint name="RHQ_PK_QRTZ_TRIGGER_LISTENERS">
+ <primaryKey>
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ <field ref="TRIGGER_LISTENER"/>
+ </primaryKey>
+ </constraint>
+ <constraint name="RHQ_FK_QRTZ_TRGR_LSTNRS_TN_TG">
+ <foreignKey local="TRIGGER_NAME,TRIGGER_GROUP"
+ references="RHQ_QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)"
+ ondelete="cascade"/>
+ </constraint>
+
+ <!-- Quartz docs recommend this index. -->
+ <index name="RHQ_QRTZ_TRGR_LSTNRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_QRTZ_FIRED_TRIGGERS">
+ <column name="ENTRY_ID" primarykey="true" type="VARCHAR2" size="95" required="true"/>
+ <column name="TRIGGER_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="TRIGGER_GROUP" type="VARCHAR2" size="80" required="true"/>
+ <column name="INSTANCE_NAME" type="VARCHAR2" size="80" required="true"/>
+ <column name="FIRED_TIME" type="LONG" required="true"/>
+ <column name="PRIORITY" type="INTEGER" required="false"/>
+ <column name="STATE" type="VARCHAR2" size="16" required="true"/>
+ <column name="IS_VOLATILE" type="BOOLEAN" required="true"/>
+ <column name="JOB_NAME" type="VARCHAR2" size="80" required="false"/>
+ <column name="JOB_GROUP" type="VARCHAR2" size="80" required="false"/>
+ <column name="IS_STATEFUL" type="BOOLEAN" required="false"/>
+ <column name="REQUESTS_RECOVERY" type="BOOLEAN" required="false"/>
+
+ <!-- Quartz docs recommend these indexes. -->
+ <index name="RHQ_QRTZ_FIRED_TRGRS_TN_IDX">
+ <field ref="TRIGGER_NAME"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_TG_IDX">
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_TN_TG_IDX">
+ <field ref="TRIGGER_NAME"/>
+ <field ref="TRIGGER_GROUP"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_IN_IDX">
+ <field ref="INSTANCE_NAME"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_JN_IDX">
+ <field ref="JOB_NAME"/>
+ </index>
+ <index name="RHQ_QRTZ_FIRED_TRGRS_JG_IDX">
+ <field ref="JOB_GROUP"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_QRTZ_CALENDARS">
+ <column name="CALENDAR_NAME" primarykey="true" type="VARCHAR2" size="80" required="true"/>
+ <column name="CALENDAR" type="BLOB" required="true"/>
+ </table>
+
+ <table name="RHQ_QRTZ_PAUSED_TRIGGER_GRPS">
+ <column name="TRIGGER_GROUP" primarykey="true" type="VARCHAR2" size="80" required="true"/>
+ </table>
+
+ <table name="RHQ_QRTZ_SCHEDULER_STATE">
+ <column name="INSTANCE_NAME" primarykey="true" type="VARCHAR2" size="80" required="true"/>
+ <column name="LAST_CHECKIN_TIME" type="LONG" required="true"/>
+ <column name="CHECKIN_INTERVAL" type="LONG" required="true"/>
+ <column name="RECOVERER" type="VARCHAR2" size="80" required="false"/>
+ </table>
+
+ <table name="RHQ_QRTZ_LOCKS">
+ <column name="LOCK_NAME" primarykey="true" type="VARCHAR2" size="40" required="true"/>
+ <data LOCK_NAME="TRIGGER_ACCESS"/>
+ <data LOCK_NAME="JOB_ACCESS"/>
+ <data LOCK_NAME="CALENDAR_ACCESS"/>
+ <data LOCK_NAME="STATE_ACCESS"/>
+ <data LOCK_NAME="MISFIRE_ACCESS"/>
+ </table>
+
+<!-- END: scheduler-schema.xml -->
+<!-- BEGIN: amps-schema.xml -->
+
+
+
+ <table name="RHQ_PLUGIN">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DESCRIPTION" size="4000" type="VARCHAR2" required="false"/>
+ <column name="VERSION" size="200" type="VARCHAR2" required="false"/>
+ <column name="ENABLED" type="BOOLEAN" required="true"/>
+ <column name="HELP" type="CLOB" required="false"/>
+ <column name="PATH" size="500" type="VARCHAR2" required="true"/>
+ <column name="MD5" size="100" type="VARCHAR2" required="true"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="CONTENT" type="BLOB" required="false"/>
+
+ <index name="RHQ_PLUGIN_NAME_IDX" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+<!-- END: amps-schema.xml -->
+<!-- BEGIN: measurement-schema.xml -->
+
+ <table name="RHQ_MEASUREMENT_DEF">
+
+ <!-- === required columns === -->
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE(ID)"/>
+ <column name="NAME" type="VARCHAR2" size="100" required="true"/>
+
+ <!-- === optional columns === -->
+ <!-- an OSGI version range - if null, the metric def applies to all versions of the associated resource type -->
+ <column name="RESOURCE_VERSION_RANGE" type="VARCHAR2" size="100"/>
+ <column name="CATEGORY" type="SMALLINT"/>
+ <column name="UNITS" type="SMALLINT"/>
+ <column name="NUMERIC_TYPE" type="SMALLINT"/>
+ <column name="DISPLAY_TYPE" type="SMALLINT"/>
+ <column name="DATA_TYPE" type="SMALLINT"/>
+ <column name="RAW_NUMERIC_TYPE" type="SMALLINT"/>
+ <column name="DEFAULT_ON" type="BOOLEAN" default="false"/>
+ <column name="DEFAULT_INTERVAL" type="LONG" />
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DISPLAY_ORDER" type="INTEGER" default="1000"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="500"/>
+ <column name="DESTINATION_TYPE" type="VARCHAR2" size="100"/>
+
+ <column name="VERSION" type="INTEGER"/>
+ <!-- for optimistic locking -->
+
+ <!-- === business key (RESOURCE_TYPE_ID + NAME + RAW_NUMERIC_TYPE) === -->
+ <index name="RHQ_METRIC_DEF_KEY_IDX" unique="true">
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="NAME"/>
+ <field ref="RAW_NUMERIC_TYPE"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_SCHED">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+
+ <column name="ENABLED" type="BOOLEAN" default="false"/>
+ <column name="MTIME" type="LONG" />
+ <column name="DEFINITION" type="INTEGER" references="RHQ_MEASUREMENT_DEF(ID)"/>
+ <column name="VERSION" type="INTEGER" />
+ <column name="COLL_INTERVAL" type="LONG" />
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE(ID)"/>
+ <index name="RHQ_MEAS_SCHED_UNIQ" unique="true">
+ <field ref="RESOURCE_ID"/>
+ <field ref="DEFINITION"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_BLINE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+
+ <column name="BL_USER_ENTERED" type="BOOLEAN" default="false" required="true"/>
+ <column name="BL_MIN" type="DOUBLE" required="true"/>
+ <column name="BL_MAX" type="DOUBLE" required="true"/>
+ <column name="BL_MEAN" type="DOUBLE" required="true"/>
+ <column name="BL_COMPUTE_TIME" type="LONG" required="true"/>
+ <column name="SCHEDULE_ID" type="INTEGER" required="true" references="RHQ_MEASUREMENT_SCHED(ID)"/>
+ <index name="RHQ_MEAS_BASELINE_CTIME_IDX">
+ <field ref="BL_COMPUTE_TIME"/>
+ </index>
+ <index name="RHQ_MEAS_BASELINE_SID_IDX">
+ <field ref="SCHEDULE_ID"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_NUM_1H" logging="false" cache="true"
+ tablespace="DEFAULT" storage-options="freelists 20">
+
+ <column name="TIME_STAMP" required="true" type="LONG"/>
+ <column name="SCHEDULE_ID" required="true" type="INTEGER"/>
+ <column name="VALUE" required="false" type="DOUBLE"/>
+ <column name="MINVALUE" required="false" type="DOUBLE"/>
+ <column name="MAXVALUE" required="false" type="DOUBLE"/>
+
+ <constraint name="RHQ_MEAS_DATA_1H_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+
+ <index name="RHQ_MEAS_DATA_1H_TIME_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_NUM_6H" logging="false" cache="true"
+ tablespace="DEFAULT" storage-options="freelists 20">
+
+ <column name="TIME_STAMP" required="true" type="LONG"/>
+ <column name="SCHEDULE_ID" required="true" type="INTEGER"/>
+ <column name="VALUE" required="false" type="DOUBLE"/>
+ <column name="MINVALUE" required="false" type="DOUBLE"/>
+ <column name="MAXVALUE" required="false" type="DOUBLE"/>
+
+ <constraint name="RHQ_MEAS_DATA_6H_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+
+ <index name="RHQ_MEAS_DATA_6H_TIME_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_NUM_1D" logging="false" cache="true"
+ tablespace="DEFAULT" storage-options="freelists 20">
+
+ <column name="TIME_STAMP" required="true" type="LONG"/>
+ <column name="SCHEDULE_ID" required="true" type="INTEGER"/>
+ <column name="VALUE" required="false" type="DOUBLE"/>
+ <column name="MINVALUE" required="false" type="DOUBLE"/>
+ <column name="MAXVALUE" required="false" type="DOUBLE"/>
+
+ <constraint name="RHQ_MEAS_DATA_1D_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+
+ <table name="RHQ_MEASUREMENT_DATA_TRAIT">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER" />
+ <column name="VALUE" type="VARCHAR2" size="4000" />
+ <constraint name="RHQ_MEAS_DATA_TRAIT_ID_TIME_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+
+ <table name="RHQ_CALLTIME_DATA_KEY">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="SCHEDULE_ID" type="INTEGER" required="true"/>
+ <column name="CALL_DESTINATION" type="VARCHAR2" size="4000" required="true"/>
+ <index name="RHQ_CALLTIME_DATA_KEY_IDX" unique="true">
+ <field ref="SCHEDULE_ID"/>
+ <field ref="CALL_DESTINATION"/>
+ </index>
+ </table>
+
+
+ <table name="RHQ_CALLTIME_DATA_VALUE">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="KEY_ID" type="INTEGER" references="RHQ_CALLTIME_DATA_KEY" required="true"/>
+ <column name="BEGIN_TIME" type="LONG" required="true"/>
+ <column name="END_TIME" type="LONG" required="true"/>
+ <column name="MINIMUM" type="DOUBLE" required="true"/>
+ <column name="MAXIMUM" type="DOUBLE" required="true"/>
+ <column name="TOTAL" type="DOUBLE" required="true"/>
+ <column name="COUNT" type="LONG" required="true"/>
+ </table>
+
+
+ <table name="RHQ_AVAILABILITY">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE(ID)"/>
+ <column name="START_TIME" type="LONG" required="true" />
+ <column name="END_TIME" type="LONG" required="false" />
+ <column name="AVAILABILITY_TYPE" type="SMALLINT" required="false" />
+ <index name="RHQ_AVAIL_RESOURCE_START_IDX">
+ <field ref="RESOURCE_ID"/>
+ <field ref="START_TIME"/>
+ </index>
+ <!-- only one null row can exist for any resource -->
+ <index name="RHQ_AVAIL_RESOURCE_END_IDX" condition="END_TIME IS NULL">
+ <field ref="RESOURCE_ID"/>
+ <field ref="END_TIME" />
+ </index>
+ </table>
+
+ <table name="RHQ_RESOURCE_AVAIL">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE(ID)" ondelete="cascade"/>
+ <column name="AVAILABILITY_TYPE" type="SMALLINT" required="false" />
+ <index name="RHQ_RESOURCE_AVAIL_IDX">
+ <field ref="RESOURCE_ID" />
+ </index>
+ </table>
+
+ <!-- !!!!! REMOVED !!!!! -->
+ <table name="RHQ_MEASUREMENT_OOB" obsolete="true">
+ <column name="ID" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true"/>
+ <column name="SCHEDULE_ID" type="INTEGER" references="RHQ_MEASUREMENT_SCHED(ID)" required="true"/>
+ <column name="OCCURRED" type="LONG" required="true"/>
+ <column name="DIFF" type="DOUBLE" required="true"/>
+
+ <index name="RHQ_MEASUREMENT_OOB_IDX" unique="true">
+ <field ref="SCHEDULE_ID" />
+ <field ref="OCCURRED" />
+ </index>
+ </table>
+
+ <table name="RHQ_MEASUREMENT_OOB">
+ <column name="SCHEDULE_ID" type="INTEGER" references="RHQ_MEASUREMENT_SCHED(ID)" required="true"/>
+ <column name="TIME_STAMP" type="LONG" required="true"/>
+ <column name="OOB_FACTOR" type="INTEGER" required="true" />
+ <constraint name="RHQ_MEAS_OOB_ID_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_MEASUREMENT_OOB_TMP">
+ <column name="SCHEDULE_ID" type="INTEGER" required="true"/>
+ <column name="TIME_STAMP" type="LONG" required="true"/>
+ <column name="OOB_FACTOR" type="INTEGER" required="true" />
+ <constraint name="RHQ_MEAS_OOB_TMP_ID_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_NUMBERS">
+ <column name="i" type="INTEGER" default="sequence-only" initial="10001" primarykey="true" required="true" />
+ </table>
+
+
+ <table name="RHQ_MEAS_DATA_NUM_R00">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R00_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R00_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R01">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R01_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R01_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R02">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R02_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R02_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R03">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R03_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R03_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R04">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R04_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R04_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R05">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R05_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R05_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R06">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R06_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R06_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R07">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R07_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R07_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R08">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R08_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R08_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R09">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R09_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R09_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R10">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R10_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R10_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R11">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R11_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R11_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R12">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R12_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R12_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R13">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R13_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R13_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+ <table name="RHQ_MEAS_DATA_NUM_R14">
+ <column name="TIME_STAMP" type="LONG"/>
+ <column name="SCHEDULE_ID" type="INTEGER"/>
+ <column name="VALUE" type="DOUBLE"/>
+ <index name="RHQ_MEAS_DATA_R14_TS_IDX">
+ <field ref="TIME_STAMP"/>
+ </index>
+ <constraint name="RHQ_MEAS_DATA_NUM_R14_ID_T_PK">
+ <primaryKey>
+ <field ref="SCHEDULE_ID"/>
+ <field ref="TIME_STAMP"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: measurement-schema.xml -->
+<!-- BEGIN: content-schema.xml -->
+
+
+ <table name="RHQ_ARCHITECTURE">
+ <column name="ID" default="sequence-only" initial="100" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="50" type="VARCHAR2" required="true"/>
+ <index name="RHQ_ARCHITECTURE_NAME_IDX" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE_TYPE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="false"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="PLUGIN_NAME" size="100" type="VARCHAR2" required="false"/>
+ <!-- we might want this as part of natural key -->
+ <column name="DEFAULT_LAZY_LOAD" type="BOOLEAN" required="true"/>
+ <column name="DEFAULT_DOWNLOAD_MODE" size="16" type="VARCHAR2" required="true"/>
+ <column name="DEFAULT_SYNC_SCHEDULE" size="64" type="VARCHAR2" required="false"/>
+ <column name="API_CLASS" size="100" type="VARCHAR2" required="true"/>
+
+ <column name="SOURCE_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF" required="false"/>
+
+ <index name="RHQ_CONTENT_SOURCE_TYPE_IDX" unique="true">
+ <field ref="NAME"/>
+ <!-- <field ref="PLUGIN_NAME"/> -->
+ </index>
+ </table>
+
+ <table name="RHQ_CONTENT_SOURCE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="LAZY_LOAD" type="BOOLEAN" required="true"/>
+ <column name="DOWNLOAD_MODE" size="16" type="VARCHAR2" required="true"/>
+ <column name="SYNC_SCHEDULE" size="64" type="VARCHAR2" required="false"/>
+ <column name="LOAD_ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="CREATION_TIME" type="LONG" required="true"/>
+ <column name="LAST_MODIFIED_TIME" type="LONG" required="true"/>
+
+ <column name="CONTENT_SOURCE_TYPE_ID" type="INTEGER" references="RHQ_CONTENT_SOURCE_TYPE" required="true"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" references="RHQ_CONFIG" required="false"/>
+
+ <index name="RHQ_CONTENT_SOURCE_IDX" unique="true">
+ <field ref="NAME"/>
+ <field ref="CONTENT_SOURCE_TYPE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_CHANNEL">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="CREATION_TIME" type="LONG" required="true"/>
+ <column name="LAST_MODIFIED_TIME" type="LONG" required="true"/>
+
+ <index name="RHQ_CHANNEL_IDX" unique="true">
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PACKAGE_TYPE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="false"/>
+ <column name="DESCRIPTION" size="500" type="VARCHAR2" required="false"/>
+ <column name="CATEGORY" size="50" type="VARCHAR2" required="false"/>
+ <column name="DISCOVERY_INTERVAL" type="INTEGER" required="false"/>
+ <column name="IS_CREATION_DATA" type="BOOLEAN" required="true"/>
+ <column name="SUPPORTS_ARCHITECTURE" type="BOOLEAN" required="true"/>
+
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE" required="true"/>
+ <column name="DEPLOYMENT_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF" required="false"/>
+ <column name="PACKAGE_EXTRA_CONFIG_ID" type="INTEGER" references="RHQ_CONFIG_DEF" required="false"/>
+
+ <index name="RHQ_PACKAGE_TYPE_IDX" unique="true">
+ <field ref="NAME"/>
+ <field ref="RESOURCE_TYPE_ID"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_PACKAGE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" size="200" type="VARCHAR2" required="true"/>
+ <column name="CLASSIFICATION" size="200" type="VARCHAR2" required="false"/>
+
+ <column name="PACKAGE_TYPE_ID" type="INTEGER" references="RHQ_PACKAGE_TYPE" required="true"/>
+
+ <index name="RHQ_PACKAGE_IDX" unique="true">
+ <field ref="NAME"/>
+ <field ref="PACKAGE_TYPE_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_PACKAGE_BITS">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="BITS" type="BLOB" required="false"/>
+ </table>
+
+ <table name="RHQ_PACKAGE_VERSION">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="DISPLAY_NAME" size="200" type="VARCHAR2" required="false"/>
+ <column name="SHORT_DESCRIPTION" size="10000" type="CLOB" required="false"/>
+ <column name="LONG_DESCRIPTION" size="50000" type="CLOB" required="false"/>
+ <column name="VERSION" size="500" type="VARCHAR2" required="true"/>
+ <column name="DISPLAY_VERSION" size="500" type="VARCHAR2" required="false"/>
+ <column name="FILE_NAME" size="255" type="VARCHAR2" required="false"/>
+ <column name="FILE_SIZE" type="LONG" required="false"/>
+ <column name="FILE_MD5" size="32" type="VARCHAR2" required="false"/>
+ <column name="FILE_SHA256" size="64" type="VARCHAR2" required="false"/>
+ <column name="FILE_CREATION_TIME" type="LONG" required="false"/>
+ <column name="LICENSE_NAME" size="255" type="VARCHAR2" required="false"/>
+ <column name="LICENSE_VERSION" size="20" type="VARCHAR2" required="false"/>
+ <column name="METADATA" type="BLOB" required="false"/>
+
+ <column name="PACKAGE_ID" type="INTEGER" references="RHQ_PACKAGE" required="true"/>
+ <column name="ARCHITECTURE_ID" type="INTEGER" references="RHQ_ARCHITECTURE" required="true"/>
+ <column name="CONFIG_ID" type="INTEGER" references="RHQ_CONFIG" required="false"/>
+ <column name="PACKAGE_BITS_ID" type="INTEGER" references="RHQ_PACKAGE_BITS" required="false"/>
+
+ <index name="RHQ_PACKAGE_VERSION_IDX" unique="true">
+ <field ref="PACKAGE_ID"/>
+ <field ref="VERSION"/>
+ <field ref="ARCHITECTURE_ID"/>
+ </index>
+
+ </table>
+
+ <table name="RHQ_CONTENT_REQ">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="REQUEST_TYPE" type="VARCHAR2" required="true" size="20"/>
+ <column name="NOTES" type="VARCHAR2" required="false" size="512"/>
+ </table>
+
+ <table name="RHQ_INSTALLED_PACKAGE">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="INSTALLATION_TIME" type="LONG" required="false"/>
+
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE" required="true"/>
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" references="RHQ_PACKAGE_VERSION" required="true"/>
+ <column name="SUBJECT_ID" type="INTEGER" references="RHQ_SUBJECT" required="false"/>
+ </table>
+
+ <table name="RHQ_INSTALLED_PKG_HIST">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="STATUS" type="VARCHAR2" size="24" required="true"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="HISTORY_TIMESTAMP" type="LONG" required="false"/>
+
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" references="RHQ_PACKAGE_VERSION" required="true"/>
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE" required="true"/>
+ <column name="DEPLOYMENT_CONFIG_ID" type="INTEGER" references="RHQ_CONFIG" required="false"/>
+ <column name="CONTENT_SERVICE_REQUEST_ID" type="INTEGER" references="RHQ_CONTENT_REQ" required="false"/>
+ </table>
+
+ <table name="RHQ_CONTENT_SRC_SYNC">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="STATUS" type="VARCHAR2" size="16" required="true"/>
+ <column name="START_TIME" type="LONG" required="true"/>
+ <column name="END_TIME" type="LONG" required="false"/>
+ <column name="RESULTS" type="LONGVARCHAR" required="false"/>
+
+ <column name="CONTENT_SRC_ID" type="INTEGER" required="true" references="RHQ_CONTENT_SOURCE"/>
+ </table>
+
+ <table name="RHQ_PACKAGE_INST_STEP">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="STEP_KEY" type="VARCHAR2" size="500" required="true"/>
+ <column name="STEP_ORDER" type="INTEGER" required="true"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="4000" required="true"/>
+ <column name="ERROR_MSG" type="LONGVARCHAR" required="false"/>
+ <column name="RESULT" type="VARCHAR2" size="25" required="true"/>
+
+ <column name="INSTALLED_PKG_HIST_ID" type="INTEGER" references="RHQ_INSTALLED_PKG_HIST"/>
+ </table>
+
+ <table name="RHQ_CHANNEL_RESOURCE_MAP">
+ <column name="CHANNEL_ID" type="INTEGER" required="true" references="RHQ_CHANNEL"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="CTIME" type="LONG" required="true"/>
+
+ <constraint name="RHQ_CHANNEL_RESOURCE_MAP_KEY">
+ <primaryKey>
+ <field ref="CHANNEL_ID"/>
+ <field ref="RESOURCE_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_CHANNEL_CONTENT_SRC_MAP">
+ <column name="CHANNEL_ID" type="INTEGER" required="true" references="RHQ_CHANNEL"/>
+ <column name="CONTENT_SRC_ID" type="INTEGER" required="true" references="RHQ_CONTENT_SOURCE"/>
+ <column name="CTIME" type="LONG" required="true"/>
+
+ <constraint name="RHQ_CHAN_CONTENT_SRC_MAP_KEY">
+ <primaryKey>
+ <field ref="CHANNEL_ID"/>
+ <field ref="CONTENT_SRC_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_CHANNEL_PKG_VERSION_MAP">
+ <column name="CHANNEL_ID" type="INTEGER" required="true" references="RHQ_CHANNEL"/>
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" required="true" references="RHQ_PACKAGE_VERSION"/>
+ <column name="CTIME" type="LONG" required="true"/>
+
+ <constraint name="RHQ_CHANNEL_PKG_VER_MAP_KEY">
+ <primaryKey>
+ <field ref="CHANNEL_ID"/>
+ <field ref="PACKAGE_VERSION_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PKG_VER_CONTENT_SRC_MAP">
+ <column name="PACKAGE_VERSION_ID" type="INTEGER" required="true" references="RHQ_PACKAGE_VERSION"/>
+ <column name="CONTENT_SRC_ID" type="INTEGER" required="true" references="RHQ_CONTENT_SOURCE"/>
+ <column name="LOCATION" type="VARCHAR2" size="4000" required="true"/>
+
+ <constraint name="RHQ_PKG_VER_CONTENT_SRC_KEY">
+ <primaryKey>
+ <field ref="PACKAGE_VERSION_ID"/>
+ <field ref="CONTENT_SRC_ID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="RHQ_PKG_PRD_MAP">
+ <column name="PKG_ID" type="INTEGER" required="true" references="RHQ_PACKAGE_VERSION"/>
+ <column name="PRD_ID" type="INTEGER" required="true" references="RHQ_PRD_VER"/>
+
+ <constraint name="RHQ_PKG_PRD_KEY">
+ <primaryKey>
+ <field ref="PKG_ID"/>
+ <field ref="PRD_ID"/>
+ </primaryKey>
+ </constraint>
+
+ </table>
+
+<!-- END: content-schema.xml -->
+<!-- BEGIN: resource-request-schema.xml -->
+
+
+ <table name="RHQ_CREATE_RES_HIST">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="PARENT_RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ <column name="CREATED_RESOURCE_NAME" type="VARCHAR2" size="500" required="false"/>
+ <column name="NEW_RESOURCE_KEY" type="VARCHAR2" required="false" size="500"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE"/>
+ <column name="CONFIGURATION_ID" type="INTEGER" required="false" references="RHQ_CONFIG"/>
+ <column name="INSTALLED_PACKAGE_ID" type="INTEGER" required="false" references="RHQ_INSTALLED_PACKAGE"/>
+ </table>
+
+ <table name="RHQ_DELETE_RES_HIST">
+ <column name="ID" type="INTEGER" required="true" default="sequence-only" initial="10001" primarykey="true"/>
+ <column name="ERROR_MESSAGE" type="LONGVARCHAR" required="false"/>
+ <column name="SUBJECT_NAME" type="VARCHAR2" required="true" size="100"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="STATUS" type="VARCHAR2" required="true" size="16"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE"/>
+ </table>
+
+<!-- END: resource-request-schema.xml -->
+<!-- BEGIN: jms-schema.xml -->
+
+<!-- the schema matches that which would be automatically created by the JMS subsystem -->
+<!-- see deploy/jms/rhq-jdbc-state-service.xml and rhq-jdbc2-service.xml -->
+
+
+ <table name="JMS_MESSAGES">
+ <column name="MESSAGEID" required="true" type="INTEGER" />
+ <column name="DESTINATION" required="true" type="VARCHAR2" size="255" />
+ <column name="TXID" required="false" type="INTEGER" />
+ <column name="TXOP" required="false" type="CHAR" size="1" />
+ <column name="MESSAGEBLOB" required="false" type="BLOB" />
+
+ <constraint name="JMS_MESSAGES_PKEY">
+ <primaryKey>
+ <field ref="MESSAGEID"/>
+ <field ref="DESTINATION"/>
+ </primaryKey>
+ </constraint>
+
+ <index name="JMS_MESSAGES_TXOP_TXID">
+ <field ref="TXOP"/>
+ <field ref="TXID"/>
+ </index>
+ <index name="JMS_MESSAGES_DESTINATION">
+ <field ref="DESTINATION"/>
+ </index>
+ </table>
+
+ <table name="JMS_TRANSACTIONS">
+ <column name="TXID" required="true" type="INTEGER" primarykey="true" />
+ </table>
+
+ <table name="JMS_USERS">
+ <column name="USERID" required="true" type="VARCHAR2" size="32" primarykey="true" />
+ <column name="PASSWD" required="true" type="VARCHAR2" size="32" />
+ <column name="CLIENTID" required="false" type="VARCHAR2" size="128" />
+ </table>
+
+ <table name="JMS_ROLES">
+ <column name="ROLEID" required="true" type="VARCHAR2" size="32" />
+ <column name="USERID" required="true" type="VARCHAR2" size="32" />
+
+ <constraint name="JMS_ROLES_PKEY">
+ <primaryKey>
+ <field ref="USERID"/>
+ <field ref="ROLEID"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+ <table name="JMS_SUBSCRIPTIONS">
+ <column name="CLIENTID" required="true" type="VARCHAR2" size="128" />
+ <column name="SUBNAME" required="true" type="VARCHAR2" size="128" />
+ <column name="TOPIC" required="true" type="VARCHAR2" size="255" />
+ <column name="SELECTOR" required="false" type="VARCHAR2" size="255" />
+
+ <constraint name="JMS_SUBSCRIPTIONS_PKEY">
+ <primaryKey>
+ <field ref="CLIENTID"/>
+ <field ref="SUBNAME"/>
+ </primaryKey>
+ </constraint>
+ </table>
+
+<!-- END: jms-schema.xml -->
+<!-- BEGIN: alert-schema.xml -->
+
+
+ <table name="RHQ_ALERT_DEFINITION">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NAME" required="true" size="100" type="VARCHAR2"/>
+ <column name="CTIME" type="LONG" required="true"/>
+ <column name="MTIME" type="LONG" required="true"/>
+ <column name="PARENT_ID" type="INTEGER" required="false"/>
+ <column name="GROUP_ALERT_DEF_ID" type="INTEGER" required="false"/>
+ <column name="DESCRIPTION" required="false" size="250" type="VARCHAR2"/>
+ <column name="PRIORITY" type="VARCHAR2" size="15" required="true"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" references="RHQ_RESOURCE_TYPE" required="false"/>
+ <column name="RESOURCE_ID" type="INTEGER" references="RHQ_RESOURCE" required="false"/>
+ <column name="RESOURCE_GROUP_ID" type="INTEGER" references="RHQ_RESOURCE_GROUP" required="false"/>
+ <column name="ENABLED" required="true" default="TRUE" type="BOOLEAN"/>
+
+ <column name="REQUIRED" required="true" type="SMALLINT"/>
+
+ <column name="RECOVERY_ID" type="INTEGER" required="true"/>
+ <!-- required, but 0 effectively means null -->
+ <column name="WILL_RECOVER" required="true" default="false" type="BOOLEAN"/>
+ <column name="NOTIFY_FILTERED" required="true" default="false" type="BOOLEAN"/>
+ <column name="CONTROL_FILTERED" required="true" default="FALSE" type="BOOLEAN"/>
+
+ <column name="DELETED" required="true" default="FALSE" type="BOOLEAN"/>
+ <column name="READ_ONLY" required="true" default="FALSE" type="BOOLEAN"/>
+
+ <column name="DAMPENING_CATEGORY" type="SMALLINT" required="true"/>
+ <column name="DAMPENING_VALUE" type="INTEGER"/>
+ <column name="DAMPENING_VALUE_UNITS" type="SMALLINT"/>
+ <column name="DAMPENING_PERIOD" type="INTEGER"/>
+ <column name="DAMPENING_PERIOD_UNITS" type="SMALLINT"/>
+
+ <column name="OPERATION_DEF_ID" type="INTEGER" references="RHQ_OPERATION_DEF(ID)"/>
+ </table>
+
+ <table name="RHQ_ALERT_DAMPEN_EVENT">
+ <column name="ID" default="sequence-only" initial="10001" primarykey="true" required="true" type="INTEGER"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="EVENT_TYPE" required="true" type="SMALLINT"/>
+ <column name="EVENT_TIMESTAMP" required="true" type="LONG"/>
+
+ <index name="RHQ_DAMPENING_EVENT_TYPE_IDX">
+ <field ref="EVENT_TYPE"/>
+ </index>
+ <index name="RHQ_DAMPENING_EVENT_TS_IDX">
+ <field ref="EVENT_TIMESTAMP"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ALERT_CONDITION">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="TYPE" required="true" type="VARCHAR2" size="15"/>
+ <!--
+ <column name="REQUIRED" required="true" type="BOOLEAN"/>
+ -->
+ <column name="MEASUREMENT_DEFINITION_ID" required="false" type="INTEGER"/>
+ <column name="NAME" required="false" size="100" type="VARCHAR2"/>
+ <column name="COMPARATOR" required="false" size="2" type="VARCHAR2"/>
+ <column name="THRESHOLD" required="false" type="DOUBLE"/>
+ <!-- event-based conditions use OPTION_STATUS for the string match, so should be a decent length -->
+ <column name="OPTION_STATUS" required="false" size="256" type="VARCHAR2"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="TRIGGER_ID" required="false" type="INTEGER"/>
+ </table>
+
+ <table name="RHQ_ALERT" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="TRIGGERED_OPERATION" required="false" type="VARCHAR2" size="255"/>
+ <column name="RECOVERY_ID" type="INTEGER" required="true"/>
+ <!-- required, but 0 effectively means null -->
+ <column name="WILL_RECOVER" required="true" default="false" type="BOOLEAN"/>
+ <index name="RHQ_ALERT_IDX_TIME" unique="false">
+ <field ref="CTIME"/>
+ </index>
+ <index name="RHQ_ALERT_IDX_ALERTDEF" unique="false">
+ <field ref="ALERT_DEFINITION_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ALERT_NOTIF_LOG" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="ALERT_ID" required="true" type="INTEGER" references="RHQ_ALERT(ID)"/>
+ <index name="RHQ_ALERT_IDX_ALERT" unique="true">
+ <field ref="ALERT_ID"/>
+ </index>
+ <column name="ROLES" required="false" size="200" type="VARCHAR2"/>
+ <column name="SUBJECTS" required="false" size="200" type="VARCHAR2"/>
+ <column name="EMAILS" required="false" size="200" type="VARCHAR2"/>
+ </table>
+
+ <table name="RHQ_ALERT_CONDITION_LOG" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="CTIME" required="true" type="LONG"/>
+ <column name="ALERT_ID" required="false" type="INTEGER" references="RHQ_ALERT(ID)"/>
+ <column name="CONDITION_ID" required="true" type="INTEGER" references="RHQ_ALERT_CONDITION(ID)"/>
+ <column name="VALUE" required="false" size="250" type="VARCHAR2"/>
+ <index name="RHQ_ALERT_COND_LOG_IDX_TIME">
+ <field ref="CTIME" />
+ </index>
+ <index name="RHQ_ALERT_COND_LOG_IDX_ALERT">
+ <field ref="ALERT_ID"/>
+ </index>
+ </table>
+
+ <table name="RHQ_ALERT_NOTIFICATION" tablespace="DEFAULT"
+ storage-options="freelists 5" cache="true" logging="false">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="NOTIFICATION_TYPE" required="true" size="20" type="VARCHAR2"/>
+ <column name="ALERT_DEFINITION_ID" required="false" type="INTEGER" references="RHQ_ALERT_DEFINITION(ID)"/>
+ <column name="ROLE_ID" type="INTEGER" references="RHQ_ROLE(ID)"/>
+ <column name="SUBJECT_ID" type="INTEGER" references="RHQ_SUBJECT(ID)"/>
+ <column name="EMAIL_ADDRESS" size="100" type="VARCHAR2"/>
+ <column name="SNMP_HOST" size="100" type="VARCHAR2"/>
+ <column name="SNMP_PORT" type="INTEGER"/>
+ <column name="SNMP_OID" size="250" type="VARCHAR2"/>
+ </table>
+
+<!-- END: alert-schema.xml -->
+<!-- BEGIN: event-schema.xml -->
+
+
+ <!-- metadata -->
+
+ <table name="RHQ_EVENT_DEF">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="RESOURCE_TYPE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE_TYPE(ID)"/>
+
+ <column name="NAME" type="VARCHAR2" size="100" required="true"/>
+ <column name="DISPLAY_NAME" type="VARCHAR2" size="100"/>
+ <column name="DESCRIPTION" type="VARCHAR2" size="1000"/>
+
+ <index name="RHQ_EVENT_DEF_IDX" unique="true">
+ <field ref="RESOURCE_TYPE_ID"/>
+ <field ref="NAME"/>
+ </index>
+ </table>
+
+ <!-- instance data -->
+
+ <table name="RHQ_EVENT_SOURCE">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="EVENT_DEF_ID" type="INTEGER" required="true" references="RHQ_EVENT_DEF(ID)"/>
+ <column name="RESOURCE_ID" type="INTEGER" required="true" references="RHQ_RESOURCE(ID)"/>
+
+ <column name="LOCATION" required="true" size="2000" type="VARCHAR2"/>
+
+ <index name="RHQ_EVENT_SOURCE_IDX" unique="true">
+ <field ref="EVENT_DEF_ID"/>
+ <field ref="RESOURCE_ID"/>
+ <field ref="LOCATION"/>
+ </index>
+ </table>
+
+ <table name="RHQ_EVENT">
+ <column name="ID" default="sequence-only" initial="10001"
+ primarykey="true" required="true" type="INTEGER"/>
+ <column name="EVENT_SOURCE_ID" type="INTEGER" required="true" references="RHQ_EVENT_SOURCE(ID)"/>
+
+ <column name="TIMESTAMP" required="true" type="LONG"/>
+ <column name="SEVERITY" required="true" size="20" type="VARCHAR2"/>
+ <column name="DETAIL" required="true" size="4000" type="VARCHAR2"/>
+ <index name="RHQ_EVENT_IDX" unique="false">
+ <field ref="EVENT_SOURCE_ID"/>
+ <field ref="TIMESTAMP"/>
+ </index>
+ </table>
+
+<!-- END: event-schema.xml -->
+</dbsetup>
commit 8f86f29ad2a90dab4854f06d39cf794acabdac10
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Jun 9 12:57:13 2010 -0400
several minor fixes to previously checked in fix for https://bugzilla.redhat.com/show_bug.cgi?id=601921 and https://bugzilla.redhat.com/show_bug.cgi?id=601328
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
index 6e9db6a..bafa62f 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
@@ -112,12 +112,6 @@ public class CreateNewPackageUIBean {
private String newRepoName;
/**
- * Type of resource against which the package is being created. This is loaded from information in the request
- * and is used to determine if we need to perform different handling for package-backed resources.
- */
- private ResourceType resourceType;
-
- /**
* If this create is against a package-backed resource, this will hold the current package backing the resource.
* We'll use this to auto-populate the name, architecture, and type in the case of pushing an update.
*/
@@ -139,7 +133,6 @@ public class CreateNewPackageUIBean {
selectedArchitectureId = getBackingPackageArchitectureId();
selectedPackageTypeId = getBackingPackageTypeId();
}
- @SuppressWarnings({"UnnecessaryLocalVariable"})
String response = createNewPackage(packageName, version, selectedArchitectureId, selectedPackageTypeId);
return response;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
index 3e70234..990281b 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
@@ -78,7 +78,7 @@
</h:panelGroup>
<ui:remove><!-- row 4 --></ui:remove>
- <h:panelGroup style="float: right" rendered="#{CreateNewPackageUIBean.supportsArchitecture}">
+ <h:panelGroup style="float: right">
<b>Architecture <span class="required-marker-text">*</span></b>
</h:panelGroup>
<h:panelGroup style="clear: both" rendered="#{CreateNewPackageUIBean.supportsArchitecture}">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml
index 1fdbf51..1860c06 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml
@@ -61,7 +61,7 @@
</h:panelGrid>
<h:outputText rendered="#{!ResourceUIBean.permissions.content}"
- value="You do not have permissions to upload content"/>
+ value="You do not have permissions to upload content."/>
<rich:panel >
@@ -91,12 +91,15 @@
</h:panelGrid>
</rich:panel>
- <div class="note-panel"><span class="required-marker-text">*</span><span> denotes a required field.</span></div>
+ <h:panelGroup styleClass="note-panel" rendered="#{CreateNewPackageChildResourceUIBean.configurationDefinition eq null}">
+ <span class="required-marker-text">*</span><span> denotes a required field.</span>
+ </h:panelGroup>
<onc:config configurationDefinition="#{CreateNewPackageChildResourceUIBean.configurationDefinition}"
configuration="#{CreateNewPackageChildResourceUIBean.configuration}"
nullConfigurationDefinitionMessage="#{CreateNewPackageChildResourceUIBean.nullConfigurationDefinitionMessage}"
- nullConfigurationMessage="#{CreateNewPackageChildResourceUIBean.nullConfigurationMessage}"/>
+ nullConfigurationMessage="#{CreateNewPackageChildResourceUIBean.nullConfigurationMessage}"
+ rendered="#{CreateNewPackageChildResourceUIBean.configurationDefinition ne null}"/>
<h:panelGrid id="buttonGrid" columns="2" styleClass="buttons-table" columnClasses="button-cell">
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 60b5b8f..6288fcb 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -1512,7 +1512,6 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
* as the agent side discovery mechanism, and passes in additional parameters available
* when file has been uploaded via the UI.
*/
- @Override
public PackageVersion getUploadedPackageVersion(String packageName, int packageTypeId, String version,
int architectureId, InputStream packageBitStream, Map<String, String> packageUploadDetails,
int newResourceTypeId) {
commit e688d27cdc8c7a0537e7556c7329b8f8d09bb49e
Merge: 8793259... 63ed10c...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Jun 9 12:08:39 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 63ed10cb156bc2a369b068677db8d313906825bb
Merge: 5ffabd1... 4612eb9...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Jun 9 11:51:37 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 5ffabd1071be7a6f620af9c9587168dcb65e4e54
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed Jun 9 11:51:13 2010 -0400
remove un-needed input fields from create-new-pacjage-backed-child-resource and content-new-upload-new-version pages (fix for https://bugzilla.redhat.com/show_bug.cgi?id=601921 and https://bugzilla.redhat.com/show_bug.cgi?id=601328)
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
index fbe9977..6e9db6a 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateNewPackageUIBean.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -60,7 +60,10 @@ import org.rhq.enterprise.server.util.LookupUtil;
/**
* Collects data necessary for creating an artifact and provides actions to perform the create.
*
+ * The associated Facelets page is: /rhq/resource/content/create.xhtml
+ *
* @author Jason Dobies
+ * @author Ian Springer
*/
public class CreateNewPackageUIBean {
@@ -83,7 +86,6 @@ public class CreateNewPackageUIBean {
/**
* Option value for no repo. This is a standalone war that may not be related to any repo.
- *
*/
private static final String REPO_OPTION_NONE = "none";
@@ -99,7 +101,7 @@ public class CreateNewPackageUIBean {
private String subscribedRepoId;
/**
- * If the user selects to add the package to an existing repo taht the resource is not already subscribed to,
+ * If the user selects to add the package to an existing repo that the resource is not already subscribed to,
* this will be populated with that repo ID.
*/
private String unsubscribedRepoId;
@@ -132,20 +134,13 @@ public class CreateNewPackageUIBean {
}
public String createPackage() {
- HttpServletRequest request = FacesContextUtility.getRequest();
-
- String response;
- if (request.getParameter("newPackage") != null) {
- response = createNewPackage(packageName, version, selectedArchitectureId, selectedPackageTypeId);
- } else {
- String packageName = getBackingPackageName();
- String version = Long.toString(System.currentTimeMillis());
- int architectureId = getBackingPackageArchitectureId();
- int packageTypeId = getBackingPackageTypeId();
-
- response = createNewPackage(packageName, version, architectureId, packageTypeId);
+ if (!isNeedRequestPackageDetails()) {
+ packageName = getBackingPackageName();
+ selectedArchitectureId = getBackingPackageArchitectureId();
+ selectedPackageTypeId = getBackingPackageTypeId();
}
-
+ @SuppressWarnings({"UnnecessaryLocalVariable"})
+ String response = createNewPackage(packageName, version, selectedArchitectureId, selectedPackageTypeId);
return response;
}
@@ -298,7 +293,7 @@ public class CreateNewPackageUIBean {
String[] selectedPackages = FacesContextUtility.getRequest().getParameterValues("selectedPackages");
if (selectedPackages == null || selectedPackages.length == 0) {
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "At least one package must be selected");
+ FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "At least one package must be selected.");
return "failure";
}
@@ -384,7 +379,7 @@ public class CreateNewPackageUIBean {
return items;
}
- public boolean getNeedRequestPackageDetails() {
+ public boolean isNeedRequestPackageDetails() {
boolean isPackageBacked = isResourcePackageBacked();
boolean backingPackageExists = lookupBackingPackage() != null;
@@ -411,11 +406,11 @@ public class CreateNewPackageUIBean {
}
public String getBackingPackageName() {
- InstalledPackage ip = lookupBackingPackage();
- PackageVersion pv = ip.getPackageVersion();
- Package p = pv.getGeneralPackage();
+ InstalledPackage installedPackage = lookupBackingPackage();
+ PackageVersion packageVersion = installedPackage.getPackageVersion();
+ Package pkg = packageVersion.getGeneralPackage();
- return p.getName();
+ return pkg.getName();
}
public int getBackingPackageArchitectureId() {
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
index 786d579..c364459 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/CreateNewPackageChildResourceUIBean.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -63,14 +63,14 @@ import org.rhq.enterprise.server.resource.ResourceTypeNotFoundException;
import org.rhq.enterprise.server.util.LookupUtil;
/**
- * Handles the workflow for creating a new package-backed resource.
+ * Handles the workflow for creating a new package-backed Resource.
+ *
+ * The associated Facelets page is: /rhq/resource/inventory/create-package-1.xhtml
*
* @author Jason Dobies
* @author Ian Springer
*/
public class CreateNewPackageChildResourceUIBean {
- private final Log log = LogFactory.getLog(this.getClass());
-
// Constants --------------------------------------------
public static final String MANAGED_BEAN_NAME = "CreateNewPackageChildResourceUIBean";
@@ -79,16 +79,19 @@ public class CreateNewPackageChildResourceUIBean {
// private static final String OUTCOME_SUCCESS = "success";
private static final String OUTCOME_CANCEL = "cancel";
+ private static final String DEFAULT_VERSION = "1.0";
+
// Attributes --------------------------------------------
+ private final Log log = LogFactory.getLog(this.getClass());
+
private ResourceType resourceType;
private PackageType packageType;
private String packageName;
- private String version = "1.0";//default it to 1.0
- private int selectedPackageTypeId;
+ private String version = DEFAULT_VERSION;
- private int selectedArchitectureId;
+ private Integer selectedArchitectureId;
private CreateResourceHistory retryCreateItem;
private ConfigurationDefinition configurationDefinition;
@@ -104,7 +107,7 @@ public class CreateNewPackageChildResourceUIBean {
// Actions --------------------------------------------
/**
- * Performs the creation of an package-backed resource.
+ * Performs the creation of an package-backed Resource.
*
* @return outcome of the creation attempt
*/
@@ -138,14 +141,10 @@ public class CreateNewPackageChildResourceUIBean {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "A package file must be uploaded");
return null;
}
- if ((getVersion() == null) || (getVersion().trim().length() == 0)) {//version
+ if ((getVersion() == null) || (getVersion().trim().length() == 0)) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "A package version must be specified.");
return null;
}
- if ((getSelectedPackageTypeId() < 0) || (getVersion().trim().length() == 0)) {//type
- FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "A package type must be specified.");
- return null;
- }
ConfigurationManagerLocal configurationManager = LookupUtil.getConfigurationManager();
ConfigurationDefinition pluginConfigurationDefinition = configurationManager
@@ -168,15 +167,9 @@ public class CreateNewPackageChildResourceUIBean {
return OUTCOME_SUCCESS_OR_FAILURE;
}
- //pull in archictecture selection
- selectedArchitectureId = getSelectedArchitectureId();
-
- // If the type does not support architectures, load the no architecture entity and use that
- if (!packageType.isSupportsArchitecture()) {
- ContentManagerLocal contentManager = LookupUtil.getContentManager();
- Architecture noArchitecture = contentManager.getNoArchitecture();
-
- selectedArchitectureId = noArchitecture.getId();
+ if (isSupportsArchitecture()) {
+ // pull in architecture selection
+ selectedArchitectureId = getSelectedArchitectureId();
}
// Collect data for create call
@@ -219,6 +212,7 @@ public class CreateNewPackageChildResourceUIBean {
String errorMessages = ThrowableUtil.getAllMessages(e);
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR,
"Failed to send create resource request to agent. Cause: " + errorMessages);
+ log.error("Failed to create new child Resource of type [" + getResourceType() + "].", e);
return OUTCOME_SUCCESS_OR_FAILURE;
}
@@ -233,6 +227,10 @@ public class CreateNewPackageChildResourceUIBean {
return OUTCOME_SUCCESS_OR_FAILURE;
}
+ public boolean isSupportsArchitecture() {
+ return packageType.isSupportsArchitecture();
+ }
+
private void cleanup(UploadNewChildPackageUIBean uploadUIBean) {
if (uploadUIBean != null) {
uploadUIBean.clear();
@@ -280,16 +278,18 @@ public class CreateNewPackageChildResourceUIBean {
}
private PackageType lookupPackageType() {
- if (resourceType == null)
+ if (resourceType == null) {
resourceType = lookupResourceType();
+ }
ContentManagerLocal contentManager = LookupUtil.getContentManager();
PackageType packageType = contentManager.getResourceCreationPackageType(this.resourceType.getId());
return packageType;
}
protected ConfigurationDefinition lookupConfigurationDefinition() {
- if (packageType == null)
+ if (packageType == null) {
packageType = lookupPackageType();
+ }
ConfigurationDefinition configurationDefinition = this.packageType.getDeploymentConfigurationDefinition();
return configurationDefinition;
}
@@ -392,11 +392,11 @@ public class CreateNewPackageChildResourceUIBean {
}
public String getNullConfigurationDefinitionMessage() {
- return "This resource type does not expose deployment time configuration values.";
+ return "This resource type does not expose deployment-time configuration values.";
}
public String getNullConfigurationMessage() {
- return "Unable to create an initial deployment time configuration for resource being added.";
+ return "Unable to create an initial deployment-time configuration for resource being added.";
}
private int getResourceTypeId() {
@@ -424,14 +424,6 @@ public class CreateNewPackageChildResourceUIBean {
this.version = version;
}
- public int getSelectedPackageTypeId() {
- return selectedPackageTypeId;
- }
-
- public void setSelectedPackageTypeId(int selectedPackageTypeId) {
- this.selectedPackageTypeId = selectedPackageTypeId;
- }
-
public SelectItem[] getPackageTypes() {
Resource resource = EnterpriseFacesContextUtility.getResource();
@@ -447,5 +439,4 @@ public class CreateNewPackageChildResourceUIBean {
return items;
}
-
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
index ec32881..3e70234 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/content/create.xhtml
@@ -43,44 +43,74 @@
<h:form id="uploadForm">
<input type="hidden" name="id" value="${param.id}"/>
- <!-- <rich:panel rendered="#{CreateNewPackageUIBean.needRequestPackageDetails}">-->
- <rich:panel >
-
- <f:facet name="header">New Package Details</f:facet>
-
- <input type="hidden" name="newPackage" value="true"/>
-
- <table>
- <tr>
- <td align="right"><b>Name*</b></td>
- <td align="left"><h:inputText value="#{CreateNewPackageUIBean.packageName}"/></td>
- </tr>
- <tr>
- <td align="right"><b>Version*</b></td>
- <td align="left"><h:inputText value="#{CreateNewPackageUIBean.version}"/></td>
- </tr>
- <tr>
- <td align="right"><b>Architecture*</b></td>
- <td align="left">
- <h:selectOneMenu value="#{CreateNewPackageUIBean.selectedArchitectureId}">
- <f:selectItems value="#{CreateNewPackageUIBean.architectures}" />
- </h:selectOneMenu>
- </td>
- </tr>
- <tr>
- <td align="right"><b>Type*</b></td>
- <td align="left">
- <h:selectOneMenu value="#{CreateNewPackageUIBean.selectedPackageTypeId}">
- <f:selectItems value="#{CreateNewPackageUIBean.packageTypes}" />
- </h:selectOneMenu>
- </td>
- </tr>
- </table>
-
- <div class="note-panel"><span class="required-marker-text">*</span><span> denotes a required field.</span></div>
+ <rich:panel rendered="#{CreateNewPackageUIBean.needRequestPackageDetails}">
+
+ <f:facet name="header">New Package Details</f:facet>
+
+ <h:panelGrid columns="2">
+
+ <ui:remove><!-- row 1 --></ui:remove>
+ <h:panelGroup style="float: right">
+ <b>Type <span class="required-marker-text">*</span></b>
+ </h:panelGroup>
+ <h:panelGroup style="clear: both">
+ <h:selectOneMenu value="#{CreateNewPackageUIBean.selectedPackageTypeId}">
+ <f:selectItems value="#{CreateNewPackageUIBean.packageTypes}"/>
+ </h:selectOneMenu>
+ </h:panelGroup>
+
+ <ui:remove><!-- row 2 --></ui:remove>
+ <h:panelGroup style="float: right">
+ <b>Name <span class="required-marker-text">*</span></b>
+ </h:panelGroup>
+ <h:panelGroup style="clear: both">
+ <h:inputText id="packageName" value="#{CreateNewPackageUIBean.packageName}" required="true"/>
+ <h:message for="packageName" styleClass="ValidationErrorText"/>
+ </h:panelGroup>
+
+ <ui:remove><!-- row 3 --></ui:remove>
+ <h:panelGroup style="float: right">
+ <b>Version <span class="required-marker-text">*</span></b>
+ </h:panelGroup>
+ <h:panelGroup style="clear: both">
+ <h:inputText id="initialVersion" value="#{CreateNewPackageUIBean.version}" required="true"/>
+ <h:message for="initialVersion" styleClass="ValidationErrorText"/>
+ </h:panelGroup>
+
+ <ui:remove><!-- row 4 --></ui:remove>
+ <h:panelGroup style="float: right" rendered="#{CreateNewPackageUIBean.supportsArchitecture}">
+ <b>Architecture <span class="required-marker-text">*</span></b>
+ </h:panelGroup>
+ <h:panelGroup style="clear: both" rendered="#{CreateNewPackageUIBean.supportsArchitecture}">
+ <h:selectOneMenu value="#{CreateNewPackageUIBean.selectedArchitectureId}">
+ <f:selectItems value="#{CreateNewPackageUIBean.architectures}" />
+ </h:selectOneMenu>
+ </h:panelGroup>
+
+ </h:panelGrid>
+
+ </rich:panel>
+
+ <rich:panel rendered="#{not CreateNewPackageUIBean.needRequestPackageDetails}">
+
+ <f:facet name="header">Package Update Details</f:facet>
+
+ <h:panelGrid columns="2">
+
+ <h:panelGroup style="float: right">
+ <b>Version <span class="required-marker-text">*</span></b>
+ </h:panelGroup>
+ <h:panelGroup style="clear: both">
+ <h:inputText id="updateVersion" value="#{CreateNewPackageUIBean.version}" required="true"/>
+ <h:message for="updateVersion" styleClass="ValidationErrorText"/>
+ </h:panelGroup>
+
+ </h:panelGrid>
</rich:panel>
+ <div class="note-panel"><span class="required-marker-text">*</span><span> denotes a required field.</span></div>
+
<rich:panel>
<f:facet name="header">Repository</f:facet>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml
index 2851427..1fdbf51 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/create-package-1.xhtml
@@ -65,34 +65,33 @@
<rich:panel >
- <f:facet name="header">Package Version Details</f:facet>
-
- <input type="hidden" name="packageVersion" value="true"/>
-
- <table>
- <tr>
- <td align="right"><b>Version *</b></td>
- <td align="left"><h:inputText value="#{CreateNewPackageChildResourceUIBean.version}"/></td>
- </tr>
- <tr>
- <td align="right"><b>Architecture </b></td>
- <td align="left">
- <h:selectOneMenu value="#{CreateNewPackageChildResourceUIBean.selectedArchitectureId}">
- <f:selectItems value="#{CreateNewPackageChildResourceUIBean.architectures}" />
- </h:selectOneMenu>
- </td>
- </tr>
- <tr>
- <td align="right"><b>Type *</b></td>
- <td align="left">
- <h:selectOneMenu value="#{CreateNewPackageChildResourceUIBean.selectedPackageTypeId}">
- <f:selectItems value="#{CreateNewPackageChildResourceUIBean.packageTypes}" />
- </h:selectOneMenu>
- </td>
- </tr>
- </table>
+ <f:facet name="header">Package Version Details</f:facet>
+
+ <h:panelGrid columns="2">
+
+ <ui:remove><!-- row 1 --></ui:remove>
+ <h:panelGroup style="float: right">
+ <b>Version <span class="required-marker-text">*</span></b>
+ </h:panelGroup>
+ <h:panelGroup style="clear: both">
+ <h:inputText id="version" value="#{CreateNewPackageChildResourceUIBean.version}" required="true"/>
+ <h:message for="version" styleClass="ValidationErrorText"/>
+ </h:panelGroup>
+
+ <ui:remove><!-- row 2 --></ui:remove>
+ <h:panelGroup style="float: right" rendered="#{CreateNewPackageChildResourceUIBean.supportsArchitecture}">
+ <b>Architecture <span class="required-marker-text">*</span></b>
+ </h:panelGroup>
+ <h:panelGroup style="clear: both" rendered="#{CreateNewPackageChildResourceUIBean.supportsArchitecture}">
+ <h:selectOneMenu value="#{CreateNewPackageChildResourceUIBean.selectedArchitectureId}">
+ <f:selectItems value="#{CreateNewPackageChildResourceUIBean.architectures}" />
+ </h:selectOneMenu>
+ </h:panelGroup>
+
+ </h:panelGrid>
</rich:panel>
+ <div class="note-panel"><span class="required-marker-text">*</span><span> denotes a required field.</span></div>
<onc:config configurationDefinition="#{CreateNewPackageChildResourceUIBean.configurationDefinition}"
configuration="#{CreateNewPackageChildResourceUIBean.configuration}"
commit 4612eb90f1923b878f6701dab23023e9cd0dbbfc
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 9 09:07:34 2010 -0400
remove legacy 'triggerOperation' (operation-based custom alert sender replaces this)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
index 20c4de9..6a71d97 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerBean.java
@@ -43,8 +43,6 @@ import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.quartz.SchedulerException;
-import org.quartz.SimpleTrigger;
import org.jboss.annotation.IgnoreDependency;
import org.jboss.annotation.ejb.TransactionTimeout;
@@ -638,30 +636,7 @@ public class AlertManagerBean implements AlertManagerLocal, AlertManagerRemote {
// process recovery actions
processRecovery(alertDefinition);
- sendAlertNotifications(newAlert);
-
- triggerOperation(alertDefinition);
- }
-
- @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public void triggerOperation(AlertDefinition alertDefinition) {
- OperationDefinition operationDefinition = alertDefinition.getOperationDefinition();
- if (operationDefinition == null) {
- return;
- }
-
- Subject overlord = subjectManager.getOverlord(); // use overlord for system side-effects
-
- try {
- operationManager.scheduleResourceOperation(overlord, alertDefinition.getResource().getId(),
- operationDefinition.getName(), null, // today, only no-arg operations can be executed via alerting
- new SimpleTrigger("alerting", "alerting", new Date()), "Triggered when "
- + alertDefinition.toSimpleString() + " fired an alert off");
- } catch (SchedulerException se) {
- // as of 10/23/2007, there's not much we can do proactively. just log that this happened for now.
- log.error(alertDefinition.toSimpleString() + " could not successfully schedule " + "its operation "
- + operationDefinition.getName());
- }
+ sendAlertNotifications(newAlert); // this really needs to be done async,
}
/**
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerLocal.java
index a55926a..f32c82e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertManagerLocal.java
@@ -24,7 +24,6 @@ import java.util.Map;
import javax.ejb.Local;
import org.rhq.core.domain.alert.Alert;
-import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.alert.AlertPriority;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.criteria.AlertCriteria;
@@ -84,8 +83,6 @@ public interface AlertManagerLocal {
void sendAlertNotifications(Alert alert);
- void triggerOperation(AlertDefinition alertDefinition);
-
int getAlertCountByMeasurementDefinitionAndResources(int measurementDefinitionId, int[] resources, long beginDate,
long endDate);
commit ce1219095b5b03e86f91826a99e4df48661806b0
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 9 09:06:08 2010 -0400
BZ-601983: improve audit trail for operation-based alert notifications
toString() variants are now...
* on this resource
* on the ( <resource ancestry> ) resource
* on the <ancestorType> ancestor
* on the '{name}' <descendantType> descendant
* on the '{name}' <descendantType> descendant under the <ancestorType> ancestor
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml
index 1837d73..09823a2 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/alert-schema.xml
@@ -98,7 +98,7 @@
</index>
<column name="SENDER" required="false" size="200" type="VARCHAR2"/>
<column name="RESULT_STATE" required="false" size="20" type="VARCHAR2"/>
- <column name="MESSAGE" required="false" size="255" type="VARCHAR2"/>
+ <column name="MESSAGE" required="false" size="4000" type="VARCHAR2"/>
<column name="ALL_EMAILS" required="false" size="4000" type="VARCHAR2"/>
<column name="EMAILS_FAILED" required="false" size="4000" type="VARCHAR2"/>
</table>
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 4ba557b..0a92b99 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2100,7 +2100,7 @@
<schemaSpec version="2.70.5">
<schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="SENDER" columnType="VARCHAR2" precision="200" />
<schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="RESULT_STATE" columnType="VARCHAR2" precision="20" />
- <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="MESSAGE" columnType="VARCHAR2" precision="255" />
+ <schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="MESSAGE" columnType="VARCHAR2" precision="4000" />
<schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="ALL_EMAILS" columnType="VARCHAR2" precision="4000" />
<schema-addColumn table="RHQ_ALERT_NOTIF_LOG" column="EMAILS_FAILED" columnType="VARCHAR2" precision="4000" />
</schemaSpec>
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotificationLog.java b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotificationLog.java
index b90def3..6e25431 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotificationLog.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/alert/notification/AlertNotificationLog.java
@@ -22,7 +22,6 @@
*/
package org.rhq.core.domain.alert.notification;
-
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -51,21 +50,19 @@ import org.rhq.core.domain.alert.Alert;
import org.rhq.core.domain.util.StringUtils;
@Entity
-@NamedQueries( {
- @NamedQuery(name = AlertNotificationLog.QUERY_DELETE_BY_ALERT_CTIME, //
- query = "DELETE AlertNotificationLog anl WHERE anl.id IN (" +
- "SELECT an.id FROM Alert a JOIN a.alertNotificationLogs an WHERE a.ctime BETWEEN :begin AND :end)"),
+@NamedQueries( { @NamedQuery(name = AlertNotificationLog.QUERY_DELETE_BY_ALERT_CTIME, //
+ query = "DELETE AlertNotificationLog anl WHERE anl.id IN ("
+ + "SELECT an.id FROM Alert a JOIN a.alertNotificationLogs an WHERE a.ctime BETWEEN :begin AND :end)"),
@NamedQuery(name = AlertNotificationLog.QUERY_DELETE_BY_RESOURCE, //
- query = "DELETE AlertNotificationLog anl WHERE anl.id IN (" +
- "SELECT an.id FROM Alert a JOIN a.alertNotificationLogs an JOIN a.alertDefinition def " +
- "WHERE def.resource.id = :resourceId)"),
+ query = "DELETE AlertNotificationLog anl WHERE anl.id IN ("
+ + "SELECT an.id FROM Alert a JOIN a.alertNotificationLogs an JOIN a.alertDefinition def "
+ + "WHERE def.resource.id = :resourceId)"),
@NamedQuery(name = AlertNotificationLog.QUERY_DELETE_BY_RESOURCES, //
- query = "DELETE AlertNotificationLog anl WHERE anl.id IN (" +
- "SELECT an.id FROM Alert a JOIN a.alertNotificationLogs an JOIN a.alertDefinition def " +
- "WHERE def.resource.id IN ( :resourceIds ) )")
- })
+ query = "DELETE AlertNotificationLog anl WHERE anl.id IN ("
+ + "SELECT an.id FROM Alert a JOIN a.alertNotificationLogs an JOIN a.alertDefinition def "
+ + "WHERE def.resource.id IN ( :resourceIds ) )") })
@SequenceGenerator(name = "RHQ_ALERT_NOTIF_LOG_ID_SEQ", sequenceName = "RHQ_ALERT_NOTIF_LOG_ID_SEQ")
@Table(name = "RHQ_ALERT_NOTIF_LOG")
@XmlAccessorType(XmlAccessType.FIELD)
@@ -95,16 +92,16 @@ public class AlertNotificationLog implements Serializable {
private String sender;
- @Column(name ="RESULT_STATE")
+ @Column(name = "RESULT_STATE")
@Enumerated(EnumType.STRING)
private ResultState resultState;
private String message;
- @Column(name="ALL_EMAILS")
+ @Column(name = "ALL_EMAILS")
private String allEmails;
- @Column(name="EMAILS_FAILED")
+ @Column(name = "EMAILS_FAILED")
private String badEmails;
@Transient
@@ -113,8 +110,9 @@ public class AlertNotificationLog implements Serializable {
@PrePersist
@PreUpdate
public void trimMessage() {
- if (message!=null && message.length()>255)
- message = message.substring(0,255);
+ if (message != null && message.length() > 4000) {
+ message = message.substring(0, 4000);
+ }
}
protected AlertNotificationLog() {
@@ -127,7 +125,7 @@ public class AlertNotificationLog implements Serializable {
this.message = senderResult.getMessage();
if (resultState == ResultState.DEFERRED_EMAIL && senderResult.getEmails() != null) {
this.transientEmails.addAll(senderResult.getEmails());
- this.allEmails = StringUtils.getListAsString(senderResult.getEmails(),",");
+ this.allEmails = StringUtils.getListAsString(senderResult.getEmails(), ",");
}
}
@@ -148,7 +146,6 @@ public class AlertNotificationLog implements Serializable {
return id;
}
-
public Alert getAlert() {
return alert;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/ViewAlertNotifications.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/ViewAlertNotifications.jsp
index 0be3ee1..f228d2b 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/ViewAlertNotifications.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/resource/common/monitor/alerts/ViewAlertNotifications.jsp
@@ -3,6 +3,7 @@
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html-el" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!-- Content Block Title: Notification -->
<tiles:insert definition=".header.tab">
@@ -13,18 +14,18 @@
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<c:choose>
<c:when test="${not empty aNotifLogs }">
- <thead>
+ <tr>
<td class="BlockLeftAlignLabel" width="10%">Sender</td>
<td class="BlockLeftAlignLabel" width="10%">Result</td>
<td class="BlockLeftAlignLabel" width="30%">Message</td>
<td class="BlockLeftAlignLabel" width="25%">All emails</td>
<td class="BlockLeftAlignLabel" width="25%">Failed emails</td>
- </thead>
+ </tr>
<c:forEach var="notif" items="${aNotifLogs}">
<tr valign="top">
<td class="BlockContent"><c:out value="${notif.sender}"/></td>
<td class="BlockContent"><c:out value="${notif.resultState}"/></td>
- <td class="BlockContent"><c:out value="${notif.message}"/></td>
+ <td class="BlockContent"><c:out escapeXml="false" value="${fn:replace(fn:replace(notif.message, '<', '<'), '>', '>')}"/></td>
<td class="BlockContent"><c:out value="${notif.allEmails}"/></td>
<td class="BlockContent"><c:out value="${notif.badEmails}"/></td>
<p/>
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
index e6a6923..82d5a20 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
@@ -67,7 +67,7 @@ public class OperationInfo {
this.operationId = get(operationId);
this.argumentsConfigurationId = get(argumentsConfigurationId);
- this.error = getErrorString(this);
+ this.error = getErrorString();
}
private Integer get(String data) {
@@ -78,7 +78,7 @@ public class OperationInfo {
return Integer.parseInt(data);
}
- private String getErrorString(OperationInfo info) {
+ private String getErrorString() {
if (mode == ResourceSelectionMode.RELATIVE) {
if (ancestorTypeId == null) {
return "<no 'start search from' selected>";
@@ -115,24 +115,23 @@ public class OperationInfo {
}
public String toString() {
- String resourceInfo = getResourceInfo();
-
- if (resourceInfo == null) {
- return "<no resource selected>";
- }
-
- if (operationId == null) {
- return "<no operation selected> for " + resourceInfo;
+ String errorInfo = getErrorString();
+ if (errorInfo != null) {
+ return errorInfo;
}
- return getOperationDefinition().getDisplayName() + " on " + resourceInfo;
+ String resourceInfo = getResourceInfo();
+ OperationDefinition operation = getOperationDefinition();
+ return "'" + operation.getDisplayName() + "' on " + resourceInfo;
}
public String getResourceInfo() {
/*
- * <operation> on this resource (<resource ancestry>)
- * <operation> on other resource (<resource ancestry>)
- * <operation> on { { name } <descendant> } { under <ancestor> }
+ * 1) "on" this resource
+ * 2) "on" the ( <resource ancestry> ) resource
+ * 3a) "on" the <ancestorType> ancestor
+ * 3b) "on" the '{name}' <descendantType> descendant
+ * 3c) "on" the '{name}' <descendantType> descendant under the <ancestorType> ancestor
*/
if (mode == null) {
return null;
@@ -153,14 +152,14 @@ public class OperationInfo {
}
builder.append(next.getName());
}
- return "other resource ( " + builder.toString() + " )";
+ return "the ( " + builder.toString() + " ) resource";
} else if (mode == ResourceSelectionMode.RELATIVE) {
ResourceType ancestor = getType(ancestorTypeId);
ResourceType descendant = getType(descendantTypeId);
StringBuilder builder = new StringBuilder();
+ builder.append(" the ");
if (descendant != null) {
- builder.append(" the ");
if (descendantName != null) {
builder.append('\'');
builder.append(descendantName); // name only relevant if type is chosen
@@ -168,10 +167,10 @@ public class OperationInfo {
}
builder.append(' ');
builder.append(descendant.getName());
- builder.append(" resource");
+ builder.append(" descendant");
if (ancestor != null) {
- builder.append(" under ");
+ builder.append(" under the ");
}
}
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
index c82ead7..bf96b15 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
@@ -24,7 +24,9 @@ import org.rhq.core.domain.alert.notification.SenderResult;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.operation.JobId;
import org.rhq.core.domain.operation.OperationDefinition;
+import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
import org.rhq.enterprise.server.plugin.pc.alert.AlertSender;
@@ -37,6 +39,9 @@ import org.rhq.enterprise.server.util.LookupUtil;
*/
public class OperationsSender extends AlertSender {
+ private static final String URL_RESOURCE_OPERATION_HISTORY = "/rhq/resource/operation/resourceOperationHistory.xhtml";
+ private static final String URL_RESOURCE_OPERATION_HISTORY_DETAILS = "/rhq/resource/operation/resourceOperationHistoryDetails.xhtml";
+
@Override
public SenderResult send(Alert alert) {
@@ -65,7 +70,7 @@ public class OperationsSender extends AlertSender {
}
}
} catch (Exception e) {
- String message = getResultMessage(info, "failed with " + e.getMessage());
+ String message = getResultMessage(info, "parameterized argument replacement failed with " + e.getMessage());
return new SenderResult(ResultState.FAILURE, message);
}
@@ -75,17 +80,79 @@ public class OperationsSender extends AlertSender {
String description = "Alert operation for " + alert.getAlertDefinition().getName();
ResourceOperationSchedule schedule = LookupUtil.getOperationManager().scheduleResourceOperation(subject,
targetResource.getId(), operation.getName(), 0, 0, 0, 0, replacedParameters, description);
-
- String message = getResultMessage(info, "jobId was " + schedule.getJobId());
+ String message = getResultMessage(info, getHyperLinkForOperationSchedule(subject, targetResource.getId(),
+ operation.getName(), schedule.getJobId()));
return new SenderResult(ResultState.SUCCESS, message);
} catch (Throwable t) {
- String message = getResultMessage(info, "failed with " + t.getMessage());
+ String message = getResultMessage(info, "invocation failed with " + t.getMessage());
return new SenderResult(ResultState.FAILURE, message);
}
}
+ private String getHyperLinkForOperationSchedule(Subject subject, int resourceId, String operationName, JobId jobId) {
+ /*
+ OperationManagerLocal operationManager = LookupUtil.getOperationManager();
+
+ ResourceOperationHistoryCriteria criteria = new ResourceOperationHistoryCriteria();
+ criteria.addFilterJobId(jobId);
+ criteria.addFilterResourceIds(resourceId);
+ criteria.addFilterOperationName(operationName);
+ criteria.addSortStartTime(PageOrdering.DESC); // put most recent at top of results
+ criteria.setPaging(0, 1); // only return one result, in effect the latest
+
+ int retries = 5;
+ OperationHistory history = null;
+ while (history == null && retries-- > 0) {
+ try {
+ Thread.sleep(2000);
+ PageList<ResourceOperationHistory> histories = operationManager
+ .findResourceOperationHistoriesByCriteria(subject, criteria);
+ if (histories.size() > 0 && histories.get(0).getStatus() != OperationRequestStatus.INPROGRESS) {
+ history = histories.get(0);
+ }
+ } catch (InterruptedException ie) {
+ break; // stop if someone is interrupting
+ } catch (Throwable t) {
+ // getOperationHisotryByJobId throws exception instead of returning null if jobId not found
+ continue; // loop and try again
+ }
+ }
+
+ if (history == null) {
+ return "Could not get result status, check operation history "
+ + link("here", URL_RESOURCE_OPERATION_HISTORY + "?id=" + resourceId);
+ }
+
+
+ OperationRequestStatus status = history.getStatus();
+ return "Status was " + decorate(status) + ", see operation details "
+ + link("here", URL_RESOURCE_OPERATION_HISTORY_DETAILS + "?id=" + resourceId + "&opId=" + history.getId());
+ */
+ return "Check the corresponding "
+ + link("operation history", URL_RESOURCE_OPERATION_HISTORY + "?id=" + resourceId) + " for more details.";
+ }
+
+ public String decorate(OperationRequestStatus status) {
+ if (status == null) {
+ return "<unknown>";
+ }
+ if (status == OperationRequestStatus.SUCCESS) {
+ return "<span style=\"color: green; font-weight: bold;\">" + status + "</span>";
+ } else if (status == OperationRequestStatus.FAILURE) {
+ return "<span style=\"color: red; font-weight: bold;\">" + status + "</span>";
+ } else if (status == OperationRequestStatus.CANCELED) {
+ return "<span style=\"color: orange; font-weight: bold;\">" + status + "</span>";
+ } else {
+ return status.toString();
+ }
+ }
+
+ private String link(String label, String url) {
+ return "<a href=\"" + url + "\">" + label + "</a>";
+ }
+
private String getResultMessage(OperationInfo info, String details) {
- return info.getResourceInfo() + ": " + details;
+ return "Executed " + info + "<br/>" + details;
}
@Override
@@ -93,5 +160,4 @@ public class OperationsSender extends AlertSender {
OperationInfo info = OperationInfo.load(alertParameters);
return info.toString();
}
-
}
commit 8e1e17afe40377dd8dabce0e2dca3d1550179b86
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 9 03:03:44 2010 -0400
BZ-601987: fix related-resource execution for operation-based custom alert sender
* it is valid to select an operation from a direct ancestor
** thus, don't throw exceptions when the descendantType field is null
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
index ed9eecb..e6a6923 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
@@ -83,9 +83,7 @@ public class OperationInfo {
if (ancestorTypeId == null) {
return "<no 'start search from' selected>";
}
- if (descendantTypeId == null) {
- return "<no 'filter by' selected>";
- }
+ // if (descendantTypeId == null) wants to execute operation on direct ancestor
} else if (mode == ResourceSelectionMode.SPECIFIC) {
if (resourceId == null) {
return "<no resource selected>";
commit b86046827091b2407a4109d9331699bbd090dcd5
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 9 02:46:09 2010 -0400
fix whitespace, alphabetize GWT service definitions
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
index b60e8cc..b0e8afa 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/CoreGUI.gwt.xml
@@ -23,7 +23,7 @@
<!-- <generate-with class="org.rhq.core.rebind.RecordBuilderGenerator">
<when-type-assignable class="org.rhq.core.domain.util.Recordizable"/>
</generate-with>-->
-
+
<replace-with class="org.rhq.enterprise.gui.coregui.client.components.upload.DynamicCallbackFormImpl">
<when-type-is class="org.rhq.enterprise.gui.coregui.client.components.upload.DynamicCallbackFormImpl"/>
@@ -31,10 +31,9 @@
<replace-with class="org.rhq.enterprise.gui.coregui.client.components.upload.DynamicCallbackFormImplIE6">
<when-type-is class="org.rhq.enterprise.gui.coregui.client.components.upload.DynamicCallbackFormImpl"/>
- <when-property-is name="user.agent" value="ie6"/>
+ <when-property-is name="user.agent" value="ie6"/>
</replace-with>
-
<!-- limit builds to your preferred browser -->
<!-- Safari -->
@@ -52,9 +51,11 @@
<servlet path="/AvailabilityGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.AvailabilityGWTServiceImpl"/>
<servlet path="/BundleGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.BundleGWTServiceImpl"/>
<servlet path="/ConfigurationGwtService" class="org.rhq.enterprise.gui.coregui.server.gwt.ConfigurationGWTServiceImpl"/>
+ <servlet path="/ContentGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.ContentGWTServiceImpl"/>
<servlet path="/MeasurementDataGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.MeasurementDataGWTServiceImpl"/>
<servlet path="/OperationGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.OperationGWTServiceImpl"/>
<servlet path="/RemoteInstallGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.RemoteInstallGWTServiceImpl"/>
+ <servlet path="/RepoGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.RepoGWTServiceImpl"/>
<servlet path="/ResourceBossGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.ResourceBossGWTServiceImpl"/>
<servlet path="/ResourceGroupGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.ResourceGroupGWTServiceImpl"/>
<servlet path="/ResourceGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.ResourceGWTServiceImpl"/>
@@ -63,8 +64,5 @@
<servlet path="/SearchGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.SearchGWTServiceImpl"/>
<servlet path="/SubjectGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.SubjectGWTServiceImpl"/>
<servlet path="/TagGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.TagGWTServiceImpl"/>
- <servlet path="/RemoteInstallGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.RemoteInstallGWTServiceImpl"/>
- <servlet path="/RepoGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.RepoGWTServiceImpl"/>
- <servlet path="/ContentGWTService" class="org.rhq.enterprise.gui.coregui.server.gwt.ContentGWTServiceImpl"/>
</module>
\ No newline at end of file
commit c5915c8806a44de879787fd5a3f883203900c829
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 9 02:36:26 2010 -0400
BZ-601991: fix resource "picker" for specific-resource mode for operation-based alert sender
* simplify picker-popup by removing resource tabs
** this was broken anyway (resourcePicker.xhtml had no JSF nav rules)
* update resourcePicker.xhtml to use GWT-based SearchBar instead of just a plain text input
* appropriately size the popup so that scrollbars will not display by default
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/layout/main-picker.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/layout/main-picker.xhtml
index 78c4ff2..75c50ac 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/layout/main-picker.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/layout/main-picker.xhtml
@@ -18,38 +18,17 @@
<ui:param name="defaultPageTitle" value="Resource Picker"/>
+ <ui:define name="metaHeaders">
+ <script type="text/javascript" language="javascript"
+ src="/coregui/org.rhq.enterprise.gui.coregui.CoreGUI/org.rhq.enterprise.gui.coregui.CoreGUI.nocache.js"></script>
+ <script type="text/javascript" src="/coregui/js/search.js"></script>
+ <link href="/coregui/css/search.css" rel="stylesheet" type="text/css"/>
+ </ui:define>
+
<ui:define name="summary"></ui:define>
<ui:define name="breadcrumbs"></ui:define>
<ui:define name="tabBar">
- <a4j:region>
- <h:form>
- <a4j:poll interval="1200000" timeout="5000"
- reRender="browserTabBarPanel" status="commonStatus" />
- </h:form>
- </a4j:region>
-
-
- <onc:tabBar id="browserTabBarPanel" selectedTabName="#{selectedTabName}" >
- <onc:tab name="Resources"
- displayName="Resources #{InventorySummaryUIBean.resourceCount}"
- url="/rhq/inventory/resourcePicker.xhtml?nomenu=true&subtab=all&fieldId=#{param.fieldId}&formId=#{param.formId}">
- <onc:subtab name="all"
- displayName="All"
- url="/rhq/inventory/resourcePicker.xhtml?nomenu=true&subtab=all&fieldId=#{param.fieldId}&formId=#{param.formId}" />
- <onc:subtab name="platform"
- displayName="Platforms #{InventorySummaryUIBean.platformCount}"
- url="/rhq/inventory/resourcePicker.xhtml?nomenu=true&subtab=platform&fieldId=#{param.fieldId}&formId=#{param.formId}" />
- <onc:subtab name="server"
- displayName="Servers #{InventorySummaryUIBean.serverCount}"
- url="/rhq/inventory/resourcePicker.xhtml?nomenu=true&subtab=server&fieldId=#{param.fieldId}&formId=#{param.formId}" />
- <onc:subtab name="service"
- displayName="Services #{InventorySummaryUIBean.serviceCount}"
- url="/rhq/inventory/resourcePicker.xhtml?nomenu=true&subtab=service&fieldId=#{param.fieldId}&formId=#{param.formId}" />
- </onc:tab>
- </onc:tabBar>
-
- <p />
<h:messages showSummary="true"
showDetail="true"
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml
index 287e571..207a06a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml
@@ -18,50 +18,36 @@
<ui:composition template="/rhq/inventory/layout/main-picker.xhtml">
- <ui:param name="pageTitle" value="Pick a Resource"/>
+ <ui:param name="pageTitle" value="Resource Picker"/>
<ui:param name="selectedTabName" value="Resources.all" />
<ui:define name="content">
- <ui:remove>TODO remove top level menu ?</ui:remove>
-
<a4j:keepAlive beanName="BrowseResourcesUIBean"/>
- <h:form id="browseResourcesForm">
+ <a4j:form>
+ <a4j:jsFunction name="applyPickerFilter">
+ <a4j:actionparam name="param1" assignTo="#{BrowseResourcesUIBean.search}" />
+ </a4j:jsFunction>
+ </a4j:form>
+ <h:form id="resourcePickerForm">
<input type="hidden" name="subtab" value="all"/>
<p/>
- <h:panelGroup>
- <h:outputLabel for="filter" value="Search: " />
- <h:inputText id="filter" value="#{BrowseResourcesUIBean.search}"
- onkeypress="return ignoreEnterKey(event);"
- style="width: 600px;" />
- <rich:suggestionbox id="suggest" for="filter"
- tokens=",[]"
- width="600" height="400"
- border="1" cellpadding="1" cellspacing="1"
- minChars="0"
- first="0" rows="10"
- frequency="0.1"
- var="suggestItem"
- fetchValue="#{suggestItem.value}"
- suggestionAction="#{BrowseResourcesUIBean.autocomplete}"
- nothingLabel="Start typing for simple text matches"
- usingSuggestObjects="true"
- eventsQueue="resourceSearchSuggestions"
- ignoreDupResponses="true"
- rendered="true">
- <h:column>
- <h:outputText value="#{suggestItem.label}" />
- </h:column>
- </rich:suggestionbox>
- <rich:spacer/>
- <a4j:commandButton value="GO"
+ <h:panelGrid columns="3">
+ <h:outputText value="Search: " />
+ <ui:include src="/rhq/common/searchInterface.xhtml">
+ <ui:param name="searchButtonId" value="resourcePickerForm:searchButtonJSF" />
+ <ui:param name="searchSubsystem" value="RESOURCE" />
+ </ui:include>
+
+ <a4j:commandButton id="searchButtonJSF" value="GO"
reRender="browseResourcesDataTable, browseResourcesDataTableScroller"
actionListener="#{BrowseResourcesUIBean.clearDataModel}"
- styleClass="buttonmed">
+ styleClass="buttonmed"
+ onclick="applyPickerFilter(getElementCrossBrowser('patternField').value);">
<s:defaultAction/>
</a4j:commandButton>
- </h:panelGroup>
+ </h:panelGrid>
<p/>
<h:panelGrid columns="1" width="100%">
@@ -72,7 +58,7 @@
value="#{browseResourcesDataModel}"
var="item"
width="100%"
- columnsWidth="1%, 20%, 20%, 10%, 10%, 10%, 25%, 4%"
+ columnsWidth="1%, 30%, 44%, 24%, 1%"
headerClass="tableRowHeader"
footerClass="on-pager-footer"
onRowMouseOver="this.style.backgroundColor='#E7E7E7'"
@@ -93,19 +79,17 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="r.name">
- <h:outputText styleClass="headerText" value="Name" />
- </onc:sortableColumnHeader>
+ <h:outputText styleClass="headerText" value="Name" />
</f:facet>
<onc:disambiguatedResourceName resourceName="#{item.original.resource.name}"
resourceId="#{item.original.resource.id}" disambiguationReport="#{item}"
- nameAsLink="false" />
+ nameAsLink="false"/>
</rich:column>
<rich:column>
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Parent" />
+ <h:outputText styleClass="headerText" value="Location" />
</f:facet>
<onc:disambiguatedResourceLineage parents="#{item.parents}" renderLinks="false"/>
@@ -113,39 +97,7 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="r.resourceType.category">
- <h:outputText styleClass="headerText" value="Category" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{item.original.resource.resourceType.category.name}" />
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
- <onc:sortableColumnHeader sort="r.resourceType.name">
- <h:outputText styleClass="headerText" value="Type" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{item.original.resource.resourceType.name}" />
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
- <onc:sortableColumnHeader sort="r.resourceType.plugin">
- <h:outputText styleClass="headerText" value="Plugin" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{item.original.resource.resourceType.plugin}" />
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
- <onc:sortableColumnHeader sort="r.description">
- <h:outputText styleClass="headerText" value="Description" />
- </onc:sortableColumnHeader>
+ <h:outputText styleClass="headerText" value="Description" />
</f:facet>
<h:outputText value="#{item.original.resource.description}" />
@@ -153,9 +105,7 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="r.currentAvailability.availabilityType">
- <h:outputText styleClass="headerText" value="Availability" />
- </onc:sortableColumnHeader>
+ <h:outputText styleClass="headerText" value="Availability" />
</f:facet>
<h:graphicImage value="#{onf:getAvailabilityURL(item.original.resource.currentAvailability.availabilityType, 16)}" />
@@ -163,14 +113,13 @@
<f:facet name="footer">
<rich:columnGroup>
- <rich:column colspan="8" width="100%">
+ <rich:column colspan="5" width="100%">
<onc:selectCommandButton action="#"
- value="Pick selected" target="selectedItems"
+ value="PICK SELECTED" target="selectedItems"
styleClass="on-pager-button buttonsmall"
rendered="#{GlobalPermissionsUIBean.inventory}"
low="1" high="1"
- onclick="pick()"
- />
+ onclick="pick()" />
<ui:param name="paginationDataTableName" value="browseResourcesDataTable"/>
<ui:param name="paginationDataModel" value="#{browseResourcesDataModel}"/>
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/resources/operations.xhtml b/modules/enterprise/server/plugins/alert-operations/src/main/resources/operations.xhtml
index de078e7..2eb3f88 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/resources/operations.xhtml
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/resources/operations.xhtml
@@ -21,7 +21,7 @@
<h:panelGroup rendered="#{operationsBean.selectionMode eq 'SPECIFIC'}">
<h:inputText value="#{operationsBean.resourceId}" id="resourceId" />
<a href="#"
- onclick="window.open('/rhq/inventory/resourcePicker.xhtml?nomenu=true&fieldId=customContentForm:resourceId', 'Pick a resource','width=800;height=500;scrollbars=yes,toolbar=no,resizable=yes,left=100,top=100'); return false;"
+ onclick="window.open('/rhq/inventory/resourcePicker.xhtml?nomenu=true&fieldId=customContentForm:resourceId', 'Pick a resource','width=1000,height=700,scrollbars=yes,toolbar=no,resizable=yes,location=no,status=no,left=100,top=100'); return false;"
class="buttonmed">Pick</a>
</h:panelGroup>
commit 6fb8a2bc4348ed0f7e1da24b53c5efd67d255378
Author: Joseph Marques <joseph(a)redhat.com>
Date: Wed Jun 9 02:32:25 2010 -0400
add to (do not overwrite) other onLoad methods
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/js/search.js b/modules/enterprise/gui/coregui/src/main/webapp/js/search.js
index 3f912f2..ad86428 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/js/search.js
+++ b/modules/enterprise/gui/coregui/src/main/webapp/js/search.js
@@ -32,4 +32,30 @@ function roundedCorners() {
br.appendChild(original);
}
}
-window.onload = roundedCorners;
+
+function loadRoundedCorners() {
+/*
+ var pos = navigator.userAgent.indexOf('MSIE');
+ if (pos > -1) {
+ var longVersion = navigator.userAgent.substring(pos + 5);
+ var shortVersion = longVersion.substring(0, longVersion.indexOf(';'));
+ if (shortVersion.indexOf('8') == -1) {
+ return;
+ }
+ }
+*/
+
+ if (typeof window.onload != 'function') {
+ window.onload = roundedCorners;
+ } else {
+ var oldMethod = window.onload;
+ window.onload = function() {
+ if (oldMethod) {
+ oldMethod();
+ }
+ roundedCorners();
+ }
+ }
+}
+
+loadRoundedCorners();
commit 8793259d90b5d961ecdb2fba97ac2b2423046824
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Jun 8 16:22:24 2010 -0400
Declare more singleton resource types where possible. This simplifies tree
navigation by eliminating useless autogrouping.
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 010de71..b0d9364 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
@@ -570,7 +570,8 @@
name="Tomcat Cache"
discovery="TomcatCacheDiscoveryComponent"
class="TomcatCacheComponent"
- description="A Tomcat Application (WAR) Cache">
+ description="A Tomcat Application (WAR) Cache"
+ singleton="true">
<plugin-configuration>
<c:group name="General">
@@ -953,7 +954,8 @@
name="Tomcat User Database"
discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
class="TomcatUserDatabaseComponent"
- description="Tomcat User Database">
+ description="Tomcat User Database"
+ singleton="true">
<plugin-configuration>
<c:group name="General">
commit 9faea4caeaa7eccee8e3a9bd61009b04e10dbf6e
Merge: 9aa8584... b346cc5...
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Jun 7 14:58:28 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit 15afa3047b5e80dd300310fefd56694043c56a50
Merge: c276dd3... b346cc5...
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Mon Jun 7 14:57:04 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit c276dd30093abedc805ea617601358711d683b84
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Mon Jun 7 14:35:10 2010 -0400
Fix applied to searchgui
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java
index 76520b8..e4e7f01 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/SearchGUI.java
@@ -63,6 +63,12 @@ public class SearchGUI implements EntryPoint {
}
public static void checkLoginStatus() {
+
+ if (CoreGUI.detectIe6()) {
+ CoreGUI.forceIe6Hacks();
+ }
+
+
RequestBuilder b = new RequestBuilder(RequestBuilder.GET, "/sessionAccess");
try {
b.setCallback(new RequestCallback() {
@@ -115,6 +121,10 @@ public class SearchGUI implements EntryPoint {
} catch (RequestException e) {
SC.say("Unable to determine login status, check server status");
e.printStackTrace();
+ } finally {
+ if (CoreGUI.detectIe6()) {
+ CoreGUI.unforceIe6Hacks();
+ }
}
}
commit 8b3a2aafafed411c0d72cfb11ff621f0809b4e56
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Mon Jun 7 13:37:13 2010 -0400
Fix for IE menubar problem
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
index bcc4236..e5c0d93 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/menu/MenuBarView.java
@@ -78,7 +78,7 @@ public class MenuBarView extends VLayout {
this.aboutModalWindow = new AboutModalWindow();
- // TODO GH: This is a nasty hack... it injects the css to override the smartgwt skin
+ /*// TODO GH: This is a nasty hack... it injects the css to override the smartgwt skin
String css = ".menuButton, .menuButtonOver, .menuButtonDown, .menuButtonDisabled, .menuButtonSelected, .menuButtonSelectedDown, .menuButtonSelectedOver, .menuButtonSelectedDisabled {\n" +
" border: none;\n" +
" font-size: 9pt; \n" +
@@ -92,7 +92,7 @@ public class MenuBarView extends VLayout {
style.setInnerText(css);
Document.get().getBody().appendChild(style);
-
+*/
commit 6cdf397955b12540715378a1d6f88254f8227b0a
Author: Greg Hinkle <ghinkle(a)redhat.com>
Date: Mon Jun 7 12:42:43 2010 -0400
Fix for IE + GWT problems on loading the app after login
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
index 97a09e6..b6b2aa7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
@@ -103,6 +103,11 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
// String sessionIdString = com.google.gwt.user.client.Cookies.getCookie("RHQ_Sesssion");
// if (sessionIdString == null) {
+ if (detectIe6()) {
+ forceIe6Hacks();
+ }
+
+
RequestBuilder b = new RequestBuilder(RequestBuilder.GET, "/sessionAccess");
try {
b.setCallback(new RequestCallback() {
@@ -155,6 +160,10 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
} catch (RequestException e) {
SC.say("Unable to determine login status, check server status");
e.printStackTrace();
+ } finally {
+ if (detectIe6()) {
+ unforceIe6Hacks();
+ }
}
}
@@ -317,4 +326,29 @@ public class CoreGUI implements EntryPoint, ValueChangeHandler<String> {
}
}
}
+
+
+ /**
+ * Detects IE6.
+ * <p/>
+ * This is a nasty hack; but it's extremely reliable when running with other
+ * js libraries on the same page at the same time as gwt.
+ */
+ public static native boolean detectIe6() /*-{
+ if (typeof $doc.body.style.maxHeight != "undefined")
+ return(false);
+ else
+ return(true);
+}-*/;
+
+ public static native void forceIe6Hacks() /*-{
+ $wnd.XMLHttpRequestBackup = $wnd.XMLHttpRequest;
+ $wnd.XMLHttpRequest = null;
+}-*/;
+
+ public static native void unforceIe6Hacks() /*-{
+ $wnd.XMLHttpRequest = $wnd.XMLHttpRequestBackup;
+ $wnd.XMLHttpRequestBackup = null;
+}-*/;
+
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
index a529ef9..64d89ca 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
@@ -148,6 +148,10 @@ public class LoginView extends Canvas {
private void login(String user, String password) {
+ if (CoreGUI.detectIe6()) {
+ CoreGUI.forceIe6Hacks();
+ }
+
loginButton.setDisabled(true);
RequestBuilder b = new RequestBuilder(RequestBuilder.GET,
"/j_security_check.do?j_username=" + user + "&j_password=" + password);
@@ -171,9 +175,13 @@ public class LoginView extends Canvas {
}
});
b.send();
- } catch (RequestException e) {
+ } catch (Exception e) {
loginButton.setDisabled(false);
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ } finally {
+ if (CoreGUI.detectIe6()) {
+ CoreGUI.unforceIe6Hacks();
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/SessionAccessServlet.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/SessionAccessServlet.java
index 7acfcbe..08911dd 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/SessionAccessServlet.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/authentication/SessionAccessServlet.java
@@ -56,6 +56,14 @@ public class SessionAccessServlet extends HttpServlet {
HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest request = (HttpServletRequest) req;
+ response.addHeader("Pragma", "no-cache");
+ response.addHeader("Cache-Control", "no-cache");
+ // Stronger according to blog comment below that references HTTP spec
+ response.addHeader("Cache-Control", "no-store");
+ response.addHeader("Cache-Control", "must-revalidate");
+ // some date in the past
+ response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT");
+
//if a session does not already exist this call will create one
HttpSession session = request.getSession();
commit 9aa858457f6a7c32d1e10a999166735471cc7d37
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Jun 7 12:26:21 2010 -0400
[BZ 573034] Adding CLI script for resetting plugin config properties to their defaults
diff --git a/etc/cli-scripts/reset_conn_props.js b/etc/cli-scripts/reset_conn_props.js
new file mode 100644
index 0000000..4993638
--- /dev/null
+++ b/etc/cli-scripts/reset_conn_props.js
@@ -0,0 +1,240 @@
+/**
+ * This is a CLI script to be used for https://bugzilla.redhat.com/show_bug.cgi?id=573034.
+ * The script resets the snapshot report plugin configuration properties for JBoss servers
+ * and agents to their default values. This is a one-off script intended only to be run
+ * once to assign values to required plugin properties that are unset.
+ *
+ * NOTE: This script can probably be refactored and generalized a bit to support
+ * resetting any specified plugin configuration properties to their default values.
+ * And specifying candidate properties could be done via a callback function to
+ * allow for arbitrarily complex logic in determining the properties.
+ */
+
+function iterate(iterable, callback) {
+ var iterator = iterable.iterator();
+ while (iterator.hasNext()) {
+ callback(iterator.next());
+ }
+}
+
+function filter(iterable, predicate) {
+ var matches = java.util.ArrayList();
+ iterate(iterable, function(obj) {
+ if (predicate(obj)) {
+ matches.add(obj);
+ }
+ });
+ return matches;
+}
+
+function log(msg) {
+ println("DEBUG " + msg);
+}
+
+function loadPluginConfigDef(resourceTypeName, pluginName) {
+ log("Loading plugin configuration for [resourceType=" + resourceTypeName + ", plugin=" +
+ pluginName + "]");
+ var resourceType = ResourceTypeManager.getResourceTypeByNameAndPlugin(resourceTypeName,
+ pluginName);
+
+ if (resourceType == null) {
+ throw "Failed to find resource type '" + resourceTypeName + "'";
+ }
+
+ configDef = ConfigurationManager.getPluginConfigurationDefinitionForResourceType(resourceType.id);
+
+ if (configDef == null) {
+ throw "Failed to load plugin configuration for [resourceType=" + resourceTypeName +
+ ", plugin=" + pluginName + "]";
+ }
+
+ return configDef;
+}
+
+function findResourcesByTypeAndPlugin(resourceType, plugin) {
+ var critiera = ResourceCriteria();
+ criteria.addFilterResourceTypeName(resourceType);
+ criteria.addFilterPluginName(plugin);
+ criteria.fetchPluginConfiguration(true);
+ criteria.strict = true;
+
+ var resources = ResourceManager.findResourcesByCriteria(criteria);
+
+ log("Found " + resources.size() + " " + resourceType + " resources ");
+
+ return resources;
+}
+
+/**
+ * This function takes a Configuration object and "flattens" its properties into a list of
+ * all simple (i.e., PropertySimple) objects contained in the configuration. This includes
+ * nested properties. The properties are returned as a java.util.List.
+ *
+ * param: configuration The Configuration object from which the property list will be built
+ *
+ * return: A List object of all PropertySimple objects, including those nested in complex
+ * properties
+ */
+function flattenProperties(configuration) {
+ var simpleProperties = java.util.ArrayList();
+
+ iterate(configuration.map.values(), function(property) {
+ if (property instanceof PropertySimple) {
+ simpleProperties.add(property);
+ }
+ else if (property instanceof PropertyList) {
+ simpleProperties.addAll(flattenPropertyList(property));
+ }
+ });
+
+ return simpleProperties;
+}
+
+function flattenPropertyList(propertyList) {
+ var simpleProperties = java.util.ArrayList();
+
+ iterate(propertyList.list, function(property) {
+ if (property instanceof PropertySimple) {
+ simpleProperty.add(property);
+ }
+ else if (property instanceof PropertyMap) {
+ simpleProperties.addAll(flattenPropertyMap(property));
+ }
+ else if (property instanceof PropertyList) {
+ simpleProperties.addAll(flattenPropertyList(property));
+ }
+ });
+
+ return simpleProperties;
+}
+
+function flattenPropertyMap(propertyMap) {
+ var simpleProperties = java.util.ArrayList();
+
+ iterate(propertyMap.map.values(), function(property) {
+ if (property instanceof PropertySimple) {
+ simpleProperties.add(property);
+ }
+ else if (property instanceof PropertyMap) {
+ simpleProperties.addAll(flattenPropertyMap(property));
+ }
+ else if (property instanceof PropertyList) {
+ simpleProperties.addAll(flattPropertyList(property));
+ }
+ });
+
+ return simpleProperties;
+}
+
+/**
+ * Loads the specified default plugin properties for a given plugin configuration definition.
+ * The defaults are stored in and retrieved from the default template of the plugin
+ * configuration.
+ *
+ * param: pluginConfigDef A ConfigurationDefinition object which is the plugin config def
+ * from which to retrieve the defaults
+ *
+ * param: defaultPropertyNames A java.util.Collection of the property names to include
+ *
+ * return: A java.util.Map of the default properties. Property names as strings are mapped
+ * to the PropertySimple objects.
+ */
+function loadSnapshotDefaults(pluginConfigDef, defaultPropertyNames) {
+ var snapshotDefaultsMap = java.util.HashMap();
+ var defaults = flattenProperties(pluginConfigDef.defaultTemplate.configuration);
+
+ var isSnapshotProperty = function(property) {
+ return defaultPropertyNames.contains(property.name);
+ }
+
+ var snapshotDefaults = filter(defaults, isSnapshotProperty);
+
+ iterate(snapshotDefaults, function(property) {
+ snapshotDefaultsMap.put(property.name, property);
+ });
+
+ return snapshotDefaultsMap;
+}
+
+function getJBossSnapshotPropertyNames() {
+ var set = java.util.HashSet();
+ set.add('snapshotConfigEnabled');
+ set.add('snapshotConfigDirectory');
+ set.add('snapshotConfigRecursive');
+ set.add('snapshotLogEnabled');
+ set.add('snapshotLogDirectory');
+ set.add('snapshotLogRecursive');
+ set.add('snapshotDataEnabled');
+ set.add('snapshotDataDirectory');
+ set.add('snapshotDataRecursive');
+ set.add('snapshotAdditionalFilesEnabled');
+ set.add('snapshotAdditionalFilesDirectory');
+ set.add('snapshotAdditionalFilesRegex');
+ set.add('snapshotAdditionalFilesRecursive');
+
+ return set;
+}
+
+function getAgentSnapshotPropertyNames() {
+ var set = java.util.HashSet();
+ set.add('snapshotConfigEnabled');
+ set.add('snapshotLogEnabled');
+ set.add('snapshotDataEnabled');
+
+ return set;
+}
+
+/**
+ * Resets the values of specified plugin configuration properties back to their default values.
+ * The configuration is modified locally, in memory and then a request is sent to
+ * ConfigurationManager.
+ *
+ * param: resources The resources whose plugin configurations are to be updated. This is
+ * expected to be a java.util.Collection.
+ *
+ * param: snapshotDefaults: The names of the plugin configuration properties to reset. This
+ * is expected to be a java.util.Collection.
+ */
+function resetPluginConfigProps(resources, snapshotDefaults) {
+ iterate(resources, function(resource) {
+ log("Preparing to reset plugin configuration properties for " + resource);
+ var simpleProperties = flattenProperties(resource.pluginConfiguration);
+ var snapshotProperties = filter(simpleProperties, function(property) {
+ return snapshotDefaults.containsKey(property.name);
+ });
+
+ iterate(snapshotProperties, function(property) {
+ var defaultProperty = snapshotDefaults.get(property.name);
+ property.stringValue = defaultProperty.stringValue;
+ });
+
+ ConfigurationManager.updatePluginConfiguration(resource.id, resource.pluginConfiguration);
+ log("Updated plugin configuration for " + resource);
+ });
+}
+
+function resetJBossPluginConfigProps() {
+ var jbossResourceTypeName = 'JBossAS Server';
+ var jbossPluginName = 'JBossAS';
+ var jbossServers = findResourcesByTypeAndPlugin(jbossResourceTypeName, jbossPluginName);
+ var jbossPluginConfigDef = loadPluginConfigDef(jbossResourceTypeName, jbossPluginName);
+
+ resetPluginConfigProps(jbossServers, loadSnapshotDefaults(jbossPluginConfigDef,
+ getJBossSnapshotPropertyNames()));
+}
+
+function resetAgentPluginConfigProps() {
+ var agentResourceTypeName = 'RHQ Agent';
+ var agentPluginName = 'RHQAgent';
+ var agents = findResourcesByTypeAndPlugin(agentResourceTypeName, agentPluginName);
+ var agentPluginConfigDef = loadPluginConfigDef(agentResourceTypeName, agentPluginName);
+
+ resetPluginConfigProps(agents, loadSnapshotDefaults(agentPluginConfigDef,
+ getAgentSnapshotPropertyNames()));
+}
+
+//////////////
+// main //
+//////////////
+resetJBossPluginConfigProps();
+resetAgentPluginConfigProps();
commit b346cc543188673a09904340adc678b2020e97a3
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Sun Jun 6 20:43:07 2010 -0400
[maven-release-plugin] prepare for next development iteration
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 93d64b1..eda9133 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 5c13740..bc7965b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 6455596..2cf950b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 5cf2cae..ee81a94 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 4508318..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 3f509dc..a51f92b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 7110509..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index bbc12ff..e0ced84 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 98ce51c..0911918 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 6b89b88..d47d4c8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index b2cb78a..e1ce7ef 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index fa96b61..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 8cda7a3..7739177 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index a29a0d7..eeb7e81 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index f6bacb7..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index 7f82785..bc41dc5 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 6d0c906..d9f1c1c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 58c1427..8942239 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 29c7863..8b9da9c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index accfc79..611eb9d 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index e45b090..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index d041d44..df05645 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 615c7cd..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index f1a0bcd..dcb1f88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index a23ac44..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index b6cbe86..783942c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index e6ffa5c..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 53de64f..3b0dbb8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index dd54c81..33966bd 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index e0314b8..605267f 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 88abaa3..910b617 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 186abcd..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index f0d66bd..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 2a03246..6b296df 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 76024a6..bf15866 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 0a313de..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 8d2c323..ad4a632 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 ea7bbe2..9f1a05c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 0048059..7d884ca 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 1be0f9e..c9df693 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 fa12736..924973d 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 4d195b1..70c948e 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 9bd0074..f8a5704 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 45d5d65..cb7123b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 8c7bbe3..73f405e 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 88ddf30..4a15ba1 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 182cd74..0033d1b 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 e7b1e61..61965f2 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 f7252c1..7451668 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 7c9f4a2..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index ae585d5..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index cb608d3..2b16f4a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 97bda8a..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index e84e83b..a6cba32 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 acd0162..9c7cc74 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 74bd77e..ebdd3da 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index b753a3c..06c8981 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 05961a6..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 6afe936..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index f3bcd1a..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f503f83..f9dde4c 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 957bff5..4a31a97 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index d6727c1..a0721a9 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index a19a054..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7f258be..c37598e 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 6990d8d..cc160c9 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 2050389..b4f9208 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 59f4000..963223b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 6006518..d920440 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 49601df..d5aaad5 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index cd5c87b..30889f7 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 30de2b7..b79645d 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index e8de748..f7cf265 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index b9e64ce..acb08ef 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 8e66263..7dd0fde 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 92ffa60..de89333 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 fc2fff7..853c020 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 35cd9c8..a0ade77 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 7d27004..b9ed2b3 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 7a10a08..b3846fa 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 6751eb6..443e524 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 87fbc54..ac9885a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 3e4b018..d0c9053 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index e4981cc..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index ae3b48e..1acdb0f 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 8a95180..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 1b5dfc3..97b83b0 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 99c1d26..85d6105 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1eccfd3..283ab6a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index b01765b..5a4466c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index d1a409d..a190dcd 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 3cdb27b..8f4e675 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index e882164..0d41574 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 28d7256..7719b14 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index fc0e877..2d9d715 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index ca9afd2..3579496 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 07389ab..41df1b8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 1e5eea6..205d5b0 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index dafecdb..e299efa 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 2c3729f..b3d5e87 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index eb41a81..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index bf9156a..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 02d6eab..286bf41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 0fc5ba03f5b71467e341a23f94698530ebd6329b
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Sun Jun 6 20:42:38 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_Beta1
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..93d64b1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..5c13740 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..6455596 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..5cf2cae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..4508318 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..3f509dc 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..7110509 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..bbc12ff 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..98ce51c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..6b89b88 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..b2cb78a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..fa96b61 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..8cda7a3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..a29a0d7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..f6bacb7 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..7f82785 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..6d0c906 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..58c1427 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..29c7863 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index f13e964..accfc79 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -1,13 +1,11 @@
-<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">
+<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>
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..e45b090 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..d041d44 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..615c7cd 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..f1a0bcd 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..a23ac44 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..b6cbe86 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..e6ffa5c 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..53de64f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..dd54c81 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..e0314b8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..88abaa3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..186abcd 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..f0d66bd 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6b296df..2a03246 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..76024a6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..0a313de 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index ad4a632..8d2c323 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 9f1a05c..ea7bbe2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 7d884ca..0048059 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 c9df693..1be0f9e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 924973d..fa12736 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 70c948e..4d195b1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 f8a5704..9bd0074 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 cb7123b..45d5d65 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..8c7bbe3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 4a15ba1..88ddf30 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 0033d1b..182cd74 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 61965f2..e7b1e61 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 7451668..f7252c1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..7c9f4a2 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..ae585d5 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..cb608d3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..97bda8a 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..e84e83b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 9c7cc74..acd0162 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 ebdd3da..74bd77e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..b753a3c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..05961a6 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..6afe936 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..f3bcd1a 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f9dde4c..f503f83 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 4a31a97..957bff5 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..d6727c1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..a19a054 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..7f258be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..6990d8d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..2050389 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..59f4000 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..6006518 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..49601df 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..cd5c87b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..30de2b7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..e8de748 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..b9e64ce 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..8e66263 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index de89333..92ffa60 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..fc2fff7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 a0ade77..35cd9c8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..7d27004 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 b3846fa..7a10a08 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..6751eb6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..87fbc54 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..3e4b018 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..e4981cc 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..ae3b48e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..8a95180 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..1b5dfc3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..99c1d26 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1eccfd3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..b01765b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..d1a409d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..3cdb27b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..e882164 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..28d7256 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..fc0e877 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..ca9afd2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..07389ab 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..1e5eea6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..dafecdb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 b3d5e87..2c3729f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..eb41a81 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..bf9156a 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 286bf41..02d6eab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 53194e0f84740d95322fc4ef1f3f93501cdab22f
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Sun Jun 6 20:31:06 2010 -0400
Revert "[maven-release-plugin] prepare release RHQ_3_0_0_Beta1"
This reverts commit 66e7a6294a6e7e2dbe87e447363c6370d70d9786.
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index 93d64b1..eda9133 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 5c13740..bc7965b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 6455596..2cf950b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index 5cf2cae..ee81a94 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 4508318..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 3f509dc..a51f92b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 7110509..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index bbc12ff..e0ced84 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 98ce51c..0911918 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 6b89b88..d47d4c8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index b2cb78a..e1ce7ef 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index fa96b61..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 8cda7a3..7739177 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index a29a0d7..eeb7e81 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index f6bacb7..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index 7f82785..bc41dc5 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 6d0c906..d9f1c1c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 58c1427..8942239 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 29c7863..8b9da9c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index accfc79..f13e964 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -1,11 +1,13 @@
-<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">
+<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>
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index e45b090..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index d041d44..df05645 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 615c7cd..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index f1a0bcd..dcb1f88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index a23ac44..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index b6cbe86..783942c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index e6ffa5c..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 53de64f..3b0dbb8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index dd54c81..33966bd 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index e0314b8..605267f 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 88abaa3..910b617 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 186abcd..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index f0d66bd..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 2a03246..6b296df 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 76024a6..bf15866 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 0a313de..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 8d2c323..ad4a632 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 ea7bbe2..9f1a05c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 0048059..7d884ca 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 1be0f9e..c9df693 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 fa12736..924973d 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 4d195b1..70c948e 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 9bd0074..f8a5704 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 45d5d65..cb7123b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 8c7bbe3..73f405e 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 88ddf30..4a15ba1 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 182cd74..0033d1b 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 e7b1e61..61965f2 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 f7252c1..7451668 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 7c9f4a2..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index ae585d5..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index cb608d3..2b16f4a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index 97bda8a..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index e84e83b..a6cba32 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 acd0162..9c7cc74 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 74bd77e..ebdd3da 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index b753a3c..06c8981 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 05961a6..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 6afe936..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index f3bcd1a..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f503f83..f9dde4c 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 957bff5..4a31a97 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index d6727c1..a0721a9 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index a19a054..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 7f258be..c37598e 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 6990d8d..cc160c9 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 2050389..b4f9208 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 59f4000..963223b 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 6006518..d920440 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 49601df..d5aaad5 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index cd5c87b..30889f7 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 30de2b7..b79645d 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index e8de748..f7cf265 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index b9e64ce..acb08ef 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 8e66263..7dd0fde 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 92ffa60..de89333 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-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 fc2fff7..853c020 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 35cd9c8..a0ade77 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 7d27004..b9ed2b3 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 7a10a08..b3846fa 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 6751eb6..443e524 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 87fbc54..ac9885a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 3e4b018..d0c9053 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index e4981cc..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index ae3b48e..1acdb0f 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 8a95180..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 1b5dfc3..97b83b0 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 99c1d26..85d6105 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1eccfd3..283ab6a 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index b01765b..5a4466c 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index d1a409d..a190dcd 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 3cdb27b..8f4e675 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index e882164..0d41574 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 28d7256..7719b14 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index fc0e877..2d9d715 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index ca9afd2..3579496 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 07389ab..41df1b8 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 1e5eea6..205d5b0 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index dafecdb..e299efa 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>3.0.0.Beta1</version>
+ <version>3.0.0-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 2c3729f..b3d5e87 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>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index eb41a81..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index bf9156a..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 02d6eab..286bf41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta1</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 66e7a6294a6e7e2dbe87e447363c6370d70d9786
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Sun Jun 6 19:32:56 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_Beta1
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..93d64b1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..5c13740 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..6455596 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..5cf2cae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..4508318 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..3f509dc 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..7110509 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..bbc12ff 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..98ce51c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..6b89b88 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..b2cb78a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..fa96b61 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..8cda7a3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..a29a0d7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..f6bacb7 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..7f82785 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..6d0c906 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..58c1427 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..29c7863 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index f13e964..accfc79 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -1,13 +1,11 @@
-<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">
+<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>
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..e45b090 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..d041d44 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..615c7cd 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..f1a0bcd 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..a23ac44 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..b6cbe86 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..e6ffa5c 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..53de64f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..dd54c81 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..e0314b8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..88abaa3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..186abcd 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..f0d66bd 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6b296df..2a03246 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..76024a6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..0a313de 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index ad4a632..8d2c323 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 9f1a05c..ea7bbe2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 7d884ca..0048059 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 c9df693..1be0f9e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 924973d..fa12736 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 70c948e..4d195b1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 f8a5704..9bd0074 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 cb7123b..45d5d65 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..8c7bbe3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 4a15ba1..88ddf30 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 0033d1b..182cd74 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 61965f2..e7b1e61 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 7451668..f7252c1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..7c9f4a2 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..ae585d5 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..cb608d3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..97bda8a 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..e84e83b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 9c7cc74..acd0162 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 ebdd3da..74bd77e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..b753a3c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..05961a6 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..6afe936 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..f3bcd1a 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f9dde4c..f503f83 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 4a31a97..957bff5 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..d6727c1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..a19a054 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..7f258be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..6990d8d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..2050389 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..59f4000 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..6006518 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..49601df 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..cd5c87b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..30de2b7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..e8de748 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..b9e64ce 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..8e66263 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index de89333..92ffa60 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..fc2fff7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 a0ade77..35cd9c8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..7d27004 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 b3846fa..7a10a08 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..6751eb6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..87fbc54 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..3e4b018 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..e4981cc 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..ae3b48e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..8a95180 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..1b5dfc3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..99c1d26 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1eccfd3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..b01765b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..d1a409d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..3cdb27b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..e882164 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..28d7256 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..fc0e877 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..ca9afd2 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..07389ab 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..1e5eea6 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..dafecdb 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</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 b3d5e87..2c3729f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..eb41a81 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..bf9156a 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 286bf41..02d6eab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta1</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 868e08ca1a4c570ab3941f93a1baaa9d8a1b0171
Merge: a66eac4... 2b3c128...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Sat Jun 5 00:08:09 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit a66eac49d6874f1826122531a2562c1b364f8d97
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Sat Jun 5 00:07:31 2010 -0400
fix tests
diff --git a/modules/core/client-api/src/test/resources/log4j.xml b/modules/core/client-api/src/test/resources/log4j.xml
index c69e48c..c182449 100644
--- a/modules/core/client-api/src/test/resources/log4j.xml
+++ b/modules/core/client-api/src/test/resources/log4j.xml
@@ -19,7 +19,7 @@
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
- <param name="Threshold" value="WARN"/>
+ <param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Messagen -->
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
index 088fb09..410feb9 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java
@@ -27,6 +27,7 @@ import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.transaction.NotSupportedException;
+import javax.transaction.Status;
import javax.transaction.SystemException;
import javax.transaction.TransactionManager;
@@ -113,7 +114,9 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
tx.commit();
}
catch (Exception e) {
- tx.rollback();
+ if (tx.getStatus() == Status.STATUS_ACTIVE) {
+ tx.rollback();
+ }
}
int existingPackageTypes = countForQuery(PackageType.QUERY_FIND_ALL);
@@ -141,7 +144,9 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
tx.commit();
}
catch (Exception e) {
- tx.rollback();
+ if (tx.getStatus() == Status.STATUS_ACTIVE) {
+ tx.rollback();
+ }
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
index 205108d..b320a3b 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
@@ -177,6 +177,10 @@ public class UpdateSubsytemTestBase extends AbstractEJB3Test {
protected void registerPlugin(String pathToDescriptor, String versionOverride) throws Exception {
pathToDescriptor = COMMON_PATH_PREFIX + getSubsystemDirectory() + "/" + pathToDescriptor;
+ registerPluginInternal(pathToDescriptor, versionOverride);
+ }
+
+ private void registerPluginInternal(String pathToDescriptor, String versionOverride) throws Exception {
System.out.println("Registering plugin with descriptor [" + pathToDescriptor + "]...");
String md5 = MessageDigestGenerator.getDigestString(pathToDescriptor);
Plugin testPlugin = new Plugin(PLUGIN_NAME, "foo.jar", md5);
@@ -190,7 +194,7 @@ public class UpdateSubsytemTestBase extends AbstractEJB3Test {
testPlugin.setVersion(descriptor.getVersion());
}
metadataManager.registerPlugin(LookupUtil.getSubjectManager().getOverlord(), testPlugin, descriptor, null,
- false);
+ true);
}
protected void registerPlugin(String pathToDescriptor) throws Exception {
@@ -291,7 +295,10 @@ public class UpdateSubsytemTestBase extends AbstractEJB3Test {
protected void cleanupTest() throws Exception {
try {
- cleanupResourceType("constraintPlatform");
+ String pathToDescriptor = COMMON_PATH_PREFIX + "/noTypes.xml";
+ registerPluginInternal(pathToDescriptor, null);
+
+ /*cleanupResourceType("constraintPlatform");
cleanupResourceType("events");
cleanupResourceType("groupDeletedPlatform");
cleanupResourceType("groupPropDeletedPlatform");
@@ -308,7 +315,7 @@ public class UpdateSubsytemTestBase extends AbstractEJB3Test {
cleanupResourceType("testServer2");
cleanupResourceType("testService1");
cleanupResourceType("testService2");
- cleanupResourceType("TestServer");
+ cleanupResourceType("TestServer");*/
getTransactionManager().begin();
EntityManager entityManager = getEntityManager();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
index a93f3ca..9080938 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceFactoryManagerBeanTest.java
@@ -480,7 +480,11 @@ public class ResourceFactoryManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
EntityManager em = getEntityManager();
try {
- ResourceType deleteMeType = em.find(ResourceType.class, parentResourceType.getId());
+ // Remove the child first.
+ ResourceType deleteMeType = em.find(ResourceType.class, childResourceType.getId());
+ em.remove(deleteMeType);
+
+ deleteMeType = em.find(ResourceType.class, parentResourceType.getId());
em.remove(deleteMeType);
getTransactionManager().commit();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
index 79a3b5f..3425ebb 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java
@@ -151,7 +151,7 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
@AfterMethod
public static void endTest() {
- System.out.println("Connections used: " + (stats.getQueryExecutionCount() - start));
+ //System.out.println("Connections used: " + (stats.getQueryExecutionCount() - start));
}
private TransactionManager tm;
diff --git a/modules/enterprise/server/jar/src/test/resources/test/metadata/noTypes.xml b/modules/enterprise/server/jar/src/test/resources/test/metadata/noTypes.xml
new file mode 100644
index 0000000..72bc8df
--- /dev/null
+++ b/modules/enterprise/server/jar/src/test/resources/test/metadata/noTypes.xml
@@ -0,0 +1,8 @@
+<plugin name="ResourceMetaDataManagerBeanTest" displayName="Mock JBoss AS" package="org.rhq.plugins.mock.jboss"
+ version="1000.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-plugin">
+
+ <!-- intentionally contains no types -->
+
+</plugin>
commit 2b3c1282337dbb965a1c4bed0f3fcfc4a4395eda
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 4 20:21:57 2010 -0400
BZ-600545: display details of plugin configuration update errors, add icons to status column
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/js/rhq.js b/modules/enterprise/gui/portal-war/src/main/webapp/js/rhq.js
index 074890b..85077aa 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/js/rhq.js
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/js/rhq.js
@@ -272,9 +272,8 @@ function displayMessageModal(title, message) {
draggable : true,
wiredDrag : true
});
- var escapedMessage = escape(message);
- win.getContent().innerHTML = "<div style='padding:10px'>" + escapedMessage
- + "</div>";
+ //var escapedMessage = escape(message);
+ win.getContent().innerHTML = "<div style='padding:10px'>" + message + "</div>";
win.setTitle(title);
win.showCenter(true); // true == modal
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/connectionHistory.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/connectionHistory.xhtml
index 2b15f5c..f6b9164 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/connectionHistory.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/connectionHistory.xhtml
@@ -98,8 +98,15 @@
<h:outputText styleClass="headerText" value="Status" />
</onc:sortableColumnHeader>
</f:facet>
-
- <h:outputText value="#{item.status}"/>
+
+ <h:outputLink rendered="#{item.status eq 'FAILURE'}"
+ value="javascript:displayMessageModal('Stack Trace','#{item.errorMessage}')">
+ <h:graphicImage value="/images/icons/Configure_failed_16.png"/>
+ <h:outputText value="#{item.status}"/>
+ </h:outputLink>
+
+ <h:graphicImage value="/images/icons/Configure_ok_16.png" rendered="#{item.status ne 'FAILURE'}"/>
+ <h:outputText value="#{item.status}" rendered="#{item.status ne 'FAILURE'}" />
</rich:column>
<rich:column>
@@ -218,7 +225,14 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{item.status}"/>
+ <h:outputLink rendered="#{item.status eq 'FAILURE'}"
+ value="javascript:displayMessageModal('Stack Trace','#{item.errorMessage}')">
+ <h:graphicImage value="/images/icons/Configure_failed_16.png"/>
+ <h:outputText value="#{item.status}"/>
+ </h:outputLink>
+
+ <h:graphicImage value="/images/icons/Configure_ok_16.png" rendered="#{item.status ne 'FAILURE'}"/>
+ <h:outputText rendered="#{item.status ne 'FAILURE'}" value="#{item.status}"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/history.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/history.xhtml
index 9b74981..c66044b 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/history.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/inventory/history.xhtml
@@ -149,9 +149,12 @@
<h:outputLink rendered="#{item.status eq 'FAILURE'}"
value="javascript:displayMessageModal('Stack Trace','#{item.errorMessage}')">
+ <h:graphicImage value="/images/icons/Configure_failed_16.png"/>
<h:outputText value="#{item.status}"/>
</h:outputLink>
- <h:outputText rendered="#{item.status ne 'FAILURE'}" value="#{item.status}"/>
+
+ <h:graphicImage value="/images/icons/Configure_ok_16.png" rendered="#{item.status ne 'FAILURE'}"/>
+ <h:outputText value="#{item.status}" rendered="#{item.status ne 'FAILURE'}"/>
</rich:column>
<rich:column>
commit 676d4d3c37a104b42d1a9c150f08e1222c7a3cfb
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Fri Jun 4 19:31:12 2010 -0400
fix so that {"rhq_resource_type" violates foreign key constraint "rhq_resource_group_resource_type_id_fkey" on table "rhq_resource_group"} error does not occur during an attempt to remove an obsolete ResourceType, which is the member type of one or more compatible groups, during metadata update (fix for https://bugzilla.redhat.com/show_bug.cgi?id=600273)
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java
index 06cbc47..dbf95c7 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java
@@ -65,6 +65,7 @@ import org.rhq.core.domain.content.PackageType;
import org.rhq.core.domain.event.EventDefinition;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.operation.OperationDefinition;
+import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.Summary;
/**
@@ -314,7 +315,7 @@ public class ResourceType implements Serializable, Comparable<ResourceType> {
@Column(name = "MTIME")
private Long mtime;
- @ManyToMany(mappedBy = "parentResourceTypes", cascade = { CascadeType.REFRESH, CascadeType.REMOVE })
+ @ManyToMany(mappedBy = "parentResourceTypes", cascade = { CascadeType.REFRESH })
@OrderBy
//@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
private Set<ResourceType> childResourceTypes;
@@ -371,6 +372,9 @@ public class ResourceType implements Serializable, Comparable<ResourceType> {
@OneToMany(mappedBy = "resourceType", cascade = CascadeType.REMOVE)
private List<Resource> resources;
+ @OneToMany(mappedBy = "resourceType", cascade = CascadeType.REMOVE)
+ private List<ResourceGroup> resourceGroups;
+
@OneToMany(mappedBy = "resourceType", cascade = CascadeType.ALL)
private Set<ProductVersion> productVersions;
@@ -552,6 +556,14 @@ public class ResourceType implements Serializable, Comparable<ResourceType> {
this.resources = resources;
}
+ public List<ResourceGroup> getResourceGroups() {
+ return resourceGroups;
+ }
+
+ public void setResourceGroups(List<ResourceGroup> resourceGroups) {
+ this.resourceGroups = resourceGroups;
+ }
+
public Set<ResourceType> getParentResourceTypes() {
return this.parentResourceTypes;
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ResourceGroup.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ResourceGroup.java
index c9fb492..9a8ff9d 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ResourceGroup.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/group/ResourceGroup.java
@@ -183,13 +183,15 @@ import org.rhq.core.domain.tagging.Tag;
+ " AND res.id NOT IN ( SELECT explicitRes.id " //
+ " FROM ResourceGroup rg " //
+ " JOIN rg.explicitResources explicitRes " //
- + " WHERE rg.id = :groupId ) ") })
+ + " WHERE rg.id = :groupId ) ")
+})
@SequenceGenerator(name = "id", sequenceName = "RHQ_RESOURCE_GROUP_ID_SEQ")
@Table(name = "RHQ_RESOURCE_GROUP")
@XmlAccessorType(XmlAccessType.FIELD)
public class ResourceGroup extends Group {
private static final long serialVersionUID = 1L;
+ //------- Names of Named Queries -------
public static final String QUERY_FIND_ALL_BY_CATEGORY_COUNT = "ResourceGroup.findAllByCategory_Count";
public static final String QUERY_FIND_ALL_BY_CATEGORY_COUNT_admin = "ResourceGroup.findAllByCategory_Count_admin";
@@ -208,9 +210,13 @@ public class ResourceGroup extends Group {
public static final String QUERY_FIND_RESOURCE_NAMES_BY_GROUP_ID = "ResourceGroup.findResourceNamesByGroupId";
public static final String QUERY_FIND_BY_GROUP_DEFINITION_AND_EXPRESSION = "ResourceGroup.findByGroupDefinitionAndExpression";
+
public static final String QUERY_DELETE_EXPLICIT_BY_RESOURCE_IDS = "DELETE FROM RHQ_RESOURCE_GROUP_RES_EXP_MAP WHERE RESOURCE_ID IN ( :resourceIds )";
public static final String QUERY_DELETE_IMPLICIT_BY_RESOURCE_IDS = "DELETE FROM RHQ_RESOURCE_GROUP_RES_IMP_MAP WHERE RESOURCE_ID IN ( :resourceIds )";
+ public static final String QUERY_FIND_ALL_FILTERED_COUNT = "ResourceGroup.findAllFiltered_Count";
+ public static final String QUERY_FIND_ALL_FILTERED_COUNT_ADMIN = "ResourceGroup.findAllFiltered_Count_Admin";
+ //------- Actual Queries -------
public static final String QUERY_UPDATE_REMOVE_IMPLICIT = "" //
+ "DELETE FROM rhq_resource_group_res_imp_map implicitMap " //
+ " WHERE implicitMap.resource_group_id = ?";
@@ -220,8 +226,6 @@ public class ResourceGroup extends Group {
+ " FROM rhq_resource_group_res_exp_map explicitMap " //
+ " WHERE explicitMap.resource_group_id = ?";
- public static final String QUERY_FIND_ALL_FILTERED_COUNT = "ResourceGroup.findAllFiltered_Count";
- public static final String QUERY_FIND_ALL_FILTERED_COUNT_ADMIN = "ResourceGroup.findAllFiltered_Count_Admin";
public static final String QUERY_NATIVE_FIND_FILTERED_MEMBER = "" //
+ " SELECT "
+ " ( SELECT COUNT(eresAvail.ID) "
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
index b485960..f7fddc7 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
@@ -76,10 +76,8 @@ public class MeasurementDefinitionManagerBean implements MeasurementDefinitionMa
public void removeMeasurementDefinition(MeasurementDefinition def) {
long now = System.currentTimeMillis();
- // get the schedules and unschedule them on the agents
+ // First remove the schedules and associated OOBs.
List<MeasurementSchedule> schedules = def.getSchedules();
-
- // remove the schedules
Iterator<MeasurementSchedule> schedIter = schedules.iterator();
while (schedIter.hasNext()) {
MeasurementSchedule sched = schedIter.next();
@@ -88,12 +86,13 @@ public class MeasurementDefinitionManagerBean implements MeasurementDefinitionMa
sched.setBaseline(null);
}
oobManager.removeOOBsForSchedule(subjectManager.getOverlord(), sched);
- sched.getResource().setMtime(now); // changing MTime tells the agent this resource needs to be synced
+ // IMPORTANT: Update the mtime to tell the Agent this Resource needs to be synced.
+ sched.getResource().setMtime(now);
entityManager.remove(sched);
schedIter.remove();
}
- // finally remove the definition itself
+ // Now remove the definition itself.
try {
if ((def.getId() != 0) && entityManager.contains(def)) {
entityManager.remove(def);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index 574739d..a64f266 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@ -74,6 +74,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceSubCategory;
import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
@@ -85,6 +86,8 @@ import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
+import org.rhq.enterprise.server.resource.group.ResourceGroupDeleteException;
+import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
/**
* This class manages the metadata for resources. Plugins are registered against this bean so that their metadata can be
@@ -124,6 +127,9 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
private ResourceManagerLocal resourceManager;
@EJB
+ private ResourceGroupManagerLocal resourceGroupManager;
+
+ @EJB
private ResourceTypeManagerLocal resourceTypeManager;
@EJB
@@ -459,78 +465,161 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
@SuppressWarnings("unchecked")
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void removeObsoleteTypesInNewTransaction(String pluginName) {
-
- Query query = entityManager.createNamedQuery(ResourceType.QUERY_FIND_BY_PLUGIN);
- query.setParameter("plugin", pluginName);
- List<ResourceType> existingTypes = query.getResultList();
-
- if (existingTypes != null) {
- Subject overlord = subjectManager.getOverlord();
- for (Iterator<ResourceType> iter = existingTypes.iterator(); iter.hasNext();) {
- ResourceType existingType = iter.next();
- if (PLUGIN_METADATA_MANAGER.getType(existingType.getName(), existingType.getPlugin()) == null) {
- if (entityManager.contains(existingType))
- entityManager.refresh(existingType);
- // This type no longer exists
- removeFromParents(existingType);
- // clean out the measurement stuff hanging on the type;
- List<Resource> resources = existingType.getResources();
- if (resources != null) {
- Iterator<Resource> resIter = resources.iterator();
- while (resIter.hasNext()) {
- Resource res = resIter.next();
- List<Integer> deletedIds = resourceManager.deleteResource(overlord, res.getId());
- // do this out of band because the current transaction is locking rows that due to
- // updates that may need to get deleted. If you do it here the NewTrans used below
- // may deadlock with the current transactions locks.
- for (Integer deletedResourceId : deletedIds) {
- resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
- }
- resIter.remove();
- }
+ try {
+ Query query = entityManager.createNamedQuery(ResourceType.QUERY_FIND_BY_PLUGIN);
+ query.setParameter("plugin", pluginName);
+ List<ResourceType> existingTypes = query.getResultList();
+
+ if (existingTypes != null) {
+ Set<ResourceType> obsoleteTypes = new HashSet<ResourceType>();
+ Set<ResourceType> legitTypes = new HashSet<ResourceType>();
+ Subject overlord = subjectManager.getOverlord();
+ for (ResourceType existingType : existingTypes) {
+ if (PLUGIN_METADATA_MANAGER.getType(existingType.getName(), existingType.getPlugin()) == null) {
+ // The type is obsolete - (i.e. it's no longer defined by the plugin).
+ obsoleteTypes.add(existingType);
+ } else {
+ legitTypes.add(existingType);
}
- entityManager.flush();
- Set<MeasurementDefinition> definitions = existingType.getMetricDefinitions();
- if (definitions != null) {
- Iterator<MeasurementDefinition> defIter = definitions.iterator();
- while (defIter.hasNext()) {
- MeasurementDefinition def = defIter.next();
- if (entityManager.contains(def)) {
- entityManager.refresh(def);
- measurementDefinitionManager.removeMeasurementDefinition(def);
- }
- defIter.remove();
+ }
+
+ if (!obsoleteTypes.isEmpty()) {
+ // TODO: Log this at DEBUG instead.
+ log.info("Removing " + obsoleteTypes.size() + " obsolete types: " + obsoleteTypes + "...");
+ removeResourceTypes(overlord, obsoleteTypes, new HashSet<ResourceType>(obsoleteTypes));
+ }
+
+ // Now it's safe to remove any obsolete subcategories on the legit types.
+ for (ResourceType legitType : legitTypes) {
+ ResourceType updateType = PLUGIN_METADATA_MANAGER.getType(legitType.getName(), legitType
+ .getPlugin());
+
+ // If we've got a type from the descriptor which matches an existing one,
+ // then let's see if we need to remove any subcategories from the existing one.
+ if (updateType != null) {
+ try {
+ removeObsoleteSubCategories(updateType, legitType);
+ } catch (Exception e) {
+ throw new Exception("Failed to delete obsolete subcategories from " + legitType + ".", e);
}
}
- entityManager.flush();
- // TODO clean out event definitions ?
- entityManager.remove(existingType);
- entityManager.flush();
- iter.remove();
}
}
+ } catch (Exception e) {
+ // Catch all exceptions, so a failure here does not cause the outer tx to rollback.
+ log.error("Failure during removal of obsolete ResourceTypes and Subcategories.", e);
+ }
+ }
- // finally, its safe to remove any existing subcategories
- for (ResourceType remainingType : existingTypes) {
- ResourceType updateType = PLUGIN_METADATA_MANAGER.getType(remainingType.getName(), remainingType
- .getPlugin());
-
- // if we've got a type from the descriptor which matches an existing one
- // then lets see if we need to remove any subcategories from the existing one
- if (updateType != null) {
- removeSubCategories(updateType, remainingType);
- entityManager.flush();
+ private void removeResourceTypes(Subject overlord, Set<ResourceType> candidateTypes,
+ Set<ResourceType> typesToBeRemoved)
+ throws Exception {
+ for (ResourceType candidateType : candidateTypes) {
+ // Remove obsolete descendant types first.
+ Set<ResourceType> childTypes = candidateType.getChildResourceTypes();
+ if (childTypes != null && !childTypes.isEmpty()) {
+ // Wrap child types in new HashSet to avoid ConcurrentModificationExceptions.
+ removeResourceTypes(overlord, new HashSet<ResourceType>(childTypes), typesToBeRemoved);
+ }
+ if (typesToBeRemoved.contains(candidateType)) {
+ try {
+ removeResourceType(overlord, candidateType);
+ } catch (Exception e) {
+ throw new Exception("Failed to remove " + candidateType + ".", e);
}
+ typesToBeRemoved.remove(candidateType);
}
}
}
+ private void removeResourceType(Subject overlord, ResourceType existingType) {
+ log.info("Removing ResourceType [" + toConciseString(existingType) + "]...");
+
+ if (entityManager.contains(existingType)) {
+ entityManager.refresh(existingType);
+ }
+
+ // Completely remove the type from the type hierarchy.
+ removeFromParents(existingType);
+ removeFromChildren(existingType);
+ entityManager.merge(existingType);
+
+ // Remove all Resources that are of the type.
+ List<Resource> resources = existingType.getResources();
+ if (resources != null) {
+ Iterator<Resource> resIter = resources.iterator();
+ while (resIter.hasNext()) {
+ Resource res = resIter.next();
+ List<Integer> deletedIds = resourceManager.deleteResource(overlord, res.getId());
+ // do this out of band because the current transaction is locking rows that due to
+ // updates that may need to get deleted. If you do it here the NewTrans used below
+ // may deadlock with the current transactions locks.
+ for (Integer deletedResourceId : deletedIds) {
+ resourceManager.deleteSingleResourceInNewTransaction(overlord, deletedResourceId);
+ }
+ resIter.remove();
+ }
+ }
+ entityManager.flush();
+
+ // Remove all compatible groups that are of the type.
+ List<ResourceGroup> compatGroups = existingType.getResourceGroups();
+ if (compatGroups != null) {
+ Iterator<ResourceGroup> compatGroupIterator = compatGroups.iterator();
+ while (compatGroupIterator.hasNext()) {
+ ResourceGroup compatGroup = compatGroupIterator.next();
+ try {
+ resourceGroupManager.deleteResourceGroup(overlord, compatGroup.getId());
+ } catch (ResourceGroupDeleteException e) {
+ throw new RuntimeException(e);
+ }
+ compatGroupIterator.remove();
+ }
+ }
+ entityManager.flush();
+
+ // Remove the type's metric definitions. We do this separately, rather than just relying on cascade
+ // upon deletion of the ResourceType, because the removeMeasurementDefinition() will also take care
+ // of removing any associated schedules and those schedules' OOBs.
+ Set<MeasurementDefinition> definitions = existingType.getMetricDefinitions();
+ if (definitions != null) {
+ Iterator<MeasurementDefinition> defIter = definitions.iterator();
+ while (defIter.hasNext()) {
+ MeasurementDefinition def = defIter.next();
+ if (entityManager.contains(def)) {
+ entityManager.refresh(def);
+ measurementDefinitionManager.removeMeasurementDefinition(def);
+ }
+ defIter.remove();
+ }
+ }
+ entityManager.flush();
+
+ // TODO: Clean out event definitions?
+
+ // Finally, remove the type itself.
+ // Refresh it first to make sure any newly discovered Resources of the type get added to the persistence
+ // context and hopefully get removed via cascade when we remove the type.
+ entityManager.refresh(existingType);
+ entityManager.remove(existingType);
+ entityManager.flush();
+ }
private void removeFromParents(ResourceType typeToBeRemoved) {
// Wrap in new HashSet to avoid ConcurrentModificationExceptions.
- Set<ResourceType> parents = new HashSet<ResourceType>(typeToBeRemoved.getParentResourceTypes());
- for (ResourceType parent : parents) {
- parent.removeChildResourceType(typeToBeRemoved);
+ Set<ResourceType> parentTypes = new HashSet<ResourceType>(typeToBeRemoved.getParentResourceTypes());
+ for (ResourceType parentType : parentTypes) {
+ parentType.removeChildResourceType(typeToBeRemoved);
+ entityManager.merge(parentType);
+ }
+ }
+
+ private void removeFromChildren(ResourceType typeToBeRemoved) {
+ // Wrap in new HashSet to avoid ConcurrentModificationExceptions.
+ Set<ResourceType> childTypes = new HashSet<ResourceType>(typeToBeRemoved.getChildResourceTypes());
+ for (ResourceType childType : childTypes) {
+ childType.removeParentResourceType(typeToBeRemoved);
+ entityManager.merge(childType);
}
}
@@ -634,7 +723,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
private void persistNewType(ResourceType resourceType) {
- log.info("Persisting new type [" + resourceType + "]...");
+ log.info("Persisting new ResourceType [" + toConciseString(resourceType) + "]...");
// If the type didn't exist then we'll persist here which will cascade through
// all child types as well as plugin and resource configs and their delegate types and
// metric and operation definitions and their dependent types,
@@ -696,7 +785,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
.setParameter("plugin", newParentType.getPlugin()).getSingleResult();
ResourceType type = (existingType != null) ? existingType : newType;
if (existingType != null) {
- log.info("Adding type [" + toConciseString(type) + "] as child of type ["
+ log.info("Adding ResourceType [" + toConciseString(type) + "] as child of ResourceType ["
+ toConciseString(realParentType) + "]...");
}
realParentType.addChildResourceType(type);
@@ -789,7 +878,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
return result;
}
- /** Update the <event> tags */
+ /* Update the <event> tags */
private void updateEventDefinitions(ResourceType newType, ResourceType existingType) {
Set<EventDefinition> newEventDefs = newType.getEventDefinitions();
// Loop over the newEventDefs and set the resourceTypeId, so equals() will work
@@ -838,9 +927,6 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
/**
* Update the stuff below a <plugin-configuration>
- *
- * @param resourceType
- * @param existingType
*/
private void updatePluginConfiguration(ResourceType resourceType, ResourceType existingType) {
ConfigurationDefinition existingConfigurationDefinition = existingType.getPluginConfigurationDefinition();
@@ -1146,7 +1232,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
// Easy case: If the existing type did not have any definitions, simply save the new type defs and return
if (existingType.getChildSubCategories() == null) {
for (ResourceSubCategory newSubCategory : newType.getChildSubCategories()) {
- log.debug("Metadata update: Adding new child SubCategory [" + newSubCategory.getName()
+ log.info("Metadata update: Adding new child SubCategory [" + newSubCategory.getName()
+ "] to ResourceType [" + existingType.getName() + "]...");
existingType.addChildSubCategory(newSubCategory);
entityManager.persist(newSubCategory);
@@ -1176,7 +1262,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
List<ResourceSubCategory> newSubCategories = new ArrayList<ResourceSubCategory>(newType.getChildSubCategories());
newSubCategories.removeAll(existingType.getChildSubCategories());
for (ResourceSubCategory newSubCat : newSubCategories) {
- log.debug("Metadata update: Adding new child SubCategory [" + newSubCat.getName() + "] to ResourceType ["
+ log.info("Metadata update: Adding new child SubCategory [" + newSubCat.getName() + "] to ResourceType ["
+ existingType.getName() + "]...");
existingType.addChildSubCategory(newSubCat);
entityManager.persist(newSubCat);
@@ -1227,7 +1313,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
.getChildSubCategories());
newChildSubCategories.removeAll(existingSubCat.getChildSubCategories());
for (ResourceSubCategory newChildSubCategory : newChildSubCategories) {
- log.debug("Metadata update: Adding new child SubCategory [" + newChildSubCategory.getName()
+ log.info("Metadata update: Adding new child SubCategory [" + newChildSubCategory.getName()
+ "] to SubCategory [" + existingSubCat.getName() + "]...");
existingSubCat.addChildSubCategory(newChildSubCategory);
entityManager.persist(newChildSubCategory);
@@ -1235,12 +1321,12 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
/**
- * Remove all sub category definitions that are in the existing type but not in the new type
+ * Remove all subcategory definitions that are in the existing type but not in the new type.
*
* @param newType new resource type containing updated definitions
* @param existingType old resource type with existing definitions
*/
- private void removeSubCategories(ResourceType newType, ResourceType existingType) {
+ private void removeObsoleteSubCategories(ResourceType newType, ResourceType existingType) {
// Remove all definitions that are in the existing type but not in the new type
List<ResourceSubCategory> removedSubCategories = new ArrayList<ResourceSubCategory>(existingType
.getChildSubCategories());
@@ -1254,6 +1340,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
// now need to recursively remove any child sub categories which no longer appear
removeChildSubCategories(existingType.getChildSubCategories(), newType.getChildSubCategories());
+ entityManager.flush();
}
private void removeChildSubCategories(List<ResourceSubCategory> existingSubCategories,
@@ -1273,7 +1360,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
.getChildSubCategories();
removedChildSubCategories.removeAll(newChildSubCategories);
for (ResourceSubCategory removedChildSubCat : removedChildSubCategories) {
- // remove subcat and all its children, due to the CASCADE.DELETE
+ // remove subcat and all its children, due to the CASCADE.DELETE
existingSubCat.removeChildSubCategory(removedChildSubCat);
entityManager.remove(removedChildSubCat);
}
commit f582ba754efc2c18c9c2c6e1990bc66b873e012d
Merge: df3bb69... f12b7e7...
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Jun 4 18:12:26 2010 -0400
Merge branch 'master' of ssh://git.fedorahosted.org/git/rhq/rhq
commit df3bb699e9bbfbe4c9bd05de1e9340d7a9e20134
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Jun 4 18:09:58 2010 -0400
[BZ 600365] Creating deep copy of config object to work around hibernate exception
This bug suffers from the same root cause as BZ 586943. We have not yet identified the
root cause.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index 32ac2c1..1652b0b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -213,6 +213,7 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
public ConfigurationUpdateResponse executePluginConfigurationUpdate(PluginConfigurationUpdate update) {
Resource resource = update.getResource();
Configuration configuration = update.getConfiguration();
+ configuration = configuration.deepCopy(false);
ConfigurationUpdateResponse response = null;
commit f12b7e7728f21d8ac70f984df75f111000167489
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 4 17:58:02 2010 -0400
BZ-600522: fix broken links on alerts-related subsystem view pages
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml
index bf85748..efd435b 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml
@@ -141,23 +141,22 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="/alerts/Config.do" rendered="#{empty item.original.alertDefinition.resourceType and empty item.original.alertDefinition.resourceGroup}">
+ <h:outputLink value="/alerts/Config.do" >
<f:param name="mode" value="viewRoles" />
- <f:param name="id" value="#{item.original.alertDefinition.resource.id}" />
- <f:param name="ad" value="#{item.original.alertDefinition.id}" />
- <h:outputText value="#{item.original.alertDefinition.name}" />
- </h:outputLink>
- <h:outputLink value="/alerts/Config.do" rendered="#{not empty item.original.alertDefinition.resourceType}">
- <f:param name="mode" value="viewRoles" />
- <f:param name="type" value="#{item.original.alertDefinition.resourceType.id}" />
- <f:param name="ad" value="#{item.original.alertDefinition.id}" />
- <h:outputText value="#{item.original.alertDefinition.name}" />
- </h:outputLink>
- <h:outputLink value="/alerts/Config.do" rendered="#{not empty item.original.alertDefinition.resourceGroup}">
- <f:param name="mode" value="viewRoles" />
- <f:param name="groupId" value="#{item.original.alertDefinition.resourceGroup.id}" />
+
+ <f:param name="id" value="#{item.original.alertDefinition.resource.id}"
+ rendered="#{not empty item.original.alertDefinition.resource}" />
+ <f:param name="type" value="#{item.original.alertDefinition.resourceType.id}"
+ rendered="#{not empty item.original.alertDefinition.resourceType}" />
+ <f:param name="groupId" value="#{item.original.alertDefinition.resourceGroup.id}"
+ rendered="#{not empty item.original.alertDefinition.resourceGroup}" />
+
<f:param name="ad" value="#{item.original.alertDefinition.id}" />
<h:outputText value="#{item.original.alertDefinition.name}" />
+
+ <h:graphicImage rendered="#{item.original.alertDefinition.priority == 'LOW'}" value="/images/icons/Flag_blue_16.png"/>
+ <h:graphicImage rendered="#{item.original.alertDefinition.priority == 'MEDIUM'}" value="/images/icons/Flag_yellow_16.png"/>
+ <h:graphicImage rendered="#{item.original.alertDefinition.priority == 'HIGH'}" value="/images/icons/Flag_red_16.png"/>
</h:outputLink>
</rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml
index e97f9fc..98b4d14 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml
@@ -136,15 +136,16 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="/rhq/resource/alert/viewAlert.xhtml">
- <f:param name="id" value="#{item.original.alert.alertDefinition.resource.id}" />
- <f:param name="ad" value="#{item.original.alert.alertDefinition.id}" />
-
+ <h:outputLink value="/alerts/Config.do" >
+ <f:param name="mode" value="viewRoles" />
+ <f:param name="id" value="#{item.original.alert.alertDefinition.resource.id}"/>
+ <f:param name="ad" value="#{item.original.alert.alertDefinition.id}" />
+ <h:outputText value="#{item.original.alert.alertDefinition.name}" />
+
<h:graphicImage rendered="#{item.original.alert.alertDefinition.priority == 'LOW'}" value="/images/icons/Flag_blue_16.png"/>
<h:graphicImage rendered="#{item.original.alert.alertDefinition.priority == 'MEDIUM'}" value="/images/icons/Flag_yellow_16.png"/>
<h:graphicImage rendered="#{item.original.alert.alertDefinition.priority == 'HIGH'}" value="/images/icons/Flag_red_16.png"/>
- <h:outputText value="#{item.original.alert.alertDefinition.name}" />
</h:outputLink>
</rich:column>
commit a0aed6f7470d69c9f801fcc14852ff8147fb6312
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 4 13:38:40 2010 -0400
formatting changes
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 94eca3b..302fdac 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -21,21 +21,17 @@ package org.rhq.enterprise.server.resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
-import java.util.Set;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
-import javax.persistence.DiscriminatorType;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
@@ -90,7 +86,6 @@ import org.rhq.core.domain.resource.ResourceError;
import org.rhq.core.domain.resource.ResourceErrorType;
import org.rhq.core.domain.resource.ResourceSubCategory;
import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite;
import org.rhq.core.domain.resource.composite.ResourceAvailabilitySummary;
import org.rhq.core.domain.resource.composite.ResourceComposite;
@@ -101,8 +96,6 @@ import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
import org.rhq.core.domain.resource.composite.ResourceWithAvailability;
import org.rhq.core.domain.resource.flyweight.FlyweightCache;
import org.rhq.core.domain.resource.flyweight.ResourceFlyweight;
-import org.rhq.core.domain.resource.flyweight.ResourceSubCategoryFlyweight;
-import org.rhq.core.domain.resource.flyweight.ResourceTypeFlyweight;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.AutoGroupComposite;
import org.rhq.core.domain.util.PageControl;
@@ -110,7 +103,6 @@ import org.rhq.core.domain.util.PageList;
import org.rhq.core.server.PersistenceUtility;
import org.rhq.core.util.IntExtractor;
import org.rhq.core.util.collection.ArrayUtils;
-import org.rhq.core.util.jdbc.JDBCUtil;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.agentclient.AgentClient;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
@@ -120,13 +112,8 @@ import org.rhq.enterprise.server.authz.RequiredPermission;
import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.jaxb.adapter.ResourceListAdapter;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
-import org.rhq.enterprise.server.operation.OperationManagerLocal;
-import org.rhq.enterprise.server.resource.disambiguation.DisambiguationPolicy;
import org.rhq.enterprise.server.resource.disambiguation.DisambiguationUpdateStrategy;
import org.rhq.enterprise.server.resource.disambiguation.Disambiguator;
-import org.rhq.enterprise.server.resource.disambiguation.MutableDisambiguationReport;
-import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
-import org.rhq.enterprise.server.resource.disambiguation.ReportPartitions;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
@@ -160,9 +147,6 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
private ResourceTypeManagerLocal typeManager;
@EJB
@IgnoreDependency
- private OperationManagerLocal operationManager;
- @EJB
- @IgnoreDependency
private MeasurementScheduleManagerLocal measurementScheduleManager;
public void createResource(Subject user, Resource resource, int parentId) throws ResourceAlreadyExistsException {
@@ -1849,15 +1833,17 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
if (subCategoryId != null) {
//we don't need the reference to the sub category here. We need it just in the cache.
- flyweightCache.constructSubCategory(subCategoryId, subCategoryName, parentSubCategoryId, parentSubCategoryName);
+ flyweightCache.constructSubCategory(subCategoryId, subCategoryName, parentSubCategoryId,
+ parentSubCategoryName);
}
-
+
//we don't need the resource type reference here, only in the cache
- flyweightCache.constructResourceType(typeId, typeName, typePlugin, typeSingleton, typeCategory, subCategoryId);
-
- ResourceFlyweight resourceFlyweight = flyweightCache.constructResource(
- resourceId, resourceName, resourceUuid, resourceKey, parentId, typeId, availType);
-
+ flyweightCache.constructResourceType(typeId, typeName, typePlugin, typeSingleton, typeCategory,
+ subCategoryId);
+
+ ResourceFlyweight resourceFlyweight = flyweightCache.constructResource(resourceId, resourceName,
+ resourceUuid, resourceKey, parentId, typeId, availType);
+
resources.add(resourceFlyweight);
}
@@ -1865,7 +1851,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
}
@SuppressWarnings("unchecked")
- public List<ResourceFlyweight> findResourcesByCompatibleGroup(Subject user, int compatibleGroupId, PageControl pageControl) {
+ public List<ResourceFlyweight> findResourcesByCompatibleGroup(Subject user, int compatibleGroupId,
+ PageControl pageControl) {
// Note: I didn't put these queries in as named queries since they have very specific pre-fetching
// for this use case.
@@ -1893,32 +1880,32 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
List<Object[]> reportingQueryResults = reportingQuery.getResultList();
List<ResourceFlyweight> resources = getFlyWeightObjectGraphFromReportingQueryResults(reportingQueryResults);
-// if (false) { //!authorizationManager.isInventoryManager(user)) {
-// String authorizationQueryString = "" //
-// + " SELECT res.id \n" //
-// + " FROM Resource res " //
-// + " WHERE res.inventoryStatus = :inventoryStatus " //
-// + " AND (res.id IN (SELECT rr.id FROM Resource rr JOIN rr.explicitGroups g WHERE g.id = :groupId)\n"
-// + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.explicitGroups g WHERE g.id = :groupId)\n"
-// + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.parentResource.explicitGroups g WHERE g.id = :groupId)\n"
-// + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.parentResource.parentResource.explicitGroups g WHERE g.id = :groupId)\n"
-// + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.parentResource.parentResource.parentResource.explicitGroups g WHERE g.id = :groupId)) \n"
-// + " AND res.id IN (SELECT rr.id FROM Resource rr JOIN rr.implicitGroups g JOIN g.roles r JOIN r.subjects s WHERE s = :subject)";
-//
-// Query authorizationQuery = entityManager.createQuery(authorizationQueryString);
-// authorizationQuery.setParameter("groupId", compatibleGroupId);
-// authorizationQuery.setParameter("inventoryStatus", InventoryStatus.COMMITTED);
-// authorizationQuery.setParameter("subject", user);
-// List<Integer> visibleResources = authorizationQuery.getResultList();
-//
-// HashSet<Integer> visibleIdSet = new HashSet<Integer>(visibleResources);
-//
-// ListIterator<ResourceFlyweight> iter = resources.listIterator();
-// while (iter.hasNext()) {
-// ResourceFlyweight res = iter.next();
-// res.setLocked(!visibleIdSet.contains(res.getId()));
-// }
-// }
+ // if (false) { //!authorizationManager.isInventoryManager(user)) {
+ // String authorizationQueryString = "" //
+ // + " SELECT res.id \n" //
+ // + " FROM Resource res " //
+ // + " WHERE res.inventoryStatus = :inventoryStatus " //
+ // + " AND (res.id IN (SELECT rr.id FROM Resource rr JOIN rr.explicitGroups g WHERE g.id = :groupId)\n"
+ // + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.explicitGroups g WHERE g.id = :groupId)\n"
+ // + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.parentResource.explicitGroups g WHERE g.id = :groupId)\n"
+ // + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.parentResource.parentResource.explicitGroups g WHERE g.id = :groupId)\n"
+ // + " OR res.id IN (SELECT rr.id FROM Resource rr JOIN rr.parentResource.parentResource.parentResource.parentResource.explicitGroups g WHERE g.id = :groupId)) \n"
+ // + " AND res.id IN (SELECT rr.id FROM Resource rr JOIN rr.implicitGroups g JOIN g.roles r JOIN r.subjects s WHERE s = :subject)";
+ //
+ // Query authorizationQuery = entityManager.createQuery(authorizationQueryString);
+ // authorizationQuery.setParameter("groupId", compatibleGroupId);
+ // authorizationQuery.setParameter("inventoryStatus", InventoryStatus.COMMITTED);
+ // authorizationQuery.setParameter("subject", user);
+ // List<Integer> visibleResources = authorizationQuery.getResultList();
+ //
+ // HashSet<Integer> visibleIdSet = new HashSet<Integer>(visibleResources);
+ //
+ // ListIterator<ResourceFlyweight> iter = resources.listIterator();
+ // while (iter.hasNext()) {
+ // ResourceFlyweight res = iter.next();
+ // res.setLocked(!visibleIdSet.contains(res.getId()));
+ // }
+ // }
return resources;
}
commit 0b1c4a0f06acedf07e695e4b7c30bcbc372b8bcf
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 4 13:38:30 2010 -0400
BZ-599538: fix error handling for executing alert-trigger operation using RELATIVE search
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index ed96aa5..95cbdff 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -680,7 +680,7 @@ import org.rhq.core.domain.util.Summary;
+ "SELECT r.id " //
+ " FROM Resource r " //
+ " WHERE ( r.resourceType.id = :resourceTypeId OR :resourceTypeId IS NULL ) " //
- + " AND ( LOWER(r.name) like :name OR :name IS NULL ) " //
+ + " AND ( UPPER(r.name) like :name OR :name IS NULL ) " //
+ " AND ( r.id = :resourceId " //
+ " OR r.id IN (SELECT rr.id FROM Resource rr WHERE rr.parentResource.id = :resourceId) "
+ " OR r.id IN (SELECT rr.id FROM Resource rr WHERE rr.parentResource.parentResource.id = :resourceId) "
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 730755e..94eca3b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -324,6 +324,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
Query descendantQuery = entityManager.createNamedQuery(Resource.QUERY_FIND_DESCENDENTS_BY_TYPE_AND_NAME);
descendantQuery.setParameter("resourceId", resourceId);
descendantQuery.setParameter("resourceTypeId", resourceTypeId);
+ name = QueryUtility.formatSearchParameter(name);
descendantQuery.setParameter("name", name);
List<Integer> descendants = descendantQuery.getResultList();
return descendants;
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
index 05cf869..ed9eecb 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationInfo.java
@@ -79,12 +79,23 @@ public class OperationInfo {
}
private String getErrorString(OperationInfo info) {
- if (resourceId == null) {
- return "<no resource selected>";
+ if (mode == ResourceSelectionMode.RELATIVE) {
+ if (ancestorTypeId == null) {
+ return "<no 'start search from' selected>";
+ }
+ if (descendantTypeId == null) {
+ return "<no 'filter by' selected>";
+ }
+ } else if (mode == ResourceSelectionMode.SPECIFIC) {
+ if (resourceId == null) {
+ return "<no resource selected>";
+ }
}
+
if (operationId == null) {
return "<no operation selected>";
}
+
return null;
}
@@ -219,8 +230,17 @@ public class OperationInfo {
Resource targetResource = null;
if (descendantTypeId != null) {
- LookupUtil.getResourceManager().getResourceDescendantsByTypeAndName(getOverlord(), searchFrom.getId(),
- descendantTypeId, descendantName);
+ List<Integer> candidateResourceIds = LookupUtil.getResourceManager()
+ .getResourceDescendantsByTypeAndName(getOverlord(), searchFrom.getId(), descendantTypeId,
+ descendantName);
+ if (candidateResourceIds.size() == 0) {
+ throw new IllegalStateException("Could not find target resource");
+ } else if (candidateResourceIds.size() != 1) {
+ throw new IllegalStateException("Found multiple resources, need exactly one match");
+ } else {
+ int targetResourceId = candidateResourceIds.get(0);
+ targetResource = LookupUtil.getResourceManager().getResourceById(getOverlord(), targetResourceId);
+ }
} else {
targetResource = searchFrom;
}
diff --git a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
index 86687fd..c82ead7 100644
--- a/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
+++ b/modules/enterprise/server/plugins/alert-operations/src/main/java/org/rhq/enterprise/server/plugins/alertOperations/OperationsSender.java
@@ -26,7 +26,6 @@ import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.operation.OperationDefinition;
import org.rhq.core.domain.resource.Resource;
-import org.rhq.enterprise.server.exception.ScheduleException;
import org.rhq.enterprise.server.operation.ResourceOperationSchedule;
import org.rhq.enterprise.server.plugin.pc.alert.AlertSender;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -66,7 +65,7 @@ public class OperationsSender extends AlertSender {
}
}
} catch (Exception e) {
- String message = getResultMessage(operation.getName(), info.resourceId, "failed with " + e.getMessage());
+ String message = getResultMessage(info, "failed with " + e.getMessage());
return new SenderResult(ResultState.FAILURE, message);
}
@@ -77,16 +76,16 @@ public class OperationsSender extends AlertSender {
ResourceOperationSchedule schedule = LookupUtil.getOperationManager().scheduleResourceOperation(subject,
targetResource.getId(), operation.getName(), 0, 0, 0, 0, replacedParameters, description);
- String message = getResultMessage(operation.getName(), info.resourceId, "jobId was " + schedule.getJobId());
+ String message = getResultMessage(info, "jobId was " + schedule.getJobId());
return new SenderResult(ResultState.SUCCESS, message);
- } catch (ScheduleException e) {
- String message = getResultMessage(operation.getName(), info.resourceId, "failed with " + e.getMessage());
+ } catch (Throwable t) {
+ String message = getResultMessage(info, "failed with " + t.getMessage());
return new SenderResult(ResultState.FAILURE, message);
}
}
- private String getResultMessage(String operationName, int resourceId, String details) {
- return operationName + " scheduled on resource " + resourceId + ": " + details;
+ private String getResultMessage(OperationInfo info, String details) {
+ return info.getResourceInfo() + ": " + details;
}
@Override
commit 8d8f0b3933a626c30a002e35861e96b69843e94c
Author: Joseph Marques <joseph(a)redhat.com>
Date: Fri Jun 4 13:35:07 2010 -0400
remove unsed code - formatSearchParameter was improved and moved to QueryUtility static helper
diff --git a/modules/core/domain/src/main/java/org/rhq/core/server/PersistenceUtility.java b/modules/core/domain/src/main/java/org/rhq/core/server/PersistenceUtility.java
index e496bb5..53e871a 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/server/PersistenceUtility.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/server/PersistenceUtility.java
@@ -72,12 +72,13 @@ public class PersistenceUtility {
public static final String HIBERNATE_STATISTICS_MBEAN_OBJECTNAME = "Hibernate:type=statistics,application=RHQ";
+ @SuppressWarnings("unchecked")
public static String getDisplayString(Type hibernateType) {
if (hibernateType instanceof EntityType) {
return hibernateType.getName() + " (enter integer of ID / primary key field)";
} else if (hibernateType instanceof CustomType) {
if (Enum.class.isAssignableFrom(hibernateType.getReturnedClass())) {
- Class<? extends Enum<?>> enumClass = hibernateType.getReturnedClass();
+ Class<? extends Enum<?>> enumClass = (Class<? extends Enum<?>>) hibernateType.getReturnedClass();
StringBuilder result = new StringBuilder();
result.append(enumClass.getName());
result.append(" (");
@@ -319,14 +320,6 @@ public class PersistenceUtility {
}
}
- public static String formatSearchParameter(String value) {
- if (value == null || value.trim().equals("")) {
- return null;
- }
-
- return "%" + value.replaceAll("\\_", "\\\\_").toUpperCase() + "%";
- }
-
/**
* Creates and executes a filter query for a collection relationship. This executes without passing back the query
* object because the most common case is to simply paginate for a relationship. Use the createFilter method to
commit 39bd63d1e9890393953225d5bd75bc58a5359c50
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Jun 4 12:04:11 2010 -0400
BZ 600284 - db upgrade was creating the wrong typed column - must be LONG not INTEGER. side fix - changing the fkey name to match that which is used by dbsetup
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 70a93e5..4ba557b 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2295,9 +2295,9 @@
<schema-alterColumn table="RHQ_REPO_SYNC" column="ID" nullable="false" />
<schema-addColumn table="RHQ_REPO_SYNC" column="STATUS" precision="16" columnType="VARCHAR2" />
<schema-alterColumn table="RHQ_REPO_SYNC" column="STATUS" nullable="false" />
- <schema-addColumn table="RHQ_REPO_SYNC" column="START_TIME" columnType="INTEGER" />
+ <schema-addColumn table="RHQ_REPO_SYNC" column="START_TIME" columnType="LONG" />
<schema-alterColumn table="RHQ_REPO_SYNC" column="START_TIME" nullable="false" />
- <schema-addColumn table="RHQ_REPO_SYNC" column="END_TIME" columnType="INTEGER" />
+ <schema-addColumn table="RHQ_REPO_SYNC" column="END_TIME" columnType="LONG" />
<schema-addColumn table="RHQ_REPO_SYNC" column="RESULTS" columnType="LONGVARCHAR" />
<schema-addColumn table="RHQ_REPO_SYNC" column="PERCENT_COMPLETE" columnType="LONG" />
<schema-addColumn table="RHQ_REPO_SYNC" column="REPO_ID" columnType="INTEGER" />
@@ -2305,7 +2305,7 @@
<schema-directSQL>
<statement desc="Creating RHQ_REPO_SYNC foreign key relation to RHQ_REPO for scheduled jobs">
ALTER TABLE RHQ_REPO_SYNC
- ADD CONSTRAINT RHQ_RS_REPO_ID_FKEY
+ ADD CONSTRAINT RHQ_REPO_SYNC_REPO_ID_FKEY
FOREIGN KEY (REPO_ID)
REFERENCES RHQ_REPO (ID)
</statement>
commit 1bf6d42609a35e58f5e9ae5c2f562b68dac71bc9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 3 18:01:24 2010 -0400
Changing to ensure SHA256 value is included in package version strings
when possible. protects against different binaries having the same
manifest version (like commons-collections.jar 3.1...)
diff --git a/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java b/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java
index d835467..8224952 100644
--- a/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java
+++ b/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java
@@ -388,20 +388,16 @@ public class BytemanAgentComponent implements ResourceComponent<BytemanAgentComp
if (discoveredFiles != null) {
for (File file : discoveredFiles) {
- String fullPath = file.getAbsolutePath();
String shortName = file.getName();
- // try to get version from manifest. if not there calculate sha256 and use that
- // as the version. if that fails default to "0".
- String version = "0";
String sha256 = null;
try {
sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
- version = sha256;
} catch (Exception e) {
- log.debug("Failed to generate sha256 for [" + file + "]. Setting version to 0");
+ if (log.isDebugEnabled()) {
+ log.debug("Failed to generate sha256 for [" + file + "]");
+ }
}
- version = BytemanAgentDiscoveryComponent.getJarAttribute(fullPath,
- java.util.jar.Attributes.Name.IMPLEMENTATION_VERSION.toString(), version);
+ String version = getVersion(file, sha256);
PackageDetailsKey detailsKey = new PackageDetailsKey(shortName, version, typeName, "noarch");
ResourcePackageDetails detail = new ResourcePackageDetails(detailsKey);
detail.setDisplayName(shortName);
@@ -419,6 +415,32 @@ public class BytemanAgentComponent implements ResourceComponent<BytemanAgentComp
return details;
}
+ private String getVersion(File file, String sha256) {
+ // Version string in order of preference
+ // manifestVersion + sha256, sha256, manifestVersion, "0"
+ String version = "0";
+ String manifestVersion = null;
+ try {
+ manifestVersion = BytemanAgentDiscoveryComponent.getJarAttribute(file.getAbsolutePath(),
+ java.util.jar.Attributes.Name.IMPLEMENTATION_VERSION.toString(), null);
+ } catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ log.debug("Failed to determine manifestVersion for [" + file + "]");
+ }
+ }
+
+ if ((null != manifestVersion) && (null != sha256)) {
+ // this protects against the occasional differing binaries with poor manifest maintenance
+ version = manifestVersion + " [sha256=" + sha256 + "]";
+ } else if (null != sha256) {
+ version = "[sha256=" + sha256 + "]";
+ } else if (null != manifestVersion) {
+ version = manifestVersion;
+ }
+
+ return version;
+ }
+
/**
* Deploys boot and system classpath jars to the Byteman agent.
*
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
index 479c780..47bad08 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
@@ -84,7 +84,7 @@ public class JarContentDelegate extends FileContentDelegate {
});
for (File file : files) {
- String version = null;
+ String manifestVersion = null;
JarFile jf = null;
try {
Configuration config = new Configuration();
@@ -95,9 +95,9 @@ public class JarContentDelegate extends FileContentDelegate {
if (manifest != null) {
Attributes attributes = manifest.getMainAttributes();
- version = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
+ manifestVersion = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
- config.put(new PropertySimple("version", version));
+ config.put(new PropertySimple("version", manifestVersion));
config.put(new PropertySimple("title", attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE)));
config.put(new PropertySimple("url", attributes.getValue(Attributes.Name.IMPLEMENTATION_URL)));
config
@@ -113,12 +113,7 @@ public class JarContentDelegate extends FileContentDelegate {
} catch (Exception e) {
// leave as null
}
-
- // try to use version from manifest. if not there use the sha256. if that fails default to "0".
- if (null == version) {
- version = (null == sha256) ? "0" : sha256;
- }
-
+ String version = getVersion(manifestVersion, sha256);
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
version, getPackageTypeName(), "noarch"));
@@ -144,4 +139,22 @@ public class JarContentDelegate extends FileContentDelegate {
return packages;
}
+
+ private String getVersion(String manifestVersion, String sha256) {
+ // Version string in order of preference
+ // manifestVersion + sha256, sha256, manifestVersion, "0"
+ String version = "0";
+
+ if ((null != manifestVersion) && (null != sha256)) {
+ // this protects against the occasional differing binaries with poor manifest maintenance
+ version = manifestVersion + " [sha256=" + sha256 + "]";
+ } else if (null != sha256) {
+ version = "[sha256=" + sha256 + "]";
+ } else if (null != manifestVersion) {
+ version = manifestVersion;
+ }
+
+ return version;
+ }
+
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
index 51f6ed6..1a2655f 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
@@ -147,7 +147,7 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
// First discovery of this EAR/WAR
if (version == null) {
// try to use version from manifest. if not there use the sha256. if that fails default to "0".
- version = fileInfo.getVersion((null == sha256) ? "0" : sha256);
+ version = getVersion(fileInfo, sha256);
versions.putVersion(fileName, version);
versions.saveToDisk();
}
@@ -193,6 +193,24 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
return sha256;
}
+ private String getVersion(JarContentFileInfo fileInfo, String sha256) {
+ // Version string in order of preference
+ // manifestVersion + sha256, sha256, manifestVersion, "0"
+ String version = "0";
+ String manifestVersion = fileInfo.getVersion(null);
+
+ if ((null != manifestVersion) && (null != sha256)) {
+ // this protects against the occasional differing binaries with poor manifest maintenance
+ version = manifestVersion + " [sha256=" + sha256 + "]";
+ } else if (null != sha256) {
+ version = "[sha256=" + sha256 + "]";
+ } else if (null != manifestVersion) {
+ version = manifestVersion;
+ }
+
+ return version;
+ }
+
public RemovePackagesResponse removePackages(Set<ResourcePackageDetails> packages) {
throw new UnsupportedOperationException("Cannot remove the package backing an EAR/WAR resource.");
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/AbstractDeployer.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/AbstractDeployer.java
index 8f98d9c..5dff4ef 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/AbstractDeployer.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/deploy/AbstractDeployer.java
@@ -145,7 +145,6 @@ public abstract class AbstractDeployer implements Deployer {
manifest = new Manifest();
}
Attributes attribs = manifest.getMainAttributes();
- // attribs.put("RHQ-Sha256", shaString);
attribs.putValue("RHQ-Sha256", shaString);
FileOutputStream outputStream = new FileOutputStream(manifestFile);
manifest.write(outputStream);
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
index 39583ea..d68f429 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
@@ -84,7 +84,7 @@ public class JarContentDelegate extends FileContentDelegate {
});
for (File file : files) {
- String version = null;
+ String manifestVersion = null;
JarFile jf = null;
try {
Configuration config = new Configuration();
@@ -95,9 +95,9 @@ public class JarContentDelegate extends FileContentDelegate {
if (manifest != null) {
Attributes attributes = manifest.getMainAttributes();
- version = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
+ manifestVersion = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
- config.put(new PropertySimple("version", version));
+ config.put(new PropertySimple("version", manifestVersion));
config.put(new PropertySimple("title", attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE)));
config.put(new PropertySimple("url", attributes.getValue(Attributes.Name.IMPLEMENTATION_URL)));
config
@@ -113,12 +113,7 @@ public class JarContentDelegate extends FileContentDelegate {
} catch (Exception e) {
// leave as null
}
-
- // try to use version from manifest. if not there use the sha256. if that fails default to "0".
- if (null == version) {
- version = (null == sha256) ? "0" : sha256;
- }
-
+ String version = getVersion(manifestVersion, sha256);
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
version, getPackageTypeName(), "noarch"));
@@ -144,4 +139,22 @@ public class JarContentDelegate extends FileContentDelegate {
return packages;
}
+
+ private String getVersion(String manifestVersion, String sha256) {
+ // Version string in order of preference
+ // manifestVersion + sha256, sha256, manifestVersion, "0"
+ String version = "0";
+
+ if ((null != manifestVersion) && (null != sha256)) {
+ // this protects against the occasional differing binaries with poor manifest maintenance
+ version = manifestVersion + " [sha256=" + sha256 + "]";
+ } else if (null != sha256) {
+ version = "[sha256=" + sha256 + "]";
+ } else if (null != manifestVersion) {
+ version = manifestVersion;
+ }
+
+ return version;
+ }
+
}
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
index 138232d..e923682 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
@@ -144,7 +144,7 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
// First discovery of this EAR/WAR
if (version == null) {
// try to use version from manifest. if not there use the sha256. if that fails default to "0".
- version = fileInfo.getVersion((null == sha256) ? "0" : sha256);
+ version = getVersion(fileInfo, sha256);
versions.putVersion(fileName, version);
versions.saveToDisk();
}
@@ -190,6 +190,24 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
return sha256;
}
+ private String getVersion(JarContentFileInfo fileInfo, String sha256) {
+ // Version string in order of preference
+ // manifestVersion + sha256, sha256, manifestVersion, "0"
+ String version = "0";
+ String manifestVersion = fileInfo.getVersion(null);
+
+ if ((null != manifestVersion) && (null != sha256)) {
+ // this protects against the occasional differing binaries with poor manifest maintenance
+ version = manifestVersion + " [sha256=" + sha256 + "]";
+ } else if (null != sha256) {
+ version = "[sha256=" + sha256 + "]";
+ } else if (null != manifestVersion) {
+ version = manifestVersion;
+ }
+
+ return version;
+ }
+
public RemovePackagesResponse removePackages(Set<ResourcePackageDetails> packages) {
throw new UnsupportedOperationException("Cannot remove the package backing an EAR/WAR resource.");
}
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
index 4f112b3..9628e25 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java
@@ -111,7 +111,6 @@ public class FileContentDelegate {
manifest = new Manifest();
}
Attributes attribs = manifest.getMainAttributes();
- // attribs.put("RHQ-Sha256", shaString);
attribs.putValue("RHQ-Sha256", shaString);
FileOutputStream outputStream = new FileOutputStream(manifestFile);
manifest.write(outputStream);
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
index d91c7ef..ee3e603 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
@@ -84,7 +84,7 @@ public class JarContentDelegate extends FileContentDelegate {
});
for (File file : files) {
- String version = null;
+ String manifestVersion = null;
JarFile jf = null;
try {
Configuration config = new Configuration();
@@ -94,9 +94,9 @@ public class JarContentDelegate extends FileContentDelegate {
if (manifest != null) {
Attributes attributes = manifest.getMainAttributes();
- version = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
+ manifestVersion = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
- config.put(new PropertySimple("version", version));
+ config.put(new PropertySimple("version", manifestVersion));
config.put(new PropertySimple("title", attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE)));
config.put(new PropertySimple("url", attributes.getValue(Attributes.Name.IMPLEMENTATION_URL)));
config
@@ -105,19 +105,13 @@ public class JarContentDelegate extends FileContentDelegate {
config.put(new PropertySimple("classpath", attributes.getValue(Attributes.Name.CLASS_PATH)));
config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
}
-
String sha256 = null;
try {
sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
} catch (Exception e) {
// leave as null
}
-
- // try to use version from manifest. if not there use the sha256. if that fails default to "0".
- if (null == version) {
- version = (null == sha256) ? "0" : sha256;
- }
-
+ String version = getVersion(manifestVersion, sha256);
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
version, getPackageTypeName(), "noarch"));
@@ -143,4 +137,22 @@ public class JarContentDelegate extends FileContentDelegate {
return packages;
}
+
+ private String getVersion(String manifestVersion, String sha256) {
+ // Version string in order of preference
+ // manifestVersion + sha256, sha256, manifestVersion, "0"
+ String version = "0";
+
+ if ((null != manifestVersion) && (null != sha256)) {
+ // this protects against the occasional differing binaries with poor manifest maintenance
+ version = manifestVersion + " [sha256=" + sha256 + "]";
+ } else if (null != sha256) {
+ version = "[sha256=" + sha256 + "]";
+ } else if (null != manifestVersion) {
+ version = manifestVersion;
+ }
+
+ return version;
+ }
+
}
\ No newline at end of file
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index 6ad0ee0..b3f0b98 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -634,7 +634,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
// First discovery of this WAR
if (null == version) {
JarContentFileInfo info = new JarContentFileInfo(file);
- version = info.getVersion((null == sha256) ? "0" : sha256);
+ version = getVersion(info, sha256);
versions.putVersion(fileName, version);
versions.saveToDisk();
}
@@ -680,6 +680,24 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
return sha256;
}
+ private String getVersion(JarContentFileInfo fileInfo, String sha256) {
+ // Version string in order of preference
+ // manifestVersion + sha256, sha256, manifestVersion, "0"
+ String version = "0";
+ String manifestVersion = fileInfo.getVersion(null);
+
+ if ((null != manifestVersion) && (null != sha256)) {
+ // this protects against the occasional differing binaries with poor manifest maintenance
+ version = manifestVersion + " [sha256=" + sha256 + "]";
+ } else if (null != sha256) {
+ version = "[sha256=" + sha256 + "]";
+ } else if (null != manifestVersion) {
+ version = manifestVersion;
+ }
+
+ return version;
+ }
+
public List<DeployPackageStep> generateInstallationSteps(ResourcePackageDetails packageDetails) {
return null;
}
commit 6b2b941a112e96c47c405fc6d4d07047bc860716
Merge: cb8795d... 72dc53d...
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 3 14:52:01 2010 -0400
Merge branch 'master' into master-jay
Conflicts:
modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
commit cb8795d8d508456b3e72aa229457c07f98d74c20
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 3 14:51:16 2010 -0400
LT commit
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
index 15c0f95..99cea70 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
@@ -1,465 +1,465 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<!DOCTYPE taglib
- PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
- "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-
-<taglib>
- <tlib-version>1.0</tlib-version>
- <jsp-version>1.2</jsp-version>
- <short-name>display</short-name>
- <uri>http://jakarta.apache.org/taglibs/display</uri>
- <description>
- tag to display a table, inspired by the Jakarta taglibs table
- tag but heavily torqued to suit CAM's needs and make the
- ColumnDecorator handling more robust
- </description>
- <tag>
- <name>table</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableTag</tag-class>
- <body-content>JSP</body-content>
-
- <attribute>
- <name>var</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Object</type>
- </attribute>
- <attribute>
- <name>items</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>org.rhq.core.domain.util.PageList</type>
- </attribute>
- <attribute>
- <name>property</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>onlyForProperty</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>If set only include rows that have this property set to true</description>
- </attribute>
-
- <attribute>
- <name>postfix</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
-
-
- <attribute>
- <name>scope</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>length</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>offset</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>action</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>width</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>border</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>styleClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>styleId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>cellspacing</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>cellpadding</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>align</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nowrapHeader</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>background</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>bgcolor</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>frame</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>height</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>hspace</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>rules</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>summary</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>vspace</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>display</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>padRows</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <!-- this message is used if there are no rows and padRows isn't defined
- - for example, to generate a "No foo found" message.
- -->
- <attribute>
- <name>emptyMsg</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>rightSidebar</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>leftSidebar</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>paramId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramName</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramProperty</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramScope</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>column</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.LocalizedColumnTag</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>property</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>showHideProperty</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>isShowHideColumn</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>isLocalizedTitle</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>sort</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>defaultSort</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
-
- <attribute>
- <name>sortAttr</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>value</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>Object</type>
- </attribute>
- <attribute>
- <name>title</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nulls</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
-
- <attribute>
- <name>autolink</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>href</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramName</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramProperty</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramScope</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>maxLength</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>maxWords</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>width</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>styleClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>headerStyleClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>align</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>background</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>bgcolor</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>height</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nowrap</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>valign</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>group</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>doubleQuote</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>decorator</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>org.rhq.enterprise.gui.legacy.taglib.display.ColumnDecorator</type>
- </attribute>
- <attribute>
- <name>decoratorClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- <description>The class name of a class to instantiate and act as the decorator.</description>
- </attribute>
- <attribute>
- <name>headerColspan</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>onClick</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- <description>Add a onclick handler for the column</description>
- </attribute>
- </tag>
- <tag>
- <name>setProperty</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SetPropertyTag</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>name</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>value</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE taglib
+ PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
+ "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+
+<taglib>
+ <tlib-version>1.0</tlib-version>
+ <jsp-version>1.2</jsp-version>
+ <short-name>display</short-name>
+ <uri>http://jakarta.apache.org/taglibs/display</uri>
+ <description>
+ tag to display a table, inspired by the Jakarta taglibs table
+ tag but heavily torqued to suit CAM's needs and make the
+ ColumnDecorator handling more robust
+ </description>
+ <tag>
+ <name>table</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Object</type>
+ </attribute>
+ <attribute>
+ <name>items</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.core.domain.util.PageList</type>
+ </attribute>
+ <attribute>
+ <name>property</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>onlyForProperty</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>If set only include rows that have this property set to true</description>
+ </attribute>
+
+ <attribute>
+ <name>postfix</name>
+ <required>false</required>
+ <type>java.lang.String</type>
+ </attribute>
+
+
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>length</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>offset</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>action</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>width</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>styleId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>cellspacing</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>cellpadding</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nowrapHeader</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>background</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>bgcolor</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>frame</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>height</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>hspace</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>rules</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>summary</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>vspace</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>export</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>display</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>padRows</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <!-- this message is used if there are no rows and padRows isn't defined
+ - for example, to generate a "No foo found" message.
+ -->
+ <attribute>
+ <name>emptyMsg</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>rightSidebar</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>leftSidebar</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>paramId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramName</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramProperty</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramScope</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>column</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.LocalizedColumnTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>property</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>showHideProperty</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>isShowHideColumn</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>isLocalizedTitle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>sort</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>defaultSort</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute>
+ <name>sortAttr</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Object</type>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nulls</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+
+ <attribute>
+ <name>autolink</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>href</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramName</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramProperty</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramScope</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>maxLength</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>maxWords</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>width</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>headerStyleClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>background</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>bgcolor</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>height</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nowrap</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>valign</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>group</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>doubleQuote</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>decorator</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.enterprise.gui.legacy.taglib.display.ColumnDecorator</type>
+ </attribute>
+ <attribute>
+ <name>decoratorClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ <description>The class name of a class to instantiate and act as the decorator.</description>
+ </attribute>
+ <attribute>
+ <name>headerColspan</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>onClick</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ <description>Add a onclick handler for the column</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>setProperty</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SetPropertyTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
</tag>
<tag>
<name>userackdecorator</name>
@@ -485,408 +485,408 @@
<type>String</type>
<description>Id of the internally generated div element</description>
</attribute>
- </tag>
- <tag>
- <name>checkboxdecorator</name>
+ </tag>
+ <tag>
+ <name>checkboxdecorator</name>
<tag-class>org.rhq.enterprise.gui.legacy.taglib.display.CheckBoxDecorator</tag-class>
- <body-content>JSP</body-content>
- <!-- the name="" attribute to associate with the checkbox -->
- <attribute>
- <name>name</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <!-- the value="" attribute to associate with the checkbox -->
- <attribute>
- <name>value</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <!-- the class="" attribute to associate with the checkbox -->
- <attribute>
- <name>styleClass</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>onclick</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>suppress</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
- <tag>
- <name>imagebuttondecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageButtonDecorator</tag-class>
- <body-content>JSP</body-content>
- <!-- the name of the form this element is embedded within -->
- <attribute>
- <name>form</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- <description>the name of the form this element is embedded within</description>
- </attribute>
- <!-- the name of the hidden input element that will be set when
- this button is clicked -->
- <attribute>
- <name>input</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>the name of the hidden input element that will be set when
- this button is clicked</description>
- </attribute>
- <!-- the context-relative url of the button image -->
- <attribute>
- <name>page</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>the context-relative url of the button image</description>
- </attribute>
- </tag>
-
- <tag>
- <name>imagelinkdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageLinkDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>href</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>src</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>border</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
-
- <tag>
- <name>imagedecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>src</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <description>Source path of the image</description>
- </attribute>
- <attribute>
- <name>border</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>onmouseover</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>onmouseout</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
-
- <tag>
- <name>availabilitydecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AvailabilityDecorator</tag-class>
- <body-content>none</body-content>
- </tag>
- <tag>
- <name>resourcedecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>baseKey</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>resourceId</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceTypeId</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceName</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resource</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>function</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>type</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
- <tag>
- <name>booleandecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.BooleanDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>flagKey</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>equalsdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.EqualsDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>value</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>flagKey</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>prioritydecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PriorityDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>flagKey</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>datedecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DateDecorator</tag-class>
- <body-content>JSP</body-content>
- <!-- the name="" to use as the date value's name -->
- <attribute>
- <name>name</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <!-- flag indicating whether or not to format this as an elapsed time -->
- <attribute>
- <name>isElapsedTime</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Boolean</type>
- </attribute>
- <attribute>
- <name>isGroup</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>Boolean</type>
- </attribute>
-
- <attribute>
- <name>active</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceKeyForNull</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>format</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>Format for date formating. See java.text.SimpleDateFormat</description>
- </attribute>
- </tag>
- <tag>
- <name>measurementDataTypeDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MeasurementDataTypeDecorator</tag-class>
- <body-content>none</body-content>
- <description>Depending on the passed MeasurementDefinition, display the DataType and/or further information</description>
- </tag>
- <!-- for ListHistory's description column for control history. will display
- errorStr if that has a value, else it will use the description field -->
- <tag>
- <name>alternateDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AlternateDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>secondChoice</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
-
- </tag>
-
- <tag>
- <name>selectDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SelectDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>onchange</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>selectId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>optionItems</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>metricdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MetricDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>unit</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>defaultKey</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>groupmetricdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupMetricsDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>active</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>total</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>resource-quicknav-decorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceQuicknavDecorator</tag-class>
- <body-content>none</body-content>
- </tag>
-
- <tag>
- <name>group-quicknav-decorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupQuicknavDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>group</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>pathdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PathDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>preChars</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>int</type>
- </attribute>
- <attribute>
- <name>postChars</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>int</type>
- </attribute>
- <attribute>
- <name>strict</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>styleClass</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>footer</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableFooterTag</tag-class>
- <body-content>JSP</body-content>
- <display-name>footer</display-name>
- <description>Tag which should be nested into a table tag to provide a custom table footer. The body of the tag is
- outputted as is in the generated table in the tfoot section.</description>
- <example> <![CDATA[
-<display:table name="someList">
- <display:column property="mail"/>
- <display:column property="total"/>
- <display:footer>
- <tr>
- <td>total:</td>
- <td><c:out value="${something}" /></td>
- <tr>
- </display:footer>
-</display:table>
-]]> </example>
- </tag>
-</taglib>
+ <body-content>JSP</body-content>
+ <!-- the name="" attribute to associate with the checkbox -->
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <!-- the value="" attribute to associate with the checkbox -->
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <!-- the class="" attribute to associate with the checkbox -->
+ <attribute>
+ <name>styleClass</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>suppress</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+ <tag>
+ <name>imagebuttondecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageButtonDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <!-- the name of the form this element is embedded within -->
+ <attribute>
+ <name>form</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ <description>the name of the form this element is embedded within</description>
+ </attribute>
+ <!-- the name of the hidden input element that will be set when
+ this button is clicked -->
+ <attribute>
+ <name>input</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>the name of the hidden input element that will be set when
+ this button is clicked</description>
+ </attribute>
+ <!-- the context-relative url of the button image -->
+ <attribute>
+ <name>page</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>the context-relative url of the button image</description>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>imagelinkdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageLinkDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>href</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>src</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>imagedecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>src</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Source path of the image</description>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>availabilitydecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AvailabilityDecorator</tag-class>
+ <body-content>none</body-content>
+ </tag>
+ <tag>
+ <name>resourcedecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>baseKey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>resourceId</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceTypeId</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceName</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resource</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>function</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+ <tag>
+ <name>booleandecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.BooleanDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>flagKey</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>equalsdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.EqualsDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>flagKey</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>prioritydecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PriorityDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>flagKey</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>datedecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DateDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <!-- the name="" to use as the date value's name -->
+ <attribute>
+ <name>name</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <!-- flag indicating whether or not to format this as an elapsed time -->
+ <attribute>
+ <name>isElapsedTime</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ <attribute>
+ <name>isGroup</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+
+ <attribute>
+ <name>active</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceKeyForNull</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>format</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>Format for date formating. See java.text.SimpleDateFormat</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>measurementDataTypeDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MeasurementDataTypeDecorator</tag-class>
+ <body-content>none</body-content>
+ <description>Depending on the passed MeasurementDefinition, display the DataType and/or further information</description>
+ </tag>
+ <!-- for ListHistory's description column for control history. will display
+ errorStr if that has a value, else it will use the description field -->
+ <tag>
+ <name>alternateDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AlternateDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>secondChoice</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+
+ </tag>
+
+ <tag>
+ <name>selectDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SelectDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>selectId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>optionItems</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>metricdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MetricDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>unit</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>defaultKey</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>groupmetricdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupMetricsDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>active</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>total</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>resource-quicknav-decorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceQuicknavDecorator</tag-class>
+ <body-content>none</body-content>
+ </tag>
+
+ <tag>
+ <name>group-quicknav-decorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupQuicknavDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>group</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>pathdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PathDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>preChars</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>int</type>
+ </attribute>
+ <attribute>
+ <name>postChars</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>int</type>
+ </attribute>
+ <attribute>
+ <name>strict</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>footer</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableFooterTag</tag-class>
+ <body-content>JSP</body-content>
+ <display-name>footer</display-name>
+ <description>Tag which should be nested into a table tag to provide a custom table footer. The body of the tag is
+ outputted as is in the generated table in the tfoot section.</description>
+ <example> <![CDATA[
+<display:table name="someList">
+ <display:column property="mail"/>
+ <display:column property="total"/>
+ <display:footer>
+ <tr>
+ <td>total:</td>
+ <td><c:out value="${something}" /></td>
+ <tr>
+ </display:footer>
+</display:table>
+]]> </example>
+ </tag>
+</taglib>
commit 72dc53d10e03fbe0e205170db6fda536f03305cb
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 3 14:50:33 2010 -0400
LT commit
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
index 2d7fe8e..4ba152d 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
@@ -1,465 +1,465 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<!DOCTYPE taglib
- PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
- "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-
-<taglib>
- <tlib-version>1.0</tlib-version>
- <jsp-version>1.2</jsp-version>
- <short-name>display</short-name>
- <uri>http://jakarta.apache.org/taglibs/display</uri>
- <description>
- tag to display a table, inspired by the Jakarta taglibs table
- tag but heavily torqued to suit CAM's needs and make the
- ColumnDecorator handling more robust
- </description>
- <tag>
- <name>table</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableTag</tag-class>
- <body-content>JSP</body-content>
-
- <attribute>
- <name>var</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Object</type>
- </attribute>
- <attribute>
- <name>items</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>org.rhq.core.domain.util.PageList</type>
- </attribute>
- <attribute>
- <name>property</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>onlyForProperty</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>If set only include rows that have this property set to true</description>
- </attribute>
-
- <attribute>
- <name>postfix</name>
- <required>false</required>
- <type>java.lang.String</type>
- </attribute>
-
-
- <attribute>
- <name>scope</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>length</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>offset</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>action</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>width</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>border</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>styleClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>styleId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>cellspacing</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>cellpadding</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>align</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nowrapHeader</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>background</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>bgcolor</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>frame</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>height</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>hspace</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>rules</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>summary</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>vspace</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>display</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>padRows</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <!-- this message is used if there are no rows and padRows isn't defined
- - for example, to generate a "No foo found" message.
- -->
- <attribute>
- <name>emptyMsg</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>rightSidebar</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>leftSidebar</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>paramId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramName</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramProperty</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramScope</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>column</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.LocalizedColumnTag</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>property</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>showHideProperty</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>isShowHideColumn</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>isLocalizedTitle</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>sort</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>defaultSort</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
-
- <attribute>
- <name>sortAttr</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>value</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>Object</type>
- </attribute>
- <attribute>
- <name>title</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nulls</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
-
- <attribute>
- <name>autolink</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>href</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramName</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramProperty</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>paramScope</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>maxLength</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>maxWords</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>width</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>styleClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>headerStyleClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>align</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>background</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>bgcolor</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>height</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nowrap</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>valign</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>group</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>doubleQuote</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>decorator</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>org.rhq.enterprise.gui.legacy.taglib.display.ColumnDecorator</type>
- </attribute>
- <attribute>
- <name>decoratorClass</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- <description>The class name of a class to instantiate and act as the decorator.</description>
- </attribute>
- <attribute>
- <name>headerColspan</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>onClick</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- <description>Add a onclick handler for the column</description>
- </attribute>
- </tag>
- <tag>
- <name>setProperty</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SetPropertyTag</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>name</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>value</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE taglib
+ PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
+ "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+
+<taglib>
+ <tlib-version>1.0</tlib-version>
+ <jsp-version>1.2</jsp-version>
+ <short-name>display</short-name>
+ <uri>http://jakarta.apache.org/taglibs/display</uri>
+ <description>
+ tag to display a table, inspired by the Jakarta taglibs table
+ tag but heavily torqued to suit CAM's needs and make the
+ ColumnDecorator handling more robust
+ </description>
+ <tag>
+ <name>table</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <name>var</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Object</type>
+ </attribute>
+ <attribute>
+ <name>items</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.core.domain.util.PageList</type>
+ </attribute>
+ <attribute>
+ <name>property</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>onlyForProperty</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>If set only include rows that have this property set to true</description>
+ </attribute>
+
+ <attribute>
+ <name>postfix</name>
+ <required>false</required>
+ <type>java.lang.String</type>
+ </attribute>
+
+
+ <attribute>
+ <name>scope</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>length</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>offset</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>action</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>width</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>styleId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>cellspacing</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>cellpadding</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nowrapHeader</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>background</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>bgcolor</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>frame</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>height</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>hspace</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>rules</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>summary</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>vspace</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>export</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>display</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>padRows</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <!-- this message is used if there are no rows and padRows isn't defined
+ - for example, to generate a "No foo found" message.
+ -->
+ <attribute>
+ <name>emptyMsg</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>rightSidebar</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>leftSidebar</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>paramId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramName</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramProperty</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramScope</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>column</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.LocalizedColumnTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>property</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>showHideProperty</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>isShowHideColumn</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>isLocalizedTitle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>sort</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>defaultSort</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute>
+ <name>sortAttr</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Object</type>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nulls</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+
+ <attribute>
+ <name>autolink</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>href</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramName</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramProperty</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>paramScope</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>maxLength</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>maxWords</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>width</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>headerStyleClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>background</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>bgcolor</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>height</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nowrap</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>valign</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>group</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>doubleQuote</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>decorator</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.enterprise.gui.legacy.taglib.display.ColumnDecorator</type>
+ </attribute>
+ <attribute>
+ <name>decoratorClass</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ <description>The class name of a class to instantiate and act as the decorator.</description>
+ </attribute>
+ <attribute>
+ <name>headerColspan</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>onClick</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ <description>Add a onclick handler for the column</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>setProperty</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SetPropertyTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
</tag>
<tag>
<name>userackdecorator</name>
@@ -485,516 +485,516 @@
<type>String</type>
<description>Id of the internally generated div element</description>
</attribute>
- </tag>
- <tag>
- <name>checkboxdecorator</name>
+ </tag>
+ <tag>
+ <name>checkboxdecorator</name>
<tag-class>org.rhq.enterprise.gui.legacy.taglib.display.CheckBoxDecorator</tag-class>
- <body-content>JSP</body-content>
- <!-- the name="" attribute to associate with the checkbox -->
- <attribute>
- <name>name</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <!-- the value="" attribute to associate with the checkbox -->
- <attribute>
- <name>value</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <!-- the class="" attribute to associate with the checkbox -->
- <attribute>
- <name>styleClass</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>onclick</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>suppress</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
- <tag>
- <name>imagebuttondecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageButtonDecorator</tag-class>
- <body-content>JSP</body-content>
- <!-- the name of the form this element is embedded within -->
- <attribute>
- <name>form</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- <description>the name of the form this element is embedded within</description>
- </attribute>
- <!-- the name of the hidden input element that will be set when
- this button is clicked -->
- <attribute>
- <name>input</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>the name of the hidden input element that will be set when
- this button is clicked</description>
- </attribute>
- <!-- the context-relative url of the button image -->
- <attribute>
- <name>page</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>the context-relative url of the button image</description>
- </attribute>
- </tag>
-
- <tag>
- <name>imagelinkdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageLinkDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>href</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>src</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>border</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
-
- <tag>
- <name>imagedecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>src</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <description>Source path of the image</description>
- </attribute>
- <attribute>
- <name>border</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>onmouseover</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>onmouseout</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
-
- <tag>
- <name>availabilitydecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AvailabilityDecorator</tag-class>
- <body-content>none</body-content>
- </tag>
- <tag>
- <name>resourcedecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>baseKey</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>resourceId</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceTypeId</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceName</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resource</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>function</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>type</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
- <tag>
- <name>booleandecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.BooleanDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>flagKey</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>equalsdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.EqualsDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>value</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>flagKey</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>prioritydecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PriorityDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>flagKey</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>datedecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DateDecorator</tag-class>
- <body-content>JSP</body-content>
- <!-- the name="" to use as the date value's name -->
- <attribute>
- <name>name</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <!-- flag indicating whether or not to format this as an elapsed time -->
- <attribute>
- <name>isElapsedTime</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Boolean</type>
- </attribute>
- <attribute>
- <name>isGroup</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>Boolean</type>
- </attribute>
-
- <attribute>
- <name>active</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceKeyForNull</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>format</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- <description>Format for date formating. See java.text.SimpleDateFormat</description>
- </attribute>
- </tag>
- <tag>
- <name>measurementDataTypeDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MeasurementDataTypeDecorator</tag-class>
- <body-content>none</body-content>
- <description>Depending on the passed MeasurementDefinition, display the DataType and/or further information</description>
- </tag>
- <!-- for ListHistory's description column for control history. will display
- errorStr if that has a value, else it will use the description field -->
- <tag>
- <name>alternateDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AlternateDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>secondChoice</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
-
- </tag>
-
- <tag>
- <name>selectDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SelectDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>onchange</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>selectId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>optionItems</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>metricdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MetricDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>unit</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>defaultKey</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>groupmetricdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupMetricsDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>active</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>total</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>resource-quicknav-decorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceQuicknavDecorator</tag-class>
- <body-content>none</body-content>
- </tag>
-
- <tag>
- <name>group-quicknav-decorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupQuicknavDecorator</tag-class>
- <body-content>none</body-content>
- <attribute>
- <name>group</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>pathdecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PathDecorator</tag-class>
- <body-content>JSP</body-content>
- <attribute>
- <name>preChars</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>int</type>
- </attribute>
- <attribute>
- <name>postChars</name>
- <required>true</required>
- <rtexprvalue>false</rtexprvalue>
- <type>int</type>
- </attribute>
- <attribute>
- <name>strict</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>boolean</type>
- </attribute>
- <attribute>
- <name>styleClass</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>String</type>
- </attribute>
- </tag>
-
- <tag>
- <name>footer</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableFooterTag</tag-class>
- <body-content>JSP</body-content>
- <display-name>footer</display-name>
- <description>Tag which should be nested into a table tag to provide a custom table footer. The body of the tag is
- outputted as is in the generated table in the tfoot section.</description>
- <example> <![CDATA[
-<display:table name="someList">
- <display:column property="mail"/>
- <display:column property="total"/>
- <display:footer>
- <tr>
- <td>total:</td>
- <td><c:out value="${something}" /></td>
- <tr>
- </display:footer>
-</display:table>
-]]> </example>
- </tag>
-
- <tag>
- <name>disambiguatedResourceName</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceNameTag</tag-class>
- <body-content>empty</body-content>
- <attribute>
- <name>disambiguationReport</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>org.rhq.core.domain.resource.composite.DisambiguationReport</type>
- </attribute>
- <attribute>
- <name>resourceName</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>Integer</type>
- </attribute>
- <attribute>
- <name>url</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nameAsLink</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Boolean</type>
- </attribute>
- </tag>
-
- <tag>
- <name>disambiguatedResourceLineage</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageTag</tag-class>
- <body-content>empty</body-content>
- <attribute>
- <name>parents</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>java.util.List</type>
- </attribute>
- <attribute>
- <name>renderLinks</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Boolean</type>
- </attribute>
- </tag>
-
- <tag>
- <name>disambiguatedResourceNameDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceNameDecorator</tag-class>
- <body-content>empty</body-content>
- <attribute>
- <name>disambiguationReport</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>org.rhq.core.domain.resource.composite.DisambiguationReport</type>
- </attribute>
- <attribute>
- <name>resourceName</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>resourceId</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>Integer</type>
- </attribute>
- <attribute>
- <name>url</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- <type>String</type>
- </attribute>
- <attribute>
- <name>nameAsLink</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Boolean</type>
- </attribute>
- </tag>
-
- <tag>
- <name>disambiguatedResourceLineageDecorator</name>
- <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageDecorator</tag-class>
- <body-content>empty</body-content>
- <attribute>
- <name>parents</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>java.util.List</type>
- </attribute>
- <attribute>
- <name>renderLinks</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- <type>Boolean</type>
- </attribute>
- </tag>
-</taglib>
+ <body-content>JSP</body-content>
+ <!-- the name="" attribute to associate with the checkbox -->
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <!-- the value="" attribute to associate with the checkbox -->
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <!-- the class="" attribute to associate with the checkbox -->
+ <attribute>
+ <name>styleClass</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>suppress</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+ <tag>
+ <name>imagebuttondecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageButtonDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <!-- the name of the form this element is embedded within -->
+ <attribute>
+ <name>form</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ <description>the name of the form this element is embedded within</description>
+ </attribute>
+ <!-- the name of the hidden input element that will be set when
+ this button is clicked -->
+ <attribute>
+ <name>input</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>the name of the hidden input element that will be set when
+ this button is clicked</description>
+ </attribute>
+ <!-- the context-relative url of the button image -->
+ <attribute>
+ <name>page</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>the context-relative url of the button image</description>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>imagelinkdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageLinkDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>href</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>src</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>imagedecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ImageDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>src</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Source path of the image</description>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>availabilitydecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AvailabilityDecorator</tag-class>
+ <body-content>none</body-content>
+ </tag>
+ <tag>
+ <name>resourcedecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>baseKey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>resourceId</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceTypeId</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceName</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resource</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>function</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+ <tag>
+ <name>booleandecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.BooleanDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>flagKey</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>equalsdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.EqualsDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>flagKey</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>prioritydecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PriorityDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>flagKey</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>datedecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DateDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <!-- the name="" to use as the date value's name -->
+ <attribute>
+ <name>name</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <!-- flag indicating whether or not to format this as an elapsed time -->
+ <attribute>
+ <name>isElapsedTime</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ <attribute>
+ <name>isGroup</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+
+ <attribute>
+ <name>active</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceKeyForNull</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>format</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ <description>Format for date formating. See java.text.SimpleDateFormat</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>measurementDataTypeDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MeasurementDataTypeDecorator</tag-class>
+ <body-content>none</body-content>
+ <description>Depending on the passed MeasurementDefinition, display the DataType and/or further information</description>
+ </tag>
+ <!-- for ListHistory's description column for control history. will display
+ errorStr if that has a value, else it will use the description field -->
+ <tag>
+ <name>alternateDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.AlternateDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>secondChoice</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+
+ </tag>
+
+ <tag>
+ <name>selectDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.SelectDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>selectId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>optionItems</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>metricdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.MetricDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>unit</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>defaultKey</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>groupmetricdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupMetricsDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>active</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>total</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>resource-quicknav-decorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.ResourceQuicknavDecorator</tag-class>
+ <body-content>none</body-content>
+ </tag>
+
+ <tag>
+ <name>group-quicknav-decorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.GroupQuicknavDecorator</tag-class>
+ <body-content>none</body-content>
+ <attribute>
+ <name>group</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>pathdecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.PathDecorator</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>preChars</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>int</type>
+ </attribute>
+ <attribute>
+ <name>postChars</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>int</type>
+ </attribute>
+ <attribute>
+ <name>strict</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>boolean</type>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>footer</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.TableFooterTag</tag-class>
+ <body-content>JSP</body-content>
+ <display-name>footer</display-name>
+ <description>Tag which should be nested into a table tag to provide a custom table footer. The body of the tag is
+ outputted as is in the generated table in the tfoot section.</description>
+ <example> <![CDATA[
+<display:table name="someList">
+ <display:column property="mail"/>
+ <display:column property="total"/>
+ <display:footer>
+ <tr>
+ <td>total:</td>
+ <td><c:out value="${something}" /></td>
+ <tr>
+ </display:footer>
+</display:table>
+]]> </example>
+ </tag>
+
+ <tag>
+ <name>disambiguatedResourceName</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceNameTag</tag-class>
+ <body-content>empty</body-content>
+ <attribute>
+ <name>disambiguationReport</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.core.domain.resource.composite.DisambiguationReport</type>
+ </attribute>
+ <attribute>
+ <name>resourceName</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Integer</type>
+ </attribute>
+ <attribute>
+ <name>url</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nameAsLink</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>disambiguatedResourceLineage</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageTag</tag-class>
+ <body-content>empty</body-content>
+ <attribute>
+ <name>parents</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.util.List</type>
+ </attribute>
+ <attribute>
+ <name>renderLinks</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>disambiguatedResourceNameDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceNameDecorator</tag-class>
+ <body-content>empty</body-content>
+ <attribute>
+ <name>disambiguationReport</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.core.domain.resource.composite.DisambiguationReport</type>
+ </attribute>
+ <attribute>
+ <name>resourceName</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Integer</type>
+ </attribute>
+ <attribute>
+ <name>url</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nameAsLink</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>disambiguatedResourceLineageDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageDecorator</tag-class>
+ <body-content>empty</body-content>
+ <attribute>
+ <name>parents</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.util.List</type>
+ </attribute>
+ <attribute>
+ <name>renderLinks</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
+</taglib>
commit ea38307cc914df400665f0af13a1fa3a1b200096
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 3 14:42:26 2010 -0400
BZ-599652 / BZ-599687 - more robust support for keyboard/mouse events as applied to search suggestions
BZ-599652 - prevent IndexOutOfBoundsException when mouse-clicking to select a search suggestion
* a mouse-click will move the focus off of the textbox
* an unfocused textbox has a cursor position of -1
* suggestion selection algorithm requires a valid cursor position
* fix is to manually manage the last known position of the cursor
BZ-599687 - support refreshing suggestions in more circumstances
* left-arrow/right-arrow in the textbox will show correct suggestions based on cursor position
* mouse-click events in the textbox will show correct suggestions based on cursor position
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
index 4376473..994773f 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/SearchBar.java
@@ -22,6 +22,8 @@ import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.FocusEvent;
+import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;
@@ -39,6 +41,7 @@ import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.TextBox;
import org.rhq.core.domain.search.SearchSubsystem;
@@ -50,7 +53,7 @@ import org.rhq.enterprise.gui.coregui.client.search.suggest.SuggestTextBox_v3;
/**
* @author Joseph Marques
*/
-public class SearchBar {
+public class SearchBar extends SimplePanel {
public String welcomeMessage;
@@ -178,16 +181,16 @@ public class SearchBar {
private void setupAutoCompletingPatternField() {
autoCompletePatternField.getElement().setId("patternField");
- autoCompletePatternField.addStyleName("patternField");
+ autoCompletePatternField.setStyleName("patternField");
AutoCompletePatternFieldEventHandler handler = new AutoCompletePatternFieldEventHandler();
- autoCompletePatternField.getTextBox().addClickHandler(handler);
+ autoCompletePatternField.getTextBox().addFocusHandler(handler);
autoCompletePatternField.getTextBox().addBlurHandler(handler);
autoCompletePatternField.addKeyPressHandler(handler);
}
private void setupPatternNameField() {
- patternNameField.addStyleName("patternNameField");
+ patternNameField.setStyleName("patternNameField");
patternNameField.setVisible(false);
PatternNameFieldEventHandler handler = new PatternNameFieldEventHandler();
@@ -197,7 +200,7 @@ public class SearchBar {
}
private void setupPatternNameLabel() {
- patternNameLabel.addStyleName("patternNameLabel");
+ patternNameLabel.setStyleName("patternNameLabel");
patternNameLabel.setVisible(false);
PatternNameLabelEventHandler handler = new PatternNameLabelEventHandler();
@@ -218,8 +221,7 @@ public class SearchBar {
private void setupSavedSearches() {
savedSearchesPanel.add(savedSearches);
- savedSearchesPanel.removeStyleName("gwt-PopupPanel");
- savedSearchesPanel.addStyleName("savedSearchesPanel");
+ savedSearchesPanel.setStyleName("savedSearchesPanel");
savedSearches.addStyleName("savedSearchesPanel");
// panel position will be re-calculated on down-arrow click
@@ -277,7 +279,7 @@ public class SearchBar {
/*
* Event Handlers
*/
- class AutoCompletePatternFieldEventHandler implements KeyPressHandler, ClickHandler, BlurHandler {
+ class AutoCompletePatternFieldEventHandler implements KeyPressHandler, FocusHandler, BlurHandler {
@Override
public void onKeyPress(KeyPressEvent event) {
// hide pattern field/label, turn off star
@@ -300,7 +302,7 @@ public class SearchBar {
}
@Override
- public void onClick(ClickEvent event) {
+ public void onFocus(FocusEvent event) {
// clear default search text if necessary
if (autoCompletePatternField.getText().equals(welcomeMessage)) {
autoCompletePatternField.setValue("", true);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
index 373bf88..b64d88d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/search/suggest/SuggestTextBox_v3.java
@@ -23,6 +23,8 @@ import java.util.Collection;
import java.util.List;
import com.google.gwt.event.dom.client.BlurHandler;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.event.dom.client.HandlesAllKeyEvents;
import com.google.gwt.event.dom.client.HasAllFocusHandlers;
@@ -69,7 +71,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
private final SearchSuggestOracle oracle;
private int limit = 20;
- private String currentText;
+ private int currentCursorPosition = 0;
private final SuggestionMenu suggestionMenu;
private final PopupPanel suggestionPopup;
private final TextBoxBase box;
@@ -124,7 +126,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
@Override
public void execute() {
- complete(suggestion, box.getCursorPos());
+ complete(suggestion, currentCursorPosition);
}
}
@@ -188,7 +190,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
}
private void addEventsToTextBox() {
- class TextBoxEvents extends HandlesAllKeyEvents implements ValueChangeHandler<String> {
+ class TextBoxEvents extends HandlesAllKeyEvents implements ValueChangeHandler<String>, ClickHandler {
private boolean isInstructionalCommentSelected() {
SearchSuggestion searchSuggestion = suggestionMenu.getSearchSuggestion();
@@ -196,9 +198,15 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
return kind == Kind.InstructionalTextComment;
}
+ public void onClick(ClickEvent event) {
+ handleSuggestions();
+ }
+
public void onKeyDown(KeyDownEvent event) {
- // Make sure that the menu is actually showing. These keystrokes
- // are only relevant when choosing a suggestion.
+ /*
+ * Make sure that the menu is actually showing. These
+ * keystrokes are only relevant when choosing a suggestion.
+ */
if (suggestionPopup.isAttached()) {
switch (event.getNativeKeyCode()) {
case KeyCodes.KEY_DOWN:
@@ -240,32 +248,33 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
}
public void onKeyUp(KeyUpEvent event) {
- // After every user key input, refresh the popup's suggestions.
- refreshSuggestions();
+ handleSuggestions();
+
delegateEvent(SuggestTextBox_v3.this, event);
}
public void onValueChange(ValueChangeEvent<String> event) {
delegateEvent(SuggestTextBox_v3.this, event);
}
+
+ private void handleSuggestions() {
+ int nextCursorPosition = getTextBox().getCursorPos();
+ if (nextCursorPosition != -1) {
+ // refresh suggestions if cursor moved, meaning users want suggestions from a different context
+ if (currentCursorPosition != nextCursorPosition) {
+ currentCursorPosition = nextCursorPosition;
+ showSuggestions();
+ }
+ }
+ }
}
TextBoxEvents events = new TextBoxEvents();
events.addKeyHandlersTo(box);
+ box.addClickHandler(events);
box.addValueChangeHandler(events);
}
- private void refreshSuggestions() {
- // Get the raw text.
- String text = box.getText();
- if (text.equals(currentText)) {
- return;
- } else {
- currentText = text;
- }
- showSuggestions(text);
- }
-
/*
* Composite methods
*/
@@ -336,8 +345,7 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
*/
public void showSuggestionList() {
if (isAttached()) {
- currentText = null;
- refreshSuggestions();
+ showSuggestions();
}
}
@@ -358,11 +366,13 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
return isSuggestionListShowing() ? suggestionMenu.getNumItems() : 0;
}
- void showSuggestions(String query) {
+ void showSuggestions() {
+ String query = box.getText();
+ int cursorPos = currentCursorPosition;
if (query.length() == 0) {
- oracle.requestDefaultSuggestions(new Request(null, limit), callback);
+ oracle.requestDefaultSuggestions(new SearchSuggestionRequest(null, cursorPos, limit), callback);
} else {
- oracle.requestSuggestions(new Request(query, limit), callback);
+ oracle.requestSuggestions(new SearchSuggestionRequest(query, cursorPos, limit), callback);
}
}
@@ -568,8 +578,9 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
@Override
public void requestSuggestions(final Request request, final Callback callback) {
- String expression = getText();
- int caretPosition = box.getCursorPos(); // hack, but it wasn't passed in the request
+ SearchSuggestionRequest suggestionRequest = (SearchSuggestionRequest) request;
+ String expression = suggestionRequest.getQuery();
+ int caretPosition = suggestionRequest.getCursorPosition();
searchService.getSuggestions(searchBar.getSearchSubsystem(), expression, caretPosition,
new AsyncCallback<List<SearchSuggestion>>() {
@@ -628,16 +639,29 @@ public class SuggestTextBox_v3 extends Composite implements HasText, HasAllFocus
String before = getText().substring(0, previousWhitespaceIndex);
String after = getText().substring(futureWhitespaceIndex);
- setValue(before + completion + after);
-
- if (currentText.equals(getText().toLowerCase())) {
- setValue(currentText + completion, true);
- }
+ setValue(before + completion + after, true);
+ currentCursorPosition = before.length() + completion.length();
+ getTextBox().setCursorPos(currentCursorPosition);
if (searchSuggestion.getKind() == SearchSuggestion.Kind.GlobalSavedSearch
|| searchSuggestion.getKind() == SearchSuggestion.Kind.UserSavedSearch) {
// execute saved searches immediately, since they presumably constitute complete expressions
searchBar.activateSavedSearch(searchSuggestion.getLabel());
+ } else {
+ showSuggestions();
+ }
+ }
+
+ class SearchSuggestionRequest extends SuggestOracle.Request {
+ private int cursorPosition;
+
+ public SearchSuggestionRequest(String query, int cursorPosition, int limit) {
+ super(query, limit);
+ this.cursorPosition = cursorPosition;
+ }
+
+ public int getCursorPosition() {
+ return cursorPosition;
}
}
commit d4c70fd9125222b362e27e79c9cc2c1d3b8faa2a
Author: Joseph Marques <joseph(a)redhat.com>
Date: Thu Jun 3 13:08:51 2010 -0400
BZ-599649: fix for IE so that all corners are rounded when some saved search is activated
diff --git a/modules/enterprise/gui/coregui/src/main/webapp/css/search.css b/modules/enterprise/gui/coregui/src/main/webapp/css/search.css
index 4d572cf..994d28a 100644
--- a/modules/enterprise/gui/coregui/src/main/webapp/css/search.css
+++ b/modules/enterprise/gui/coregui/src/main/webapp/css/search.css
@@ -39,7 +39,8 @@ div {
white-space: nowrap;
text-align: center;
border-style: none;
- font-size:
+ font-size: 11px;
+ width: 125px;
}
.patternNameField {
@@ -167,11 +168,6 @@ div {
bottom: 1px;
}
-.x-grid3-row-over {
- background-color: rgb(245, 245, 245);
- color: white;
-}
-
/*
*
@@ -216,9 +212,8 @@ div {
/*
- *
* Rounded Corners
- *
+ * http://articles.sitepoint.com/article/rounded-corners-css-javascript
*/
div.rounded {
@@ -229,15 +224,15 @@ div.rounded2 {
background: rgb(192, 236, 207) url(/coregui/images/search/corner-upper-right-8.png) no-repeat top right;
}
div.rounded2 div {
- background: url(/coregui/images/search/corner-upper-left-8.png) no-repeat top left;
+ background: transparent url(/coregui/images/search/corner-upper-left-8.png) no-repeat top left;
}
div.rounded2 div div {
- background: url(/coregui/images/search/corner-lower-right-8.png) no-repeat bottom right;
+ background: transparent url(/coregui/images/search/corner-lower-right-8.png) no-repeat bottom right;
}
div.rounded2 div div div {
- background: url(/coregui/images/search/corner-lower-left-8.png) no-repeat bottom left;
+ background: transparent url(/coregui/images/search/corner-lower-left-8.png) no-repeat bottom left;
}
div.rounded2 div div div div {
background-image: none;
-}
+}
\ No newline at end of file
commit 6f294aa470ee340309033f41ff8010d6b466d0ff
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Jun 3 14:41:56 2010 -0400
[BZ 589173] For package discovery set version to, in this order of pref:
1) The version found in the archive's manifest
2) The sha256
3) "0"
Also, set the sha256 field on the discovered package whenever possible
diff --git a/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java b/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java
index c7212cd..c24fb54 100644
--- a/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java
+++ b/modules/core/util/src/main/java/org/rhq/core/util/file/JarContentFileInfo.java
@@ -131,6 +131,18 @@ public class JarContentFileInfo extends ContentFileInfo {
* @return the attribute value or the default if it doesn't exist or cannot be retrieved
*/
public String getAttributeValue(Name attributeName, String defaultValue) {
+ return getAttributeValue(attributeName.toString(), defaultValue);
+ }
+
+ /**
+ * Returns an attribute value as found in the manifest.
+ *
+ * @param attributeName the attribute name
+ * @param defaultValue the default if the attribute does not exist in the manifest
+ *
+ * @return the attribute value or the default if it doesn't exist or cannot be retrieved
+ */
+ public String getAttributeValue(String attributeName, String defaultValue) {
String result = defaultValue;
if (null != this.mainAttributes) {
diff --git a/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java b/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
index 8702694..c4b5a3b 100644
--- a/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
+++ b/modules/core/util/src/test/java/org/rhq/core/util/MD5GeneratorTest.java
@@ -1,31 +1,29 @@
- /*
- * RHQ Management Platform
- * Copyright (C) 2005-2008 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.
- */
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.core.util;
import org.testng.annotations.Test;
-import org.rhq.core.util.MessageDigestGenerator;
-
/**
* Tests MD5 generation.
*
@@ -39,6 +37,12 @@ public class MD5GeneratorTest {
public void testString() {
String md5 = MessageDigestGenerator.getDigestString("calculate MD5 of this String!\n");
assert md5.equals("ac98d9c00ea0d821cd757b0f3c628c99") : "Invalid MD5 was " + md5;
+
+ String sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256)
+ .calcDigestString("calculate SHA256 of this String!");
+ assert sha256.equals("10ee77d3c1ccf45c15c360ecc4f8847136d64b594b0eedc4dd2e67bde4ec8100") : "Invalid SHA256 was "
+ + sha256;
+
}
public void testEmpty() {
diff --git a/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java b/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java
index 61dcad4..d835467 100644
--- a/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java
+++ b/modules/plugins/byteman/src/main/java/org/rhq/plugins/byteman/BytemanAgentComponent.java
@@ -390,8 +390,18 @@ public class BytemanAgentComponent implements ResourceComponent<BytemanAgentComp
for (File file : discoveredFiles) {
String fullPath = file.getAbsolutePath();
String shortName = file.getName();
- String version = BytemanAgentDiscoveryComponent.getJarAttribute(fullPath,
- java.util.jar.Attributes.Name.IMPLEMENTATION_VERSION.toString(), "0");
+ // try to get version from manifest. if not there calculate sha256 and use that
+ // as the version. if that fails default to "0".
+ String version = "0";
+ String sha256 = null;
+ try {
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
+ version = sha256;
+ } catch (Exception e) {
+ log.debug("Failed to generate sha256 for [" + file + "]. Setting version to 0");
+ }
+ version = BytemanAgentDiscoveryComponent.getJarAttribute(fullPath,
+ java.util.jar.Attributes.Name.IMPLEMENTATION_VERSION.toString(), version);
PackageDetailsKey detailsKey = new PackageDetailsKey(shortName, version, typeName, "noarch");
ResourcePackageDetails detail = new ResourcePackageDetails(detailsKey);
detail.setDisplayName(shortName);
@@ -399,8 +409,7 @@ public class BytemanAgentComponent implements ResourceComponent<BytemanAgentComp
detail.setFileName(shortName);
detail.setFileSize(file.length());
detail.setMD5(MessageDigestGenerator.getDigestString(file));
- detail.setSHA256(MessageDigestGenerator.getDigestString(file));
-
+ detail.setSHA256(sha256);
details.add(detail);
}
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
index 0444ccf..479c780 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JarContentDelegate.java
@@ -84,13 +84,13 @@ public class JarContentDelegate extends FileContentDelegate {
});
for (File file : files) {
+ String version = null;
JarFile jf = null;
try {
Configuration config = new Configuration();
jf = new JarFile(file);
Manifest manifest = jf.getManifest();
- String version = null;
if (manifest != null) {
Attributes attributes = manifest.getMainAttributes();
@@ -107,8 +107,16 @@ public class JarContentDelegate extends FileContentDelegate {
config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
}
- if (version == null) {
- version = "1.0";
+ String sha256 = null;
+ try {
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
+ } catch (Exception e) {
+ // leave as null
+ }
+
+ // try to use version from manifest. if not there use the sha256. if that fails default to "0".
+ if (null == version) {
+ version = (null == sha256) ? "0" : sha256;
}
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
@@ -119,7 +127,7 @@ public class JarContentDelegate extends FileContentDelegate {
details.setFileName(file.getName());
details.setFileSize(file.length());
details.setClassification(MIME_TYPE_JAR);
- details.setSHA256(MessageDigestGenerator.getDigestString(file));
+ details.setSHA256(sha256);
details.setExtraProperties(config);
} catch (IOException e) {
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
index a1bfd51..51f6ed6 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/StandaloneManagedDeploymentComponent.java
@@ -33,8 +33,6 @@ import java.io.OutputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
@@ -65,6 +63,7 @@ import org.rhq.core.pluginapi.measurement.MeasurementFacet;
import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jbossas5.util.DeploymentUtils;
/**
@@ -141,11 +140,16 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
String fileName = this.deploymentFile.getName();
PackageVersions packageVersions = loadPackageVersions();
String version = packageVersions.getVersion(fileName);
+
+ JarContentFileInfo fileInfo = new JarContentFileInfo(this.deploymentFile);
+ String sha256 = getSHA256(fileInfo);
+
+ // First discovery of this EAR/WAR
if (version == null) {
- // This is either the first time we've discovered this EAR/WAR, or someone purged the PC's data dir.
- version = "1.0";
- packageVersions.putVersion(fileName, version);
- packageVersions.saveToDisk();
+ // try to use version from manifest. if not there use the sha256. if that fails default to "0".
+ version = fileInfo.getVersion((null == sha256) ? "0" : sha256);
+ versions.putVersion(fileName, version);
+ versions.saveToDisk();
}
// Package name is the deployment's file name (e.g. foo.ear).
@@ -156,7 +160,7 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
if (!this.deploymentFile.isDirectory())
packageDetails.setFileSize(this.deploymentFile.length());
packageDetails.setFileCreatedDate(null); // TODO: get created date via SIGAR
- packageDetails.setSHA256(getSHA256(packageDetails));
+ packageDetails.setSHA256(sha256);
packageDetails.setInstallationTimestamp(Long.valueOf(System.currentTimeMillis()));
Set<ResourcePackageDetails> packages = new HashSet<ResourcePackageDetails>();
@@ -168,35 +172,21 @@ public class StandaloneManagedDeploymentComponent extends AbstractManagedDeploym
// TODO: if needed we can speed this up by looking in the ResourceContainer's installedPackage
// list for previously discovered packages. If there use the sha256 from that record. We'd have to
// get access to that info by adding access in org.rhq.core.pluginapi.content.ContentServices
- private String getSHA256(ResourcePackageDetails detail) {
+ private String getSHA256(JarContentFileInfo fileInfo) {
String sha256 = null;
try {
- //if the filesize of discovered package is null then it's an exploded and deployed war/ear.
- File app = new File(detail.getLocation());
- if (app.isDirectory()) {
- // when deployed exploded then don't calculate digest but check for META-INF entry
- // this will be populated for uploaded files
- File manifestFile = new File(app, "META-INF/MANIFEST.MF");
- Manifest manifest;
- if (manifestFile.exists()) {
- FileInputStream inputStream = new FileInputStream(manifestFile);
- manifest = new Manifest(inputStream);
- inputStream.close();
- Attributes attribs = manifest.getMainAttributes();
- String retrievedShaValue = attribs.getValue(RHQ_SHA256);
- if ((retrievedShaValue != null) && (!retrievedShaValue.trim().isEmpty())) {
- sha256 = retrievedShaValue;
- }
- }
- } else {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(app);
+ sha256 = fileInfo.getAttributeValue(RHQ_SHA256, null);
+ if (null == sha256) {
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(fileInfo
+ .getContentFile());
}
} catch (IOException iex) {
//log exception but move on, discovery happens often. No reason to hold up anything.
if (log.isDebugEnabled()) {
- log.debug("Problem calculating digest of package [" + detail.getName() + "]." + iex.getMessage());
+ log.debug("Problem calculating digest of package [" + fileInfo.getContentFile().getPath() + "]."
+ + iex.getMessage());
}
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
index 259a98c..39583ea 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/JarContentDelegate.java
@@ -84,13 +84,13 @@ public class JarContentDelegate extends FileContentDelegate {
});
for (File file : files) {
+ String version = null;
JarFile jf = null;
try {
Configuration config = new Configuration();
jf = new JarFile(file);
Manifest manifest = jf.getManifest();
- String version = null;
if (manifest != null) {
Attributes attributes = manifest.getMainAttributes();
@@ -107,8 +107,16 @@ public class JarContentDelegate extends FileContentDelegate {
config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
}
- if (version == null) {
- version = "1.0";
+ String sha256 = null;
+ try {
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
+ } catch (Exception e) {
+ // leave as null
+ }
+
+ // try to use version from manifest. if not there use the sha256. if that fails default to "0".
+ if (null == version) {
+ version = (null == sha256) ? "0" : sha256;
}
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
@@ -119,7 +127,7 @@ public class JarContentDelegate extends FileContentDelegate {
details.setFileName(file.getName());
details.setFileSize(file.length());
details.setClassification(MIME_TYPE_JAR);
- details.setSHA256(MessageDigestGenerator.getDigestString(file));
+ details.setSHA256(sha256);
details.setExtraProperties(config);
} catch (IOException e) {
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
index 3652b0d..138232d 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/ApplicationComponent.java
@@ -30,8 +30,6 @@ import java.io.OutputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -59,6 +57,7 @@ import org.rhq.core.pluginapi.util.FileUtils;
import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.core.util.ZipUtil;
import org.rhq.core.util.exception.ThrowableUtil;
+import org.rhq.core.util.file.JarContentFileInfo;
import org.rhq.plugins.jbossas.helper.MainDeployer;
import org.rhq.plugins.jmx.MBeanResourceComponent;
@@ -139,9 +138,13 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
PackageVersions versions = loadApplicationVersions();
String version = versions.getVersion(fileName);
+ JarContentFileInfo fileInfo = new JarContentFileInfo(file);
+ String sha256 = getSHA256(fileInfo);
+
// First discovery of this EAR/WAR
if (version == null) {
- version = "1.0";
+ // try to use version from manifest. if not there use the sha256. if that fails default to "0".
+ version = fileInfo.getVersion((null == sha256) ? "0" : sha256);
versions.putVersion(fileName, version);
versions.saveToDisk();
}
@@ -154,7 +157,7 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
details.setFileSize(file.length());
details.setFileCreatedDate(file.lastModified()); // TODO: get created date via SIGAR
- details.setSHA256(getSHA256(details));
+ details.setSHA256(sha256);
details.setInstallationTimestamp(Long.valueOf(System.currentTimeMillis()));
packages.add(details);
@@ -166,35 +169,21 @@ public class ApplicationComponent extends MBeanResourceComponent<JBossASServerCo
// TODO: if needed we can speed this up by looking in the ResourceContainer's installedPackage
// list for previously discovered packages. If there use the sha256 from that record. We'd have to
// get access to that info by adding access in org.rhq.core.pluginapi.content.ContentServices
- private String getSHA256(ResourcePackageDetails detail) {
+ private String getSHA256(JarContentFileInfo fileInfo) {
String sha256 = null;
try {
- //if the filesize of discovered package is null then it's an exploded and deployed war/ear.
- File app = new File(detail.getLocation());
- if (app.isDirectory()) {
- // when deployed exploded then don't calculate digest but check for META-INF entry
- // this will be populated for uploaded files
- File manifestFile = new File(app, "META-INF/MANIFEST.MF");
- Manifest manifest;
- if (manifestFile.exists()) {
- FileInputStream inputStream = new FileInputStream(manifestFile);
- manifest = new Manifest(inputStream);
- inputStream.close();
- Attributes attribs = manifest.getMainAttributes();
- String retrievedShaValue = attribs.getValue(RHQ_SHA256);
- if ((retrievedShaValue != null) && (!retrievedShaValue.trim().isEmpty())) {
- sha256 = retrievedShaValue;
- }
- }
- } else {
- sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(app);
+ sha256 = fileInfo.getAttributeValue(RHQ_SHA256, null);
+ if (null == sha256) {
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(fileInfo
+ .getContentFile());
}
} catch (IOException iex) {
//log exception but move on, discovery happens often. No reason to hold up anything.
if (log.isDebugEnabled()) {
- log.debug("Problem calculating digest of package [" + detail.getName() + "]." + iex.getMessage());
+ log.debug("Problem calculating digest of package [" + fileInfo.getContentFile().getPath() + "]."
+ + iex.getMessage());
}
}
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
index e470b13..d91c7ef 100644
--- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
+++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/JarContentDelegate.java
@@ -84,13 +84,12 @@ public class JarContentDelegate extends FileContentDelegate {
});
for (File file : files) {
+ String version = null;
JarFile jf = null;
try {
Configuration config = new Configuration();
jf = new JarFile(file);
-
Manifest manifest = jf.getManifest();
- String version = null;
if (manifest != null) {
Attributes attributes = manifest.getMainAttributes();
@@ -107,8 +106,16 @@ public class JarContentDelegate extends FileContentDelegate {
config.put(new PropertySimple("sealed", attributes.getValue(Attributes.Name.SEALED)));
}
- if (version == null) {
- version = "1.0";
+ String sha256 = null;
+ try {
+ sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(file);
+ } catch (Exception e) {
+ // leave as null
+ }
+
+ // try to use version from manifest. if not there use the sha256. if that fails default to "0".
+ if (null == version) {
+ version = (null == sha256) ? "0" : sha256;
}
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(file.getName(),
@@ -119,7 +126,7 @@ public class JarContentDelegate extends FileContentDelegate {
details.setFileName(file.getName());
details.setFileSize(file.length());
details.setClassification(MIME_TYPE_JAR);
- details.setSHA256(MessageDigestGenerator.getDigestString(file));
+ details.setSHA256(sha256);
details.setExtraProperties(config);
} catch (IOException e) {
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
index c90c765..6ad0ee0 100644
--- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
+++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/TomcatWarComponent.java
@@ -629,11 +629,12 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
PackageVersions versions = loadApplicationVersions();
String version = versions.getVersion(fileName);
+ String sha256 = getSHA256(file);
// First discovery of this WAR
if (null == version) {
JarContentFileInfo info = new JarContentFileInfo(file);
- version = info.getVersion("1.0");
+ version = info.getVersion((null == sha256) ? "0" : sha256);
versions.putVersion(fileName, version);
versions.saveToDisk();
}
@@ -645,7 +646,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
if (!file.isDirectory())
details.setFileSize(file.length());
details.setFileCreatedDate(null); // TODO: get created date via SIGAR
- details.setSHA256(getSHA256(details));
+ details.setSHA256(sha256);
packages.add(details);
}
@@ -656,13 +657,13 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
// TODO: if needed we can speed this up by looking in the ResourceContainer's installedPackage
// list for previously discovered packages. If there use the sha256 from that record. We'd have to
// get access to that info by adding access in org.rhq.core.pluginapi.content.ContentServices
- private String getSHA256(ResourcePackageDetails detail) {
+ private String getSHA256(File file) {
String sha256 = null;
try {
//if the filesize of discovered package is null then it's an exploded and deployed war/ear.
- File app = new File(detail.getLocation());
+ File app = new File(file.getPath());
if (app.isDirectory()) {
File associatedWarFile = new File(app.getAbsolutePath() + ".war");
sha256 = new MessageDigestGenerator(MessageDigestGenerator.SHA_256).calcDigestString(associatedWarFile);
@@ -672,7 +673,7 @@ public class TomcatWarComponent extends MBeanResourceComponent<TomcatVHostCompon
} catch (IOException iex) {
//log exception but move on, discovery happens often. No reason to hold up anything.
if (log.isDebugEnabled()) {
- log.debug("Problem calculating digest of package [" + detail.getName() + "]." + iex.getMessage());
+ log.debug("Problem calculating digest of package [" + file.getPath() + "]." + iex.getMessage());
}
}
commit 4f1546dde2f4bb4d6ca145509be3f67dd9b4b1a4
Merge: cedf360... 2c8d05d...
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Jun 3 20:29:36 2010 +0200
Merge branch 'master' into ui-updates
commit 2c8d05dca40d34deb272952e80f4dd639d77ac31
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 3 13:45:15 2010 -0400
get rid a rhq.version prop and use project.version instead, since this module is now part of the reactor
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 84850b5..f13e964 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -1,4 +1,6 @@
-<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">
+<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>
@@ -29,7 +31,6 @@
<seam.version>2.1.0.SP1</seam.version>
<jboss-el.version>1.0_02.CR5</jboss-el.version>
<richfaces.version>3.3.2.SR1</richfaces.version>
- <rhq.version>3.0.0.Beta0</rhq.version>
</properties>
<dependencyManagement>
@@ -109,7 +110,7 @@
<dependency>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-gui</artifactId>
- <version>${rhq.version}</version>
+ <version>${project.version}</version>
</dependency>
</dependencies>
@@ -192,7 +193,6 @@
<version>2.1.1</version>
</dependency>
-
</dependencies>
<repositories>
@@ -208,3 +208,4 @@
</repositories>
</project>
+
commit cedf36067adb2ae2e655eb6ef32430ee18c9c07f
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Jun 3 18:30:53 2010 +0200
The resource column title reads "Resource" instead of "Resource Name" in the dashboard portlets now.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
index 3c46731..f02efb5 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
+++ b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
@@ -805,6 +805,7 @@ dash.settings.DisplayInPortlet=Display in portlet
dash.home.TableHeader.GroupName=Group Name
dash.home.TableHeader.GroupResourceType=Type
dash.home.TableHeader.ResourceName=Resource Name
+dash.home.TableHeader.Resource=Resource
dash.home.TableHeader.ResourceKey=Resource Key
dash.home.TableHeader.PlatformName=Platform Name
dash.home.TableHeader.Alerts=Alerts
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
index ba76919..055e2c9 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
@@ -46,7 +46,7 @@
<c:otherwise>
<c:if test="${!empty lastCompletedResource}">
<tr>
- <td width="25%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
+ <td width="25%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Resource"/></td>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
<td width="20%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
@@ -139,7 +139,7 @@
<c:otherwise>
<c:if test="${!empty nextScheduledResource}">
<tr>
- <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
+ <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Resource"/></td>
<td width="35%" class="ListHeaderInactive" colspan="2"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
<td width="15%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
index 0d3e602..cff479a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
@@ -34,7 +34,7 @@
<c:when test="${not empty criticalAlerts}">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td width="20%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.ResourceName"/><html:img page="/images/tb_sortup_inactive.gif" width="9" height="9" border="0"/></td>
+ <td width="20%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.Resource"/><html:img page="/images/tb_sortup_inactive.gif" width="9" height="9" border="0"/></td>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.AlertName"/></td>
<td width="20%" class="ListHeaderInactiveCenter"><fmt:message key="dash.home.TableHeader.DateTime"/></td>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
index 481cb5c..1a46253 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
@@ -33,7 +33,7 @@
<c:when test="${not empty problemResources}">
<display:table cellspacing="0" cellpadding="0" width="100%" action="/Dashboard.do"
var="obj" items="${problemResources}" >
- <display:column width="20%" title="dash.home.TableHeader.ResourceName">
+ <display:column width="20%" title="dash.home.TableHeader.Resource">
<display:disambiguatedResourceNameDecorator resourceName="${obj.original.resourceName}" resourceId="${obj.original.resourceId}" disambiguationReport="${obj}"/>
</display:column>
<display:column width="20%" title="dash.home.TableHeader.Location">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
index 24ccfe7..eb9a997 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
@@ -24,7 +24,7 @@
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="3%" class="ListHeaderInactive"> </td>
- <td width="37%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
+ <td width="37%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.Resource"/></td>
<td width="30%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.DateTime"/></td>
</tr>
<c:forEach items="${recentlyApproved}" var="platform">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
index 58e74b7..fd69279 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
@@ -27,7 +27,7 @@
<c:when test="${not empty resourceHealth}">
<display:table cellspacing="0" cellpadding="0" width="100%" action="/Dashboard.do"
var="item" items="${resourceHealth}" >
- <display:column width="25%" sortAttr="res.name" title="dash.home.TableHeader.ResourceName">
+ <display:column width="25%" sortAttr="res.name" title="dash.home.TableHeader.Resource">
<display:disambiguatedResourceNameDecorator resourceName="${item.original.name}" disambiguationReport="${item}" resourceId="${item.original.id}"/>
</display:column>
<display:column width="25%" title="dash.home.TableHeader.Location">
commit 66f21dba19d22bdd2be3988f8d62fdf72ec6f26c
Merge: b84d02f... e9b7fbe...
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Jun 3 18:14:41 2010 +0200
Merge branch 'master' into ui-updates
commit e681f4fbe496e50a7b5d0bb4357d602656e5742f
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 3 11:18:04 2010 -0400
[maven-release-plugin] prepare for next development iteration
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index f052f46..eda9133 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index c6783ae..bc7965b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 43734db..2cf950b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index fdb9d22..ee81a94 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 0308ef2..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 7c4dd2e..a51f92b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index a98eb55..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 45f34bf..e0ced84 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index c6c3bba..0911918 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 67225ad..d47d4c8 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index a7a6886..e1ce7ef 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index cf761ab..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index de39a5b..7739177 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index a0a46f3..eeb7e81 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index ce0844f..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index ac6f93e..bc41dc5 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 56e1d99..d9f1c1c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 734c5f0..8942239 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index e031cd4..8b9da9c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 8f58a5a..84850b5 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 20989da..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index ec89316..df05645 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 034452a..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 6a42fb1..dcb1f88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 361f39e..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index f8a9e4d..783942c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index a98b398..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 307eaec..3b0dbb8 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 72d0c21..33966bd 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 6093759..605267f 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index d7bcbfa..910b617 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 66eac08..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 3ecae9a..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index c379166..6b296df 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 4457f62..bf15866 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 00a81ec..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 79be7c7..ad4a632 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 6244af3..9f1a05c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index b720357..7d884ca 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 aa5231c..c9df693 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 be9e85e..924973d 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 b130f60..70c948e 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 1658600..f8a5704 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 e6a8e5a..cb7123b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 97fd001..73f405e 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 21993f9..4a15ba1 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 6a57358..0033d1b 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 3a0075a..61965f2 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 cf90a8d..7451668 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0618a39..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 44a1a40..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index feb13d1..2b16f4a 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index f7e98f4..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 75b6521..a6cba32 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 5bb3d8f..9c7cc74 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 46d2e6b..ebdd3da 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 315f6ec..06c8981 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index ae38c62..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 1b6281b..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index edb4de2..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index 9d3099b..f9dde4c 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 0a3cb28..4a31a97 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 5cd635e..a0721a9 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index b756cd5..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index e88643f..c37598e 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 8c115b3..cc160c9 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index ef209aa..b4f9208 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 1fb0cfa..963223b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 07f0ced..d920440 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 71b4fb8..d5aaad5 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 0f62932..30889f7 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 141d55c..b79645d 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 0568187..f7cf265 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 76b3fb5..acb08ef 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7ef085e..7dd0fde 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 34b08f1..de89333 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 4a117e1..853c020 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 af0026f..a0ade77 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 295308b..b9ed2b3 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 b23fd8e..b3846fa 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 64e6d71..443e524 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index d414b64..ac9885a 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 149bd72..d0c9053 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 5c170a7..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index db2390f..1acdb0f 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 0cdced6..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 06bdf58..97b83b0 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 4041d2a..85d6105 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1401592..283ab6a 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index e4c3753..5a4466c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index 04aa1f5..a190dcd 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 4e16ef7..8f4e675 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 8125d5b..0d41574 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index a757eec..7719b14 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index d78585e..2d9d715 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 2da552d..3579496 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 26f392b..41df1b8 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 74bc2be..205d5b0 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index db45625..e299efa 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 626c04c..b3d5e87 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 0cbce50..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 7910b04..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index ea73bf1..286bf41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 60b313c94c41b8e5c3f52bf1e09eaba8fc7a8f83
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 3 11:17:34 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_Beta0
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..f052f46 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..c6783ae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..43734db 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..fdb9d22 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..0308ef2 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..7c4dd2e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..a98eb55 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..45f34bf 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..c6c3bba 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..67225ad 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..a7a6886 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..cf761ab 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..de39a5b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..a0a46f3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..ce0844f 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..ac6f93e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..56e1d99 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..734c5f0 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..e031cd4 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index ad30bfb..8f58a5a 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
@@ -29,7 +29,7 @@
<seam.version>2.1.0.SP1</seam.version>
<jboss-el.version>1.0_02.CR5</jboss-el.version>
<richfaces.version>3.3.2.SR1</richfaces.version>
- <rhq.version>3.0.0-SNAPSHOT</rhq.version>
+ <rhq.version>3.0.0.Beta0</rhq.version>
</properties>
<dependencyManagement>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..20989da 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..ec89316 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..034452a 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..6a42fb1 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..361f39e 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..f8a9e4d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..a98b398 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..307eaec 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..72d0c21 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..6093759 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..d7bcbfa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..66eac08 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..3ecae9a 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6b296df..c379166 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..4457f62 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..00a81ec 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index ad4a632..79be7c7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 9f1a05c..6244af3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 7d884ca..b720357 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 c9df693..aa5231c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 924973d..be9e85e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 70c948e..b130f60 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 f8a5704..1658600 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 cb7123b..e6a8e5a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..97fd001 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 4a15ba1..21993f9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 0033d1b..6a57358 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 61965f2..3a0075a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 7451668..cf90a8d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..0618a39 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..44a1a40 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..feb13d1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..f7e98f4 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..75b6521 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 9c7cc74..5bb3d8f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 ebdd3da..46d2e6b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..315f6ec 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..ae38c62 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..1b6281b 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..edb4de2 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f9dde4c..9d3099b 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 4a31a97..0a3cb28 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..5cd635e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..b756cd5 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..e88643f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..8c115b3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..ef209aa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..1fb0cfa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..07f0ced 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..71b4fb8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..0f62932 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..141d55c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..0568187 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..76b3fb5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..7ef085e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index de89333..34b08f1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..4a117e1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 a0ade77..af0026f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..295308b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 b3846fa..b23fd8e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..64e6d71 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..d414b64 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..149bd72 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..5c170a7 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..db2390f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..0cdced6 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..06bdf58 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..4041d2a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1401592 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..e4c3753 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..04aa1f5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..4e16ef7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..8125d5b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..a757eec 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..d78585e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..2da552d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..26f392b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..74bc2be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..db45625 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 b3d5e87..626c04c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..0cbce50 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..7910b04 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 286bf41..ea73bf1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit a2b6884b36ea6bb3972b3169e604455c1fad2abd
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 3 11:06:47 2010 -0400
Revert "[maven-release-plugin] prepare release RHQ_3_0_0_Beta0"
This reverts commit 503431fcdf3ed280899887cffd75ff1143cbdd81.
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index f052f46..eda9133 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index c6783ae..bc7965b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 43734db..2cf950b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index fdb9d22..ee81a94 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index 0308ef2..d177f9e 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index 7c4dd2e..a51f92b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index a98eb55..92ae1d2 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 45f34bf..e0ced84 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index c6c3bba..0911918 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 67225ad..d47d4c8 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index a7a6886..e1ce7ef 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index cf761ab..2e58102 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index de39a5b..7739177 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index a0a46f3..eeb7e81 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index ce0844f..7aad64c 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index ac6f93e..bc41dc5 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index 56e1d99..d9f1c1c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 734c5f0..8942239 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index e031cd4..8b9da9c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index 8f58a5a..ad30bfb 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
@@ -29,7 +29,7 @@
<seam.version>2.1.0.SP1</seam.version>
<jboss-el.version>1.0_02.CR5</jboss-el.version>
<richfaces.version>3.3.2.SR1</richfaces.version>
- <rhq.version>3.0.0.Beta0</rhq.version>
+ <rhq.version>3.0.0-SNAPSHOT</rhq.version>
</properties>
<dependencyManagement>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 20989da..798a8ca 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index ec89316..df05645 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 034452a..ca1b68d 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 6a42fb1..dcb1f88 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 361f39e..0c529ba 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index f8a9e4d..783942c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index a98b398..aa880be 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 307eaec..3b0dbb8 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 72d0c21..33966bd 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 6093759..605267f 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index d7bcbfa..910b617 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 66eac08..2ea73ee 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 3ecae9a..2c98817 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index c379166..6b296df 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 4457f62..bf15866 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 00a81ec..840adfb 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 79be7c7..ad4a632 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 6244af3..9f1a05c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index b720357..7d884ca 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 aa5231c..c9df693 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 be9e85e..924973d 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 b130f60..70c948e 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 1658600..f8a5704 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 e6a8e5a..cb7123b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 97fd001..73f405e 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 21993f9..4a15ba1 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 6a57358..0033d1b 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 3a0075a..61965f2 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 cf90a8d..7451668 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0618a39..0ac61d3 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 44a1a40..5a78451 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index feb13d1..2b16f4a 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index f7e98f4..e4ab9b2 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 75b6521..a6cba32 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 5bb3d8f..9c7cc74 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 46d2e6b..ebdd3da 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 315f6ec..06c8981 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index ae38c62..aa278b8 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 1b6281b..0cc2084 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index edb4de2..14738d0 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index 9d3099b..f9dde4c 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 0a3cb28..4a31a97 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 5cd635e..a0721a9 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index b756cd5..5d327ee 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index e88643f..c37598e 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 8c115b3..cc160c9 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index ef209aa..b4f9208 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 1fb0cfa..963223b 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index 07f0ced..d920440 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index 71b4fb8..d5aaad5 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 0f62932..30889f7 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 141d55c..b79645d 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 0568187..f7cf265 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index 76b3fb5..acb08ef 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7ef085e..7dd0fde 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index 34b08f1..de89333 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-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 4a117e1..853c020 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 af0026f..a0ade77 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 295308b..b9ed2b3 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 b23fd8e..b3846fa 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 64e6d71..443e524 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index d414b64..ac9885a 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 149bd72..d0c9053 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 5c170a7..06ae2ae 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index db2390f..1acdb0f 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 0cdced6..39c75da 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 06bdf58..97b83b0 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 4041d2a..85d6105 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 1401592..283ab6a 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index e4c3753..5a4466c 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index 04aa1f5..a190dcd 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 4e16ef7..8f4e675 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 8125d5b..0d41574 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index a757eec..7719b14 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index d78585e..2d9d715 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 2da552d..3579496 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 26f392b..41df1b8 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 74bc2be..205d5b0 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index db45625..e299efa 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>3.0.0.Beta0</version>
+ <version>3.0.0-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 626c04c..b3d5e87 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>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 0cbce50..bc96ae3 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 7910b04..2235687 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index ea73bf1..286bf41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.Beta0</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit 503431fcdf3ed280899887cffd75ff1143cbdd81
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 3 10:21:18 2010 -0400
[maven-release-plugin] prepare release RHQ_3_0_0_Beta0
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index eda9133..f052f46 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index bc7965b..c6783ae 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 2cf950b..43734db 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ee81a94..fdb9d22 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d177f9e..0308ef2 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index a51f92b..7c4dd2e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 92ae1d2..a98eb55 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e0ced84..45f34bf 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 0911918..c6c3bba 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index d47d4c8..67225ad 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index e1ce7ef..a7a6886 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 2e58102..cf761ab 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 7739177..de39a5b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index eeb7e81..a0a46f3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 7aad64c..ce0844f 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index bc41dc5..ac6f93e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index d9f1c1c..56e1d99 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index 8942239..734c5f0 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index 8b9da9c..e031cd4 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index ad30bfb..8f58a5a 100644
--- a/modules/enterprise/gui/base-perspective-jar/pom.xml
+++ b/modules/enterprise/gui/base-perspective-jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
@@ -29,7 +29,7 @@
<seam.version>2.1.0.SP1</seam.version>
<jboss-el.version>1.0_02.CR5</jboss-el.version>
<richfaces.version>3.3.2.SR1</richfaces.version>
- <rhq.version>3.0.0-SNAPSHOT</rhq.version>
+ <rhq.version>3.0.0.Beta0</rhq.version>
</properties>
<dependencyManagement>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 798a8ca..20989da 100644
--- a/modules/enterprise/gui/base-perspective-war/pom.xml
+++ b/modules/enterprise/gui/base-perspective-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index df05645..ec89316 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index ca1b68d..034452a 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index dcb1f88..6a42fb1 100644
--- a/modules/enterprise/gui/installer-war/pom.xml
+++ b/modules/enterprise/gui/installer-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 0c529ba..361f39e 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index 783942c..f8a9e4d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/webdav-war/pom.xml b/modules/enterprise/gui/webdav-war/pom.xml
index aa880be..a98b398 100644
--- a/modules/enterprise/gui/webdav-war/pom.xml
+++ b/modules/enterprise/gui/webdav-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 3b0dbb8..307eaec 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index 33966bd..72d0c21 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-cli</artifactId>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 605267f..6093759 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-client-api</artifactId>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 910b617..d7bcbfa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-parent</artifactId>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 2ea73ee..66eac08 100644
--- a/modules/enterprise/remoting/webservices/pom.xml
+++ b/modules/enterprise/remoting/webservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>rhq-remoting-webservices</artifactId>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index 2c98817..3ecae9a 100644
--- a/modules/enterprise/server/container-lib/pom.xml
+++ b/modules/enterprise/server/container-lib/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 6b296df..c379166 100644
--- a/modules/enterprise/server/container/pom.xml
+++ b/modules/enterprise/server/container/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index bf15866..4457f62 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 840adfb..00a81ec 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index ad4a632..79be7c7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 9f1a05c..6244af3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 7d884ca..b720357 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 c9df693..aa5231c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 924973d..be9e85e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 70c948e..b130f60 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 f8a5704..1658600 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 cb7123b..e6a8e5a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 73f405e..97fd001 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 4a15ba1..21993f9 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 0033d1b..6a57358 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 61965f2..3a0075a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 7451668..cf90a8d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0ac61d3..0618a39 100644
--- a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 5a78451..44a1a40 100644
--- a/modules/enterprise/server/plugins/perspectives/core/pom.xml
+++ b/modules/enterprise/server/plugins/perspectives/core/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 2b16f4a..feb13d1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index e4ab9b2..f7e98f4 100644
--- a/modules/enterprise/server/plugins/rhnhosted/pom.xml
+++ b/modules/enterprise/server/plugins/rhnhosted/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index a6cba32..75b6521 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 9c7cc74..5bb3d8f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 ebdd3da..46d2e6b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index 06c8981..315f6ec 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index aa278b8..ae38c62 100644
--- a/modules/enterprise/server/sars/agent-sar/pom.xml
+++ b/modules/enterprise/server/sars/agent-sar/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-sars-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 0cc2084..1b6281b 100644
--- a/modules/enterprise/server/sars/pom.xml
+++ b/modules/enterprise/server/sars/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index 14738d0..edb4de2 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/helpers/pluginAnnotations/pom.xml b/modules/helpers/pluginAnnotations/pom.xml
index f9dde4c..9d3099b 100644
--- a/modules/helpers/pluginAnnotations/pom.xml
+++ b/modules/helpers/pluginAnnotations/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin annotations</name>
<description>Annotations to help generate plugin descriptors</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pluginGen/pom.xml b/modules/helpers/pluginGen/pom.xml
index 4a31a97..0a3cb28 100644
--- a/modules/helpers/pluginGen/pom.xml
+++ b/modules/helpers/pluginGen/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
@@ -16,7 +16,7 @@
<name>RHQ plugin generator</name>
<description>Helper to generate plugin skeletons</description>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<scm>
<connection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/helpers/pluginGen</connection>
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a0721a9..5cd635e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 5d327ee..b756cd5 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index c37598e..e88643f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index cc160c9..8c115b3 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index b4f9208..ef209aa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 963223b..1fb0cfa 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index d920440..07f0ced 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d5aaad5..71b4fb8 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 30889f7..0f62932 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index b79645d..141d55c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index f7cf265..0568187 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index acb08ef..76b3fb5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 7dd0fde..7ef085e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index de89333..34b08f1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index 853c020..4a117e1 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 a0ade77..af0026f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index b9ed2b3..295308b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 b3846fa..b23fd8e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index 443e524..64e6d71 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index ac9885a..d414b64 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index d0c9053..149bd72 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 06ae2ae..5c170a7 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 1acdb0f..db2390f 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 39c75da..0cdced6 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 97b83b0..06bdf58 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index 85d6105..4041d2a 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 283ab6a..1401592 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 5a4466c..e4c3753 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index a190dcd..04aa1f5 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 8f4e675..4e16ef7 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index 0d41574..8125d5b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 7719b14..a757eec 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index 2d9d715..d78585e 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index 3579496..2da552d 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 41df1b8..26f392b 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 205d5b0..74bc2be 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index e299efa..db45625 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</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 b3d5e87..626c04c 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>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index bc96ae3..0cbce50 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 2235687..7910b04 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
</parent>
<artifactId>test-utils</artifactId>
<name>RHQ Test Utils</name>
diff --git a/pom.xml b/pom.xml
index 286bf41..ea73bf1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.0.Beta0</version>
<packaging>pom</packaging>
<name>RHQ</name>
commit e9b7fbef3cc47975263eff8f5924ebab1c98ce59
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu Jun 3 09:20:03 2010 -0400
remove cli module from enterprise profile, since that module no longer depends on the webservices module
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index ce81af0..910b617 100644
--- a/modules/enterprise/remoting/pom.xml
+++ b/modules/enterprise/remoting/pom.xml
@@ -43,7 +43,6 @@
<modules>
<module>webservices</module>
- <module>cli</module>
</modules>
</profile>
commit b84d02f2bf7d4e2a1fea45c2e2d27ba105e43b4c
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Jun 2 21:49:53 2010 +0200
Next iteration of server icons.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png
index 35a748c..9db89b6 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png
index 25144f1..5b422ae 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png
index aaefc27..0177e04 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png
index 51e0a5e..63e43c6 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png
index 734d98b..fab4a2f 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png
index b310d15..0656e6a 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png
index 57adb89..78f04e5 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png
index 06d0e26..6872eb6 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png
index e911512..202dfe1 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png
index 1d94a83..dd365db 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png
index c76e3eb..6a5286f 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png
index 88ca45b..3a56b8d 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png differ
commit 1fc725f2a74f4fc522622dc6036ddb369c3a1e05
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Jun 2 21:13:21 2010 +0200
Fixing the repo subscription selection page.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
index d8b3467..15e7885 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
@@ -67,7 +67,7 @@
value="#{repoSubscriptionsDataModel}"
var="resourceitem"
width="100%"
- columnsWidth="1%, 20%, 15%, 15%, 49%"
+ columnsWidth="1%, 20%, 49%, 15%, 15%"
headerClass="tableRowHeader"
footerClass="on-pager-footer"
onRowMouseOver="this.style.backgroundColor='#E7E7E7'"
@@ -99,7 +99,7 @@
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="rc.resource.name">
- <h:outputText styleClass="headerText" value="Name" />
+ <h:outputText styleClass="headerText" value="Resource" />
</onc:sortableColumnHeader>
</f:facet>
@@ -109,7 +109,7 @@
<rich:column>
<f:facet name="header">
- <h:outputText value="Parent" />
+ <h:outputText value="Location" />
</f:facet>
<onc:disambiguatedResourceLineage parents="#{resourceitem.parents}" />
</rich:column>
@@ -198,7 +198,7 @@
value="#{repoUnsubscriptionsDataModel}"
var="availableitem"
width="100%"
- columnsWidth="1%, 20%, 15%, 15%, 49%"
+ columnsWidth="1%, 20%, 49%, 15%, 15%"
headerClass="tableRowHeader"
footerClass="on-pager-footer"
onRowMouseOver="this.style.backgroundColor='#E7E7E7'"
@@ -230,17 +230,17 @@
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="res.name">
- <h:outputText styleClass="headerText" value="Name" />
+ <h:outputText styleClass="headerText" value="Resource" />
</onc:sortableColumnHeader>
</f:facet>
- <onc:disambiguatedResourceName resourceName="#{resourceitem.original.name}"
- resourceId="#{resourceitem.original.id}" disambiguationReport="#{resourceitem}" />
+ <onc:disambiguatedResourceName resourceName="#{availableitem.original.name}"
+ resourceId="#{availableitem.original.id}" disambiguationReport="#{availableitem}" />
</rich:column>
<rich:column>
<f:facet name="header">
- <h:outputText value="Parent"/>
+ <h:outputText value="Location"/>
</f:facet>
<onc:disambiguatedResourceLineage parents="#{availableitem.parents}"/>
@@ -248,16 +248,6 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="res.resourceType.name">
- <h:outputText styleClass="headerText" value="Resource Type" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{availableitem.resourceType.name}"/>
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
<onc:sortableColumnHeader sort="res.version">
<h:outputText styleClass="headerText" value="Version" />
</onc:sortableColumnHeader>
commit 34529bc935e0d863748ae25a2db2b9712eb2acb0
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Jun 2 13:41:51 2010 +0200
BZ 598627 - The content pane resource/group icons correspond to the icons in the tree for both the resource tree and group tree.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java
index 05b922b..43a441f 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java
@@ -33,6 +33,16 @@ import org.rhq.core.domain.resource.ResourceCategory;
public enum MembersCategoryHint {
PLATFORM, SERVER, SERVICE, MIXED, NONE;
+ private String name;
+
+ private MembersCategoryHint() {
+ StringBuilder bld = new StringBuilder();
+ String name = name().toLowerCase();
+ bld.append(Character.toUpperCase(name.charAt(0)));
+ bld.append(name, 1, name.length());
+ this.name = bld.toString();
+ }
+
public static MembersCategoryHint fromResourceCategory(ResourceCategory category) {
switch (category) {
case PLATFORM:
@@ -47,6 +57,6 @@ public enum MembersCategoryHint {
}
public String toString() {
- return name().toLowerCase();
+ return name;
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/autogroup/AutoGroupUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/autogroup/AutoGroupUIBean.java
index 2766c12..243f7eb 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/autogroup/AutoGroupUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/autogroup/AutoGroupUIBean.java
@@ -52,26 +52,18 @@ public class AutoGroupUIBean {
this.measurementManager = determineMeasurementManager();
}
- public int getParentResourceId() {
- return this.parentResource.getId();
- }
-
- public String getParentResourceName() {
- return this.parentResource.getName();
- }
-
- public int getChildResourceTypeId() {
- return this.childResourceType.getId();
- }
-
- public String getChildResourceTypeName() {
- return this.childResourceType.getName();
- }
-
public boolean isMeasurementManager() {
return this.measurementManager;
}
+ public Resource getParentResource() {
+ return parentResource;
+ }
+
+ public ResourceType getChildResourceType() {
+ return childResourceType;
+ }
+
/**
* To manipulate autogroup schedules the subject must have measurement perms for each of the AG's
* resources. There is no simple query for this. Since this is rare and AG size is usually fairly small
@@ -90,8 +82,8 @@ public class AutoGroupUIBean {
return true;
}
- List<Resource> resources = LookupUtil.getResourceGroupManager().findResourcesForAutoGroup(this.subject, this.getParentResourceId(),
- this.getChildResourceTypeId());
+ List<Resource> resources = LookupUtil.getResourceGroupManager().findResourcesForAutoGroup(this.subject, this.getParentResource().getId(),
+ this.getChildResourceType().getId());
// Note, authManager does offer a single query solution for this but it has limits and is inefficient, for now let's
// opt for more round trips on the assumption that the AG size is typically small.
for (Resource resource : resources) {
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png
new file mode 100644
index 0000000..35a748c
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png
new file mode 100644
index 0000000..25144f1
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png
new file mode 100644
index 0000000..aaefc27
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png
new file mode 100644
index 0000000..51e0a5e
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png
new file mode 100644
index 0000000..734d98b
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png
new file mode 100644
index 0000000..b310d15
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Server_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_16.png
new file mode 100644
index 0000000..2cfd4db
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_24.png
new file mode 100644
index 0000000..3237333
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_16.png
new file mode 100644
index 0000000..f376733
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_24.png
new file mode 100644
index 0000000..8e81dc5
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_16.png
new file mode 100644
index 0000000..3bd2c67
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_24.png
new file mode 100644
index 0000000..d6b06e0
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_Service_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_16.png
deleted file mode 100644
index 35a748c..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_24.png
deleted file mode 100644
index 3237333..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_16.png
deleted file mode 100644
index aaefc27..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_24.png
deleted file mode 100644
index 51e0a5e..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_16.png
deleted file mode 100644
index 734d98b..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_24.png
deleted file mode 100644
index d6b06e0..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_16.png
deleted file mode 100644
index 2cfd4db..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_24.png
deleted file mode 100644
index 25144f1..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_16.png
deleted file mode 100644
index f376733..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_24.png
deleted file mode 100644
index 8e81dc5..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_16.png
deleted file mode 100644
index 3bd2c67..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_24.png
deleted file mode 100644
index b310d15..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_16.png
new file mode 100644
index 0000000..c75e7a8
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_24.png
new file mode 100644
index 0000000..321ea56
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_16.png
new file mode 100644
index 0000000..63b2050
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_24.png
new file mode 100644
index 0000000..b9d3d88
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_16.png
new file mode 100644
index 0000000..4678909
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_24.png
new file mode 100644
index 0000000..b9b400d
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Mixed_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_16.png
new file mode 100644
index 0000000..c75e7a8
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_24.png
new file mode 100644
index 0000000..321ea56
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_16.png
new file mode 100644
index 0000000..63b2050
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_24.png
new file mode 100644
index 0000000..b9d3d88
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_16.png
new file mode 100644
index 0000000..4678909
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_24.png
new file mode 100644
index 0000000..b9b400d
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Server_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_16.png
new file mode 100644
index 0000000..c75e7a8
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_24.png
new file mode 100644
index 0000000..321ea56
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_unknown_16.png
new file mode 100644
index 0000000..63b2050
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_16.png
new file mode 100644
index 0000000..4678909
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_24.png
new file mode 100644
index 0000000..b9b400d
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_Service_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_16.png
deleted file mode 100644
index c75e7a8..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_24.png
deleted file mode 100644
index 321ea56..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_16.png
deleted file mode 100644
index 63b2050..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_24.png
deleted file mode 100644
index b9d3d88..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_16.png
deleted file mode 100644
index 4678909..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_24.png
deleted file mode 100644
index b9b400d..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_16.png
deleted file mode 100644
index c75e7a8..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_24.png
deleted file mode 100644
index 321ea56..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_16.png
deleted file mode 100644
index 63b2050..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_24.png
deleted file mode 100644
index b9d3d88..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_16.png
deleted file mode 100644
index 4678909..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_24.png
deleted file mode 100644
index b9b400d..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_16.png
deleted file mode 100644
index c75e7a8..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_24.png
deleted file mode 100644
index 321ea56..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_unknown_16.png
deleted file mode 100644
index 63b2050..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_unknown_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_16.png
deleted file mode 100644
index 4678909..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_24.png
deleted file mode 100644
index b9b400d..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/events/history.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/events/history.xhtml
index a7f8732..fbdfa6a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/events/history.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/events/history.xhtml
@@ -11,7 +11,7 @@
<ui:param name="pageTitle"
- value="AutoGroup '#{AutoGroupUIBean.parentResourceName}'.'#{AutoGroupUIBean.childResourceTypeName}' - Event History" />
+ value="AutoGroup '#{AutoGroupUIBean.parentResource.name}'.'#{AutoGroupUIBean.childResourceType.name}' - Event History" />
<ui:param name="selectedTabName" value="Events.History"/>
<ui:define name="content">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/layout/main.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/layout/main.xhtml
index f18113c..28fac3c 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/layout/main.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/layout/main.xhtml
@@ -36,7 +36,7 @@ REQUEST PARAMETERS:
THIS TEXT WILL BE REMOVED AS WELL.
<ui:param name="defaultPageTitle"
- value="'#{AutoGroupUIBean.parentResourceName}'.'#{AutoGroupUIBean.childResourceTypeName}'" />
+ value="'#{AutoGroupUIBean.parentResource.name}'.'#{AutoGroupUIBean.childResourceType.name}'" />
<ui:define name="summary">
@@ -55,22 +55,22 @@ THIS TEXT WILL BE REMOVED AS WELL.
<tr>
<td width="30">
- <h:graphicImage value="/images/icons/Cluster_up_24.png"/>
+ <h:graphicImage value="/images/icons/Auto_group_#{AutoGroupUIBean.childResourceType.category}_up_24.png"/>
</td>
<td nowrap="nowrap">
- <h:outputText value="#{AutoGroupUIBean.childResourceTypeName} AutoGroup" style="font-size: 18px;" /><br/>
+ <h:outputText value="#{AutoGroupUIBean.childResourceType.name} AutoGroup" style="font-size: 18px;" /><br/>
<onc:resourceLineage
- resourceId="#{AutoGroupUIBean.parentResourceId}" />
+ resourceId="#{AutoGroupUIBean.parentResource.id}" />
<h:outputText value=" > " />
<h:outputLink value="/rhq/autogroup/monitor/graphs.xhtml">
<f:param name="parent"
- value="#{AutoGroupUIBean.parentResourceId}" />
+ value="#{AutoGroupUIBean.parentResource.id}" />
<f:param name="type"
- value="#{AutoGroupUIBean.childResourceTypeId}" />
- <h:outputText value="#{AutoGroupUIBean.childResourceTypeName}" />
+ value="#{AutoGroupUIBean.childResourceType.id}" />
+ <h:outputText value="#{AutoGroupUIBean.childResourceType.name}" />
</h:outputLink>
</td>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/graphs.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/graphs.xhtml
index db5e123..e5bcd5b 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/graphs.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/graphs.xhtml
@@ -17,7 +17,7 @@
<ui:composition template="/rhq/autogroup/layout/main.xhtml">
<ui:param name="pageTitle"
- value="AutoGroup '#{AutoGroupUIBean.parentResourceName}'.'#{AutoGroupUIBean.childResourceTypeName}' - Metric Graphs" />
+ value="AutoGroup '#{AutoGroupUIBean.parentResource.name}'.'#{AutoGroupUIBean.childResourceType.name}' - Metric Graphs" />
<ui:param name="selectedTabName" value="Monitor.Graphs" />
<ui:define name="content">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml
index 3ef4ebe..495d0e0 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/schedules.xhtml
@@ -17,7 +17,7 @@
<ui:composition template="/rhq/autogroup/layout/main.xhtml">
-<ui:param name="pageTitle" value="#{AutoGroupUIBean.parentResourceName}'.'#{AutoGroupUIBean.childResourceTypeName}' - Metric Schedules"/>
+<ui:param name="pageTitle" value="#{AutoGroupUIBean.parentResource.name}'.'#{AutoGroupUIBean.childResourceType.name}' - Metric Schedules"/>
<ui:param name="selectedTabName" value="Monitor.Schedules"/>
<ui:define name="content">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/tables.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/tables.xhtml
index 31cd09c..3d6fc5c 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/tables.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/autogroup/monitor/tables.xhtml
@@ -17,7 +17,7 @@
<ui:composition template="/rhq/autogroup/layout/main.xhtml">
<ui:param name="pageTitle"
- value="AutoGroup '#{AutoGroupUIBean.parentResourceName}'.'#{AutoGroupUIBean.childResourceTypeName}' - Metric Tables" />
+ value="AutoGroup '#{AutoGroupUIBean.parentResource.name}'.'#{AutoGroupUIBean.childResourceType.name}' - Metric Tables" />
<ui:param name="selectedTabName" value="Monitor.Tables" />
<ui:define name="content">
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
index 2ccf033..af05a4d 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
@@ -56,7 +56,7 @@ groupId - the group id of the Group being accessed
<tr>
<td>
- <h:graphicImage value="/images/icons/${ResourceGroupUIBean.compatible ? 'Cluster' : 'Group' }_up_24.png"/>
+ <h:graphicImage value="/images/icons/${ResourceGroupUIBean.compatible ? (ResourceGroupUIBean.clusterGroup ? ResourceGroupUIBean.resourceType.category : 'Cluster') : 'Group' }_up_24.png"/>
<h:outputText style="font-size: 18px;" value="#{ResourceGroupUIBean.name}"/>
</td>
commit a75653393f9b9a94040f60f736c77d32e3442c75
Merge: 7846090... bfbc327...
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Jun 1 20:25:32 2010 +0200
Merge branch 'master' into ui-updates
commit 7846090609e0a211997113293a2cac8152bd5b47
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Jun 1 20:02:30 2010 +0200
Updating group nav tree visuals to match the resource nav tree.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/navigation/GroupTree.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/navigation/GroupTree.xhtml
index 9bad2c6..3377f7e 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/navigation/GroupTree.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/navigation/GroupTree.xhtml
@@ -55,9 +55,12 @@
adviseNodeSelected="#{ResourceGroupTreeStateAdvisor.adviseNodeSelected}"
ajaxSubmitSelection="true"
status="commonStatus"
- icon="/images/icons/Platform_16.png"
+ icon="/images/icons/Platform_up_16.png"
+ iconCollapsed="/images/icons/dir_closed.png"
+ iconExpanded="/images/icons/dir_open.png"
nodeFace="#{treeNode.nodeType}"
eventsQueue="groupTreeQueue"
+ showConnectingLines="false"
ignoreDupResponses="true">
<rich:recursiveTreeNodesAdaptor roots="#{ResourceGroupTreeModelUIBean.roots}"
@@ -85,8 +88,8 @@
</rich:treeNode>
<rich:treeNode type="AutoGroupComposite"
- iconLeaf="/images/icons/#{groupTreeItem.data.subcategory != null ? 'Subcategory' : 'Auto_group'}_16.png"
- icon="/images/icons/#{groupTreeItem.data.subcategory != null ? 'Subcategory' : 'Auto_group'}_16.png" >
+ iconLeaf="/images/icons/#{groupTreeItem.data.resourceType == null? 'Subcategory' : 'Auto_group'}_#{groupTreeItem.data.membersCategoryHint}_#{groupTreeItem.data.membersAvailabilityHint}_16.png"
+ icon="/images/icons/#{groupTreeItem.data.resourceType == null? 'Subcategory' : 'Auto_group'}_#{groupTreeItem.data.membersCategoryHint}_#{groupTreeItem.data.membersAvailabilityHint}_16.png" >
<h:outputText
value="#{groupTreeItem.data.subcategory == null ? groupTreeItem.data.resourceType.name : groupTreeItem.data.subcategory.name}"/>
@@ -95,8 +98,8 @@
</rich:treeNode>
<rich:treeNode type="ClusterKey"
- icon="/images/icons/Cluster_up_16.png"
- iconLeaf="/images/icons/Cluster_up_16.png">
+ icon="/images/icons/#{groupTreeItem.members[0].data.resourceType.category}_up_16.png"
+ iconLeaf="/images/icons/#{groupTreeItem.members[0].data.resourceType.category}_up_16.png">
<a4j:support event="oncontextmenu" reRender="groupMenu" timeout="5000"
disableDefault="true" status="commonStatus" limitToList="true"
@@ -115,8 +118,8 @@
<rich:treeNode type="Resource"
- icon="/images/icons/#{groupTreeItem.data.resourceType.category}_#{groupTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up'}_16.png"
- iconLeaf="/images/icons/#{groupTreeItem.data.resourceType.category}_#{groupTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up'}_16.png">
+ icon="/images/icons/#{groupTreeItem.data.resourceType.category}_#{groupTreeItem.data.currentAvailability.availabilityType == null ? 'unknown' : (groupTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up')}_16.png"
+ iconLeaf="/images/icons/#{groupTreeItem.data.resourceType.category}_#{groupTreeItem.data.currentAvailability.availabilityType == null ? 'unknown' : (groupTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up')}_16.png">
<h:outputText value="#{groupTreeItem}"/>
</rich:treeNode>
commit 837adca43333944534b992fabc5c67a138722193
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Jun 1 15:47:04 2010 +0200
added missing icons for subcategories in left nav.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_16.png
new file mode 100644
index 0000000..c75e7a8
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_24.png
new file mode 100644
index 0000000..321ea56
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_16.png
new file mode 100644
index 0000000..63b2050
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_24.png
new file mode 100644
index 0000000..b9d3d88
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_16.png
new file mode 100644
index 0000000..4678909
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_24.png
new file mode 100644
index 0000000..b9b400d
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_mixed_up_24.png differ
commit c7eaade34da238f105ad1791c681f49da5c24d3b
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Jun 1 15:44:57 2010 +0200
cleaning up some disambiguation leftovers all around the UI.
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml
index eeedfee..073511a 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml
@@ -238,11 +238,7 @@ currentMenuItem - the org.rhq.enterprise.server.perspective.menuItem to render
resourceId="#{result.original.resource.id}" disambiguationReport="#{result}"
nameAsLink="false" />
</h:column>
- <h:column rendered="#{result.typeResolutionNeeded}">
- <f:facet name="header">Type</f:facet>
- <h:outputText value="#{result.resourceTypeName}"/>
- </h:column>
- <h:column rendered="#{result.parentResolutionNeeded}">
+ <h:column>
<f:facet name="header">Parent</f:facet>
<onc:disambiguatedResourceLineage parents="#{result.parents}" renderLinks="false" />
</h:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml
index 347697e..7f30b4d 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml
@@ -412,39 +412,23 @@
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="rc.resource.name">
- <h:outputText styleClass="headerText" value="Name" />
+ <h:outputText styleClass="headerText" value="Resource" />
</onc:sortableColumnHeader>
</f:facet>
<onc:disambiguatedResourceName resourceName="#{resourceitem.original.name}"
resourceId="#{resourceitem.original.id}" disambiguationReport="#{resourceitem}" />
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{resourceitem.original.id}" />
- <h:outputText value="#{resourceitem.original.name}" />
- </h:outputLink>
</rich:column>
<rich:column>
<f:facet name="header">
- <h:outputText value="Parent" />
+ <h:outputText value="Location" />
</f:facet>
<onc:disambiguatedResourceLineage parents="#{resourceitem.parents}"/>
</rich:column>
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader
- sort="rc.resource.resourceType.name">
- <h:outputText styleClass="headerText"
- value="Resource Type" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{resourceitem.resourceTypeName}" />
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
<onc:sortableColumnHeader sort="rc.resource.version">
<h:outputText styleClass="headerText" value="Version" />
</onc:sortableColumnHeader>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
index 01d1a57..d8b3467 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
@@ -116,16 +116,6 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="rc.resource.resourceType.name">
- <h:outputText styleClass="headerText" value="Resource Type" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{resourceitem.resourceTypeName}"/>
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
<h:outputText styleClass="headerText" value="Version" />
</f:facet>
@@ -263,7 +253,7 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{availableitem.resourceTypeName}"/>
+ <h:outputText value="#{availableitem.resourceType.name}"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
index c189e92..8709643 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
@@ -225,7 +225,7 @@
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="res.name">
- <h:outputText styleClass="headerText" value="Name"/>
+ <h:outputText styleClass="headerText" value="Resource"/>
</onc:sortableColumnHeader>
</f:facet>
@@ -235,7 +235,7 @@
<rich:column >
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Parent"/>
+ <h:outputText styleClass="headerText" value="Location"/>
</f:facet>
<onc:disambiguatedResourceLineage parents="#{resourceWithAvailability.parents}" />
@@ -243,26 +243,6 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="res.resourceType.category">
- <h:outputText styleClass="headerText" value="Category"/>
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{resourceWithAvailability.original.resource.resourceType.category}"/>
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
- <onc:sortableColumnHeader sort="res.resourceType.name">
- <h:outputText styleClass="headerText" value="Type"/>
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{resourceWithAvailability.resourceTypeName}"/>
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
<h:outputText styleClass="headerText" value="Description"/>
</f:facet>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
index c4969a8..2ccf033 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
@@ -175,7 +175,7 @@ groupId - the group id of the Group being accessed
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="res.name">
- <h:outputText styleClass="headerText" value="Name"/>
+ <h:outputText styleClass="headerText" value="Resource"/>
</onc:sortableColumnHeader>
</f:facet>
@@ -185,7 +185,7 @@ groupId - the group id of the Group being accessed
<rich:column>
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Parent"/>
+ <h:outputText styleClass="headerText" value="Location"/>
</f:facet>
<onc:disambiguatedResourceLineage parents="#{resourceWithAvailability.parents}"/>
commit e670314ce185ce3a0d9fab3829f921284f01ca4f
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue Jun 1 13:29:22 2010 +0200
BZ 580919 - disambiguating the "Autodiscovery" and "Recently Added" portlets along with the autodiscovery queue page. These should be the final leftovers.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/discovery/AutoDiscoveryQueueUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/discovery/AutoDiscoveryQueueUIBean.java
index f7ac410..e079474 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/discovery/AutoDiscoveryQueueUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/discovery/AutoDiscoveryQueueUIBean.java
@@ -34,14 +34,19 @@ import org.apache.commons.logging.LogFactory;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.gui.util.FacesContextUtility;
+import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.common.framework.PagedDataTableUIBean;
import org.rhq.enterprise.gui.common.paging.PageControlView;
import org.rhq.enterprise.gui.common.paging.PagedListDataModel;
+import org.rhq.enterprise.gui.common.paging.ResourceNameDisambiguatingPagedListDataModel;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.discovery.DiscoveryBossLocal;
+import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
import org.rhq.enterprise.server.util.LookupUtil;
public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
@@ -50,8 +55,15 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
public static final String MANAGED_BEAN_NAME = "AutoDiscoveryQueueUIBean";
private DiscoveryBossLocal discoveryBoss = LookupUtil.getDiscoveryBoss();
- private Map<Resource, List<Resource>> platformsAndServers = new HashMap<Resource, List<Resource>>();
+ private ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
+ private Map<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>> platformsAndServers = new HashMap<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>>();
+ private static final IntExtractor<Resource> RESOURCE_ID_EXTRACTOR = new IntExtractor<Resource>() {
+ public int extract(Resource object) {
+ return object.getId();
+ }
+ };
+
public AutoDiscoveryQueueUIBean() {
}
@@ -75,7 +87,7 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
return 10;
}
- public Map<Resource, List<Resource>> getPlatformsAndServers() {
+ public Map<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>> getPlatformsAndServers() {
return platformsAndServers;
}
@@ -95,25 +107,25 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
Map<Integer, Boolean> selectedResources = getSelectedResources();
// do it one platform at a time so we give each its own transaction
- List<Resource> platform = new ArrayList<Resource>(1);
+ List<DisambiguationReport<Resource>> platform = new ArrayList<DisambiguationReport<Resource>>(1);
for (Map.Entry<Integer, Boolean> selected : selectedResources.entrySet()) {
// if current 'selected' is a platform, import the selected things for that platform
- Resource resource = findResource(selected.getKey());
+ DisambiguationReport<Resource> resource = findResource(selected.getKey());
if ((resource != null) && selected.getValue().booleanValue()
&& platformsAndServers.containsKey(resource)) {
platform.clear();
platform.add(resource);
- if (resource.getInventoryStatus() == InventoryStatus.NEW) {
+ if (resource.getOriginal().getInventoryStatus() == InventoryStatus.NEW) {
platformCount++;
}
- List<Resource> allServers = platformsAndServers.get(resource);
- List<Resource> servers = new ArrayList<Resource>();
- for (Resource server : allServers) {
- if (selectedResources.containsKey(server.getId())
- && selectedResources.get(server.getId()).booleanValue()
- && (server.getInventoryStatus() == InventoryStatus.NEW)) {
+ List<DisambiguationReport<Resource>> allServers = platformsAndServers.get(resource);
+ List<DisambiguationReport<Resource>> servers = new ArrayList<DisambiguationReport<Resource>>();
+ for (DisambiguationReport<Resource> server : allServers) {
+ if (selectedResources.containsKey(server.getOriginal().getId())
+ && selectedResources.get(server.getOriginal().getId()).booleanValue()
+ && (server.getOriginal().getInventoryStatus() == InventoryStatus.NEW)) {
serverCount++;
servers.add(server);
}
@@ -121,7 +133,7 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
log.debug("AIQueue import: platform=" + platform + "| servers=" + servers);
// TODO: Why do we update the platform's status even when it was already COMMITTED?? (ips, 07/10/08)
- discoveryBoss.updateInventoryStatus(subject, platform, servers, InventoryStatus.COMMITTED);
+ discoveryBoss.updateInventoryStatus(subject, getOriginals(platform), getOriginals(servers), InventoryStatus.COMMITTED);
}
}
@@ -143,27 +155,27 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
try {
// do it one platform at a time so we give each its own transaction
- List<Resource> platform = new ArrayList<Resource>(1);
+ List<DisambiguationReport<Resource>> platform = new ArrayList<DisambiguationReport<Resource>>(1);
Map<Integer, Boolean> selectedResources = getSelectedResources();
for (Map.Entry<Integer, Boolean> selected : selectedResources.entrySet()) {
// if current 'selected' is a platform, ignore the selected things for that platform
- Resource resource = findResource(selected.getKey());
+ DisambiguationReport<Resource> resource = findResource(selected.getKey());
if ((resource != null) && selected.getValue().booleanValue()
&& platformsAndServers.containsKey(resource)) {
- List<Resource> allServers = platformsAndServers.get(resource);
- List<Resource> servers = new ArrayList<Resource>();
- for (Resource server : allServers) {
- if (selectedResources.containsKey(server.getId())
- && selectedResources.get(server.getId()).booleanValue()
- && (server.getInventoryStatus() == InventoryStatus.NEW)) {
+ List<DisambiguationReport<Resource>> allServers = platformsAndServers.get(resource);
+ List<DisambiguationReport<Resource>> servers = new ArrayList<DisambiguationReport<Resource>>();
+ for (DisambiguationReport<Resource> server : allServers) {
+ if (selectedResources.containsKey(server.getOriginal().getId())
+ && selectedResources.get(server.getOriginal().getId()).booleanValue()
+ && (server.getOriginal().getInventoryStatus() == InventoryStatus.NEW)) {
serverCount++;
servers.add(server);
}
}
log.debug("AIQueue ignore: platform=" + platform + "| servers=" + servers);
- discoveryBoss.updateInventoryStatus(subject, platform, servers, InventoryStatus.IGNORED);
+ discoveryBoss.updateInventoryStatus(subject, getOriginals(platform), getOriginals(servers), InventoryStatus.IGNORED);
}
}
@@ -184,35 +196,35 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
try {
// do it one platform at a time so we give each its own transaction
- List<Resource> platform = new ArrayList<Resource>(1);
+ List<DisambiguationReport<Resource>> platform = new ArrayList<DisambiguationReport<Resource>>(1);
Map<Integer, Boolean> selectedResources = getSelectedResources();
for (Map.Entry<Integer, Boolean> selected : selectedResources.entrySet()) {
// if current 'selected' is a platform, unignore its servers; otherwise, just go on to the next
- Resource resource = findResource(selected.getKey());
+ DisambiguationReport<Resource> resource = findResource(selected.getKey());
if ((resource != null) && selected.getValue().booleanValue()
&& platformsAndServers.containsKey(resource)) {
- if (resource.getInventoryStatus() != InventoryStatus.COMMITTED) {
+ if (resource.getOriginal().getInventoryStatus() != InventoryStatus.COMMITTED) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_WARN,
- "Cannot un-ignore servers from an uncommitted platform [" + resource.getName()
+ "Cannot un-ignore servers from an uncommitted platform [" + resource.getOriginal().getName()
+ "]. Aborting.");
break;
}
- List<Resource> allServers = platformsAndServers.get(resource);
- List<Resource> servers = new ArrayList<Resource>();
- for (Resource server : allServers) {
- if (selectedResources.containsKey(server.getId())
- && selectedResources.get(server.getId()).booleanValue()
- && (server.getInventoryStatus() == InventoryStatus.IGNORED)) {
+ List<DisambiguationReport<Resource>> allServers = platformsAndServers.get(resource);
+ List<DisambiguationReport<Resource>> servers = new ArrayList<DisambiguationReport<Resource>>();
+ for (DisambiguationReport<Resource> server : allServers) {
+ if (selectedResources.containsKey(server.getOriginal().getId())
+ && selectedResources.get(server.getOriginal().getId()).booleanValue()
+ && (server.getOriginal().getInventoryStatus() == InventoryStatus.IGNORED)) {
serverCount++;
servers.add(server);
}
}
log.debug("AIQueue unignore: platform=" + platform + "| servers=" + servers);
- discoveryBoss.updateInventoryStatus(subject, platform, servers, InventoryStatus.NEW);
+ discoveryBoss.updateInventoryStatus(subject, getOriginals(platform), getOriginals(servers), InventoryStatus.NEW);
}
}
@@ -235,17 +247,17 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
return FacesContextUtility.getManagedBean(AutoDiscoverySessionUIBean.class).getExpandedMap();
}
- private Resource findResource(Integer id) {
- for (Map.Entry<Resource, List<Resource>> entry : platformsAndServers.entrySet()) {
- Resource platform = entry.getKey();
- List<Resource> servers = entry.getValue();
+ private DisambiguationReport<Resource> findResource(Integer id) {
+ for (Map.Entry<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>> entry : platformsAndServers.entrySet()) {
+ DisambiguationReport<Resource> platform = entry.getKey();
+ List<DisambiguationReport<Resource>> servers = entry.getValue();
- if (platform.getId() == id.intValue()) {
+ if (platform.getOriginal().getId() == id.intValue()) {
return platform;
}
- for (Resource server : servers) {
- if (server.getId() == id.intValue()) {
+ for (DisambiguationReport<Resource> server : servers) {
+ if (server.getOriginal().getId() == id.intValue()) {
return server;
}
}
@@ -269,24 +281,35 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
return EnumSet.of(InventoryStatus.NEW);
}
- private class AutoDiscoveryQueueDataModel extends PagedListDataModel<Resource> {
+ private class AutoDiscoveryQueueDataModel extends PagedListDataModel<DisambiguationReport<Resource>> {
public AutoDiscoveryQueueDataModel(PageControlView view, String beanName) {
super(view, beanName);
}
- @Override
- public PageList<Resource> fetchPage(PageControl pc) {
+ public PageList<DisambiguationReport<Resource>> fetchPage(PageControl pc) {
Subject subject = EnterpriseFacesContextUtility.getSubject();
EnumSet<InventoryStatus> newIgnoredSet = getShowNewIgnoreEnumSet();
platformsAndServers.clear();
PageList<Resource> queuedPlatforms = discoveryBoss.getQueuedPlatforms(subject, newIgnoredSet, pc);
-
- for (Resource platform : queuedPlatforms) {
- List<Resource> queuedServers = new ArrayList<Resource>();
+
+ List<DisambiguationReport<Resource>> disambiguatedQueuedPlatforms =
+ resourceManager.disambiguate(queuedPlatforms,
+ RESOURCE_ID_EXTRACTOR, DefaultDisambiguationUpdateStrategies.getDefault()).getResolution();
+
+ PageList<DisambiguationReport<Resource>> disambiguatedQueuedPlaformsPageList =
+ new PageList<DisambiguationReport<Resource>>(disambiguatedQueuedPlatforms, queuedPlatforms.getTotalSize(), queuedPlatforms.getPageControl());
+
+ for (DisambiguationReport<Resource> platform : disambiguatedQueuedPlatforms) {
+ List<DisambiguationReport<Resource>> queuedServers = new ArrayList<DisambiguationReport<Resource>>();
for (InventoryStatus status : newIgnoredSet) {
- queuedServers.addAll(discoveryBoss.getQueuedPlatformChildServers(subject, status, platform));
+ List<Resource> childServers = discoveryBoss.getQueuedPlatformChildServers(subject, status, platform.getOriginal());
+ List<DisambiguationReport<Resource>> disambiguatedChildServers =
+ resourceManager.disambiguate(childServers, RESOURCE_ID_EXTRACTOR, DefaultDisambiguationUpdateStrategies.getDefault()).getResolution();
+
+
+ queuedServers.addAll(disambiguatedChildServers);
}
platformsAndServers.put(platform, queuedServers);
@@ -296,14 +319,23 @@ public class AutoDiscoveryQueueUIBean extends PagedDataTableUIBean {
// Prepare the expandedPlatforms, maintaining prior state for platforms that were already in the map.
Map<Integer, Boolean> expandedPlatforms = getExpandedPlatforms();
Map<Integer, Boolean> newExpandedPlatforms = new HashMap<Integer, Boolean>();
- for (Resource platform : platformsAndServers.keySet()) {
- Boolean expanded = expandedPlatforms.get(platform.getId());
- newExpandedPlatforms.put(platform.getId(), (expanded != null) ? expanded : Boolean.FALSE);
+ for (DisambiguationReport<Resource> platform : platformsAndServers.keySet()) {
+ Boolean expanded = expandedPlatforms.get(platform.getOriginal().getId());
+ newExpandedPlatforms.put(platform.getOriginal().getId(), (expanded != null) ? expanded : Boolean.FALSE);
}
expandedPlatforms.clear();
expandedPlatforms.putAll(newExpandedPlatforms);
- return queuedPlatforms;
+ return disambiguatedQueuedPlaformsPageList;
+ }
+ }
+
+ private static <T> List<T> getOriginals(List<DisambiguationReport<T>> reports) {
+ List<T> ret = new ArrayList<T>();
+ for(DisambiguationReport<T> report : reports) {
+ ret.add(report.getOriginal());
}
+
+ return ret;
}
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/autodiscovery/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/autodiscovery/ViewAction.java
index 042b784..b8c7c63 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/autodiscovery/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/autodiscovery/ViewAction.java
@@ -38,7 +38,9 @@ import org.apache.struts.tiles.actions.TilesAction;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.util.IntExtractor;
import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.enterprise.gui.legacy.Constants;
import org.rhq.enterprise.gui.legacy.WebUser;
@@ -47,6 +49,8 @@ import org.rhq.enterprise.gui.legacy.util.RequestUtils;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.discovery.DiscoveryBossLocal;
+import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
import org.rhq.enterprise.server.util.LookupUtil;
/**
@@ -56,14 +60,22 @@ public class ViewAction extends TilesAction {
private static final Log log = LogFactory.getLog(ViewAction.class);
+ private static final IntExtractor<Resource> RESOURCE_ID_EXTRACTOR = new IntExtractor<Resource>() {
+ public int extract(Resource object) {
+ return object.getId();
+ }
+ };
+
@Override
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- Map<Resource, List<Resource>> queuedResources = new HashMap<Resource, List<Resource>>();
+ Map<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>> queuedResources = new HashMap<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>>();
try {
DiscoveryBossLocal discoveryBoss = LookupUtil.getDiscoveryBoss();
+ ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
+
WebUser user = SessionUtils.getWebUser(request.getSession());
if (user == null) {
// session timed out, return prematurely
@@ -88,7 +100,7 @@ public class ViewAction extends TilesAction {
}
try {
- queuedResources = discoveryBoss.getQueuedPlatformsAndServers(subject, pageControl);
+ queuedResources = disambiguateQueuedResources(discoveryBoss.getQueuedPlatformsAndServers(subject, pageControl), resourceManager);
// If the queue is empty, check to see if there are ANY agents defined in inventory.
if (queuedResources.isEmpty()) {
@@ -97,19 +109,19 @@ public class ViewAction extends TilesAction {
}
} catch (PermissionException pe) {
// user doesn't have permissions to see or import anything, just show an empty list
- queuedResources = new HashMap<Resource, List<Resource>>();
+ queuedResources = new HashMap<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>>();
}
// as a convienence, check every box for the user
List<Integer> platformsToProcess = new ArrayList<Integer>(queuedResources.size());
List<Integer> serversToProcess = new ArrayList<Integer>();
- for (Resource platform : queuedResources.keySet()) {
- platformsToProcess.add(platform.getId());
+ for (DisambiguationReport<Resource> platform : queuedResources.keySet()) {
+ platformsToProcess.add(platform.getOriginal().getId());
// Add all top-level servers on this platform
- List<Resource> servers1 = queuedResources.get(platform);
- for (Resource server : servers1) {
- serversToProcess.add(server.getId());
+ List<DisambiguationReport<Resource>> servers1 = queuedResources.get(platform);
+ for (DisambiguationReport<Resource> server : servers1) {
+ serversToProcess.add(server.getOriginal().getId());
}
}
@@ -160,4 +172,21 @@ public class ViewAction extends TilesAction {
return null;
}
+
+ private static Map<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>> disambiguateQueuedResources(Map<Resource, List<Resource>> queuedResources, ResourceManagerLocal resourceManager) {
+ Map<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>> ret = new HashMap<DisambiguationReport<Resource>, List<DisambiguationReport<Resource>>>();
+
+ //first disambiguate the platforms
+ List<Resource> platforms = new ArrayList<Resource>(queuedResources.keySet());
+ List<DisambiguationReport<Resource>> disambiguatedPlatforms = resourceManager.disambiguate(platforms, RESOURCE_ID_EXTRACTOR, DefaultDisambiguationUpdateStrategies.getDefault()).getResolution();
+
+ for (DisambiguationReport<Resource> platform : disambiguatedPlatforms) {
+ List<Resource> servers = queuedResources.get(platform.getOriginal());
+ List<DisambiguationReport<Resource>> disambiguatedServers = resourceManager.disambiguate(servers, RESOURCE_ID_EXTRACTOR, DefaultDisambiguationUpdateStrategies.getDefault()).getResolution();
+
+ ret.put(platform, disambiguatedServers);
+ }
+
+ return ret;
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/recentlyApproved/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/recentlyApproved/ViewAction.java
index a35ecb4..55d892d 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/recentlyApproved/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/recentlyApproved/ViewAction.java
@@ -35,23 +35,33 @@ import org.apache.struts.tiles.ComponentContext;
import org.apache.struts.tiles.actions.TilesAction;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite;
+import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.RecentlyApprovedPortletPreferences;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
+import org.rhq.enterprise.server.resource.disambiguation.DisambiguationUpdateStrategy;
import org.rhq.enterprise.server.util.LookupUtil;
public class ViewAction extends TilesAction {
private static final Log log = LogFactory.getLog(ViewAction.class);
+ private static final IntExtractor<RecentlyAddedResourceComposite> RESOURCE_ID_EXTRACTOR = new IntExtractor<RecentlyAddedResourceComposite>() {
+ public int extract(RecentlyAddedResourceComposite object) {
+ return object.getId();
+ }
+ };
+
@Override
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- List<RecentlyAddedResourceComposite> platformList = new ArrayList<RecentlyAddedResourceComposite>();
+ List<DisambiguatedRecentlyAddedResourceComposite> platformList = new ArrayList<DisambiguatedRecentlyAddedResourceComposite>();
try {
ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
@@ -74,13 +84,15 @@ public class ViewAction extends TilesAction {
ts = System.currentTimeMillis() - (range * 60 * 60 * 1000);
}
- platformList = resourceManager.findRecentlyAddedPlatforms(subject, ts, recentlyApprovedPreferences.range);
+ platformList = DisambiguatedRecentlyAddedResourceComposite.fromResolution(resourceManager.disambiguate(
+ resourceManager.findRecentlyAddedPlatforms(subject, ts, recentlyApprovedPreferences.range),
+ RESOURCE_ID_EXTRACTOR, DefaultDisambiguationUpdateStrategies.getDefault()).getResolution());
- Map<Integer, RecentlyAddedResourceComposite> platformMap;
- platformMap = new HashMap<Integer, RecentlyAddedResourceComposite>();
+ Map<Integer, DisambiguatedRecentlyAddedResourceComposite> platformMap;
+ platformMap = new HashMap<Integer, DisambiguatedRecentlyAddedResourceComposite>();
- for (RecentlyAddedResourceComposite platform : platformList) {
- platformMap.put(platform.getId(), platform);
+ for (DisambiguatedRecentlyAddedResourceComposite platform : platformList) {
+ platformMap.put(platform.getOriginal().getId(), platform);
}
// Set the show servers flag on all expanded platforms.
@@ -95,11 +107,13 @@ public class ViewAction extends TilesAction {
removeExpandedPlatforms.add(expandedPlatform);
continue;
}
- RecentlyAddedResourceComposite miniPlatform = platformMap.get(platformId);
+ DisambiguatedRecentlyAddedResourceComposite miniPlatform = platformMap.get(platformId);
if (miniPlatform != null) {
- miniPlatform.setShowChildren(true);
- miniPlatform.setChildren(resourceManager
- .findRecentlyAddedServers(subject, ts, platformId.intValue()));
+ miniPlatform.getOriginal().setShowChildren(true);
+ miniPlatform.setChildren(DisambiguatedRecentlyAddedResourceComposite.fromResolution(
+ resourceManager.disambiguate(resourceManager
+ .findRecentlyAddedServers(subject, ts, platformId.intValue()), RESOURCE_ID_EXTRACTOR,
+ DefaultDisambiguationUpdateStrategies.getDefault()).getResolution()));
} else {
removeExpandedPlatforms.add(expandedPlatform);
}
@@ -125,4 +139,32 @@ public class ViewAction extends TilesAction {
return null;
}
+
+ public static class DisambiguatedRecentlyAddedResourceComposite extends DisambiguationReport<RecentlyAddedResourceComposite> {
+ private static final long serialVersionUID = 1L;
+
+ private List<DisambiguatedRecentlyAddedResourceComposite> children;
+
+ public static List<DisambiguatedRecentlyAddedResourceComposite> fromResolution(List<DisambiguationReport<RecentlyAddedResourceComposite>> resolution) {
+ List<DisambiguatedRecentlyAddedResourceComposite> ret = new ArrayList<DisambiguatedRecentlyAddedResourceComposite>();
+ for(DisambiguationReport<RecentlyAddedResourceComposite> report : resolution) {
+ ret.add(new DisambiguatedRecentlyAddedResourceComposite(report));
+ }
+
+ return ret;
+ }
+
+ public DisambiguatedRecentlyAddedResourceComposite(DisambiguationReport<RecentlyAddedResourceComposite> report) {
+ super(report.getOriginal(), report.getParents(), report.getResourceType());
+ children = new ArrayList<DisambiguatedRecentlyAddedResourceComposite>();
+ }
+
+ public List<DisambiguatedRecentlyAddedResourceComposite> getChildren() {
+ return children;
+ }
+
+ public void setChildren(List<DisambiguatedRecentlyAddedResourceComposite> children) {
+ this.children = children;
+ }
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/autoDiscovery/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/autoDiscovery/View.jsp
index 4b426f3..6ab5e46 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/autoDiscovery/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/autoDiscovery/View.jsp
@@ -6,6 +6,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/WEB-INF/tld/hq.tld" prefix="hq" %>
+<%@ taglib uri="/WEB-INF/tld/display.tld" prefix="display" %>
<div class="effectsPortlet">
<!-- Content Block Contents -->
@@ -152,45 +153,40 @@ function collapseExpandPlatform(platformId)
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<c:set var="platform" value="${resource.key}"/>
<tr class="ListRowHeader">
- <td nowrap="nowrap" class="ListCell" align="left" width="5%"><a href="." onclick="return false;"><img id="arrow_${platform.id}" align="left" vspace="4" src="/images/plus.gif" onclick="collapseExpandPlatform('${platform.id}')"/></a><html:multibox property="platformsToProcess" value="${platform.id}" onclick="setAllServers(AIQueueForm,this);"/> </td>
+ <td nowrap="nowrap" class="ListCell" align="left" width="5%"><a href="." onclick="return false;"><img id="arrow_${platform.original.id}" align="left" vspace="4" src="/images/plus.gif" onclick="collapseExpandPlatform('${platform.original.id}')"/></a><html:multibox property="platformsToProcess" value="${platform.original.id}" onclick="setAllServers(AIQueueForm,this);"/> </td>
<td class="ListCell" align="left">
- <c:out value="${platform.name}"/>
- <c:choose>
- <c:when test="${empty platform.description}">
- - <c:out value="${platform.resourceType.name}"/>
- </c:when>
- <c:otherwise>
- - <c:out value="${platform.description}"/>
- </c:otherwise>
- </c:choose>
+ <display:disambiguatedResourceName resourceName="${platform.original.name}" disambiguationReport="${platform}" nameAsLink="false"/>
+ <c:if test="${not empty platform.original.description}">
+ - <c:out value="${platform.original.description}"/>
+ </c:if>
</td>
- <td nowrap="nowrap" class="ListCell" align="right"><c:out value="${platform.inventoryStatus}"/></td>
+ <td nowrap="nowrap" class="ListCell" align="right"><c:out value="${platform.original.inventoryStatus}"/></td>
</tr>
</table>
- <span style="display: none" id="serverOnPlatform_${platform.id}">
+ <span style="display: none" id="serverOnPlatform_${platform.original.id}">
<table width="100%" cellpadding="0" cellspacing="0" border="0" >
<c:forEach items="${resource.value}" var="server">
<hq:constant classname="org.rhq.core.domain.resource.InventoryStatus" symbol="NEW" var="status_new"/>
- <c:if test="${server.inventoryStatus == status_new}">
+ <c:if test="${server.original.inventoryStatus == status_new}">
<tr class="ListRow" >
- <hq:shortenPath property="shortenedInstallPath" value="${server.resourceKey}" preChars="20" postChars="25"/>
- <td nowrap="nowrap" class="ListCell" align="left" width="5%"> <html:multibox property="serversToProcess" value="${server.id}" onclick="setPlatformCheckbox(AIQueueForm,this);"/></td>
- <td nowrap="nowrap" class="ListCell" align="left"><hq:removePrefix prefix="IGNOREME__${platform.name}" value="${server.name}"/></td>
+ <hq:shortenPath property="shortenedInstallPath" value="${server.original.resourceKey}" preChars="20" postChars="25"/>
+ <td nowrap="nowrap" class="ListCell" align="left" width="5%"> <html:multibox property="serversToProcess" value="${server.original.id}" onclick="setPlatformCheckbox(AIQueueForm,this);"/></td>
+ <td nowrap="nowrap" class="ListCell" align="left"><display:disambiguatedResourceName resourceName="${server.original.name}" disambiguationReport="${server}" nameAsLink="false"/></td>
<td nowrap="nowrap" class="ListCell" align="left">
<c:choose>
<c:when test="${wasShortened}">
<a href="." onclick="return false;" class="ListCellPopup2">
<c:out value="${shortenedInstallPath}"/>
- <span><c:out value="${server.resourceKey}"/></span>
+ <span><c:out value="${server.original.resourceKey}"/></span>
</a>
</c:when>
<c:otherwise>
- <c:out value="${server.resourceKey}"/>
+ <c:out value="${server.original.resourceKey}"/>
</c:otherwise>
</c:choose>
</td>
- <td nowrap="nowrap" class="ListCell" align="right"><c:out value="${server.inventoryStatus}"/></td>
+ <td nowrap="nowrap" class="ListCell" align="right"><c:out value="${server.original.inventoryStatus}"/></td>
</tr>
</c:if>
</c:forEach>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
index 4970c00..24ccfe7 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
@@ -25,41 +25,38 @@
<tr>
<td width="3%" class="ListHeaderInactive"> </td>
<td width="37%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
- <td width="30%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.Type"/></td>
<td width="30%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.DateTime"/></td>
</tr>
<c:forEach items="${recentlyApproved}" var="platform">
<tr class="ListRow">
<td class="ListCell">
<c:choose>
- <c:when test="${platform.showChildren}">
+ <c:when test="${platform.original.showChildren}">
<a href="." onclick="RAListForm.platformId.value=<c:out
- value="${platform.id}"/>;
+ value="${platform.original.id}"/>;
RAListForm.submit(); return false;">
<html:img page="/images/minus.gif" border="0"/>
</a>
</c:when>
<c:otherwise>
<a href="." onclick="RAListForm.platformId.value=<c:out
- value="${platform.id}"/>;
+ value="${platform.original.id}"/>;
RAListForm.submit(); return false;">
<html:img page="/images/plus.gif" border="0"/>
</a>
</c:otherwise>
</c:choose>
</td>
- <td class="ListCell" align="left"><html:link page="/rhq/resource/summary/overview.xhtml?id=${platform.id}"><c:out value="${platform.name}"/> </html:link></td>
- <td class="ListCell" align="left"><c:out value="${platform.resourceTypeName}"/></td>
- <td class="ListCell" align="left"><hq:dateFormatter value="${platform.ctime}"/> </td>
+ <td class="ListCell" align="left"><display:disambiguatedResourceName disambiguationReport="${platform}" resourceName="${platform.original.name}" resourceId="${platform.original.id}"/></td>
+ <td class="ListCell" align="left"><hq:dateFormatter value="${platform.original.ctime}"/> </td>
</tr>
- <c:if test="${platform.showChildren}">
+ <c:if test="${platform.original.showChildren}">
<!-- Show the platform's servers -->
<c:forEach items="${platform.children}" var="server">
<tr class="ListRow">
<td class="ListCell"></td>
- <td class="ListCell" align="left"><html:link page="/rhq/resource/summary/overview.xhtml?id=${server.id}"><c:out value="${server.name}"/> </html:link></td>
- <td class="ListCell" align="left"><c:out value="${server.resourceTypeName}"/></td>
- <td class="ListCell" align="left"><hq:dateFormatter value="${server.ctime}"/> </td>
+ <td class="ListCell" align="left"><display:disambiguatedResourceName disambiguationReport="${server}" resourceName="${server.original.name}" resourceId="${server.original.id}"/></td>
+ <td class="ListCell" align="left"><hq:dateFormatter value="${server.original.ctime}"/> </td>
</tr>
</c:forEach> <!-- For each server -->
</c:if>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/discovery/queue.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/discovery/queue.xhtml
index 0025417..56ab115 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/discovery/queue.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/discovery/queue.xhtml
@@ -164,21 +164,21 @@
</f:facet>
<h:commandLink action="#{AutoDiscoverySessionUIBean.collapse}"
- rendered="#{AutoDiscoverySessionUIBean.expandedMap[platformQueueItem.id]}">
- <f:param name="platformId" value="#{platformQueueItem.id}"/>
+ rendered="#{AutoDiscoverySessionUIBean.expandedMap[platformQueueItem.original.id]}">
+ <f:param name="platformId" value="#{platformQueueItem.original.id}"/>
<h:graphicImage value="/images/minus.gif" />
</h:commandLink>
<h:commandLink action="#{AutoDiscoverySessionUIBean.expand}"
- rendered="#{!AutoDiscoverySessionUIBean.expandedMap[platformQueueItem.id]}">
- <f:param name="platformId" value="#{platformQueueItem.id}"/>
+ rendered="#{!AutoDiscoverySessionUIBean.expandedMap[platformQueueItem.original.id]}">
+ <f:param name="platformId" value="#{platformQueueItem.original.id}"/>
<h:graphicImage value="/images/plus.gif" />
</h:commandLink>
<h:selectBooleanCheckbox id="checkbox_platform"
- value="#{AutoDiscoverySessionUIBean.selectedResources[platformQueueItem.id]}"
- onclick="checkPlatform(this, #{platformQueueItem.id})" />
+ value="#{AutoDiscoverySessionUIBean.selectedResources[platformQueueItem.original.id]}"
+ onclick="checkPlatform(this, #{platformQueueItem.original.id})" />
<input type="hidden"
- name="platform_servers_#{platformQueueItem.id}"
- id="platform_servers_#{platformQueueItem.id}"
+ name="platform_servers_#{platformQueueItem.original.id}"
+ id="platform_servers_#{platformQueueItem.original.id}"
value="-1" />
</rich:column>
@@ -188,30 +188,32 @@
<h:outputText styleClass="headerText" value="ID" />
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{platformQueueItem.id}"/>
+ <h:outputText value="#{platformQueueItem.original.id}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="res.name">
- <h:outputText styleClass="headerText" value="Resource Name" />
+ <h:outputText styleClass="headerText" value="Resource" />
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{platformQueueItem.name}" />
+
+ <onc:disambiguatedResourceName resourceName="#{platformQueueItem.original.name}"
+ resourceId="#{platformQueueItem.original.id}" disambiguationReport="#{platformQueueItem}" nameAsLink="false" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText styleClass="headerText" value="Key" />
</f:facet>
- <h:outputText value="#{platformQueueItem.resourceKey}" />
+ <h:outputText value="#{platformQueueItem.original.resourceKey}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText styleClass="headerText" value="Description" />
</f:facet>
- <h:outputText value="#{platformQueueItem.description}"/>
+ <h:outputText value="#{platformQueueItem.original.description}"/>
</rich:column>
<rich:column>
@@ -220,7 +222,7 @@
<h:outputText styleClass="headerText" value="Date Detected" />
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{platformQueueItem.ctime}">
+ <h:outputText value="#{platformQueueItem.original.ctime}">
<f:converter converterId="UserDateTimeConverter" />
</h:outputText>
</rich:column>
@@ -231,7 +233,7 @@
<h:outputText styleClass="headerText" value="Status" />
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{platformQueueItem.inventoryStatus}"/>
+ <h:outputText value="#{platformQueueItem.original.inventoryStatus}"/>
</rich:column>
<rich:subTable value="#{AutoDiscoveryQueueUIBean.platformsAndServers[platformQueueItem]}"
@@ -239,38 +241,39 @@
rowClasses="ListRow"
width="100%"
columnsWidth="1%"
- rendered="#{AutoDiscoverySessionUIBean.expandedMap[platformQueueItem.id]}">
+ rendered="#{AutoDiscoverySessionUIBean.expandedMap[platformQueueItem.original.id]}">
<rich:column>
<h:selectBooleanCheckbox id="checkbox_server"
- onclick="checkServer(this, #{platformQueueItem.id}, #{serverQueueItem.id})"
- value="#{AutoDiscoverySessionUIBean.selectedResources[serverQueueItem.id]}"
+ onclick="checkServer(this, #{platformQueueItem.original.id}, #{serverQueueItem.original.id})"
+ value="#{AutoDiscoverySessionUIBean.selectedResources[serverQueueItem.original.id]}"
style="float:right;" />
</rich:column>
<rich:column rendered="#{param.debug}">
- <h:outputText value="#{serverQueueItem.id}"/>
+ <h:outputText value="#{serverQueueItem.original.id}"/>
</rich:column>
<rich:column>
- <h:outputText value="#{serverQueueItem.name}" />
+ <onc:disambiguatedResourceName resourceName="#{serverQueueItem.original.name}"
+ resourceId="#{serverQueueItem.original.id}" disambiguationReport="#{serverQueueItem}" nameAsLink="false" />
</rich:column>
<rich:column>
- <h:outputText value="#{serverQueueItem.resourceKey}" />
+ <h:outputText value="#{serverQueueItem.original.resourceKey}" />
</rich:column>
<rich:column>
- <h:outputText value="#{serverQueueItem.description}" />
+ <h:outputText value="#{serverQueueItem.original.description}" />
</rich:column>
<rich:column>
- <h:outputText value="#{serverQueueItem.ctime}">
+ <h:outputText value="#{serverQueueItem.original.ctime}">
<f:converter converterId="UserDateTimeConverter" />
</h:outputText>
</rich:column>
<rich:column>
- <h:outputText value="#{serverQueueItem.inventoryStatus}" />
+ <h:outputText value="#{serverQueueItem.original.inventoryStatus}" />
</rich:column>
</rich:subTable>
commit 62411f35ab0bed414e6dcb1a5bed13b59bc87cfe
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 31 17:14:03 2010 +0200
BZ 592970 - new icon set enables unknown availability state to be shown in the tree.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/AutoGroupCompositeFlyweight.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/AutoGroupCompositeFlyweight.java
index f6c442b..dccbbaa 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/AutoGroupCompositeFlyweight.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/AutoGroupCompositeFlyweight.java
@@ -27,9 +27,17 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
+import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.group.composite.AutoGroupComposite;
/**
+ * This class is mostly a copy of {@link AutoGroupComposite} but is linked together
+ * with {@link ResourceFlyweight}, {@link ResourceTypeFlyweight} and {@link ResourceSubCategoryFlyweight} instances as opposed to
+ * their fully featured counterparts which is what makes this class flyweight.
+ * <p>
+ * In addition to the {@link AutoGroupComposite}, this class contains some more properties used
+ * in the UI layer.
+ *
* @see AutoGroupComposite
*
* @author Lukas Krejci
@@ -46,7 +54,9 @@ public class AutoGroupCompositeFlyweight implements Serializable {
private boolean mainResource;
private ResourceFlyweight parentResource;
private String name;
-
+ private MembersAvailabilityHint membersAvailabilityHint;
+ private MembersCategoryHint membersCategoryHint;
+
private List<ResourceFlyweight> resources;
public AutoGroupCompositeFlyweight(AutoGroupCompositeFlyweight other) {
@@ -154,6 +164,22 @@ public class AutoGroupCompositeFlyweight implements Serializable {
return name;
}
+ public MembersAvailabilityHint getMembersAvailabilityHint() {
+ return membersAvailabilityHint;
+ }
+
+ public void setMembersAvailabilityHint(MembersAvailabilityHint membersAvailabilityHint) {
+ this.membersAvailabilityHint = membersAvailabilityHint;
+ }
+
+ public MembersCategoryHint getMembersCategoryHint() {
+ return membersCategoryHint;
+ }
+
+ public void setMembersCategoryHint(MembersCategoryHint membersCategoryHint) {
+ this.membersCategoryHint = membersCategoryHint;
+ }
+
@Override
public String toString() {
return "AutoGroupCompositeFlyweight[" + ((this.resourceType != null) ? "Resource: " : "Subcategory: ")
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersAvailabilityHint.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersAvailabilityHint.java
new file mode 100644
index 0000000..325461c
--- /dev/null
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersAvailabilityHint.java
@@ -0,0 +1,68 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.core.domain.resource.flyweight;
+
+import org.rhq.core.domain.measurement.AvailabilityType;
+
+/**
+ * Hints about the availability of resources in an {@link AutoGroupCompositeFlyweight}.
+ *
+ * @author Lukas Krejci
+ */
+public enum MembersAvailabilityHint {
+
+ /**
+ * All member resources are up.
+ */
+ UP,
+
+ /**
+ * Some member resources are down.
+ */
+ DOWN,
+
+ /**
+ * Some member resources don't have a known availability state.
+ */
+ UNKNOWN;
+
+ public static MembersAvailabilityHint fromAvailabilityType(AvailabilityType availType) {
+ if (availType == null) {
+ return UNKNOWN;
+ }
+
+ switch (availType) {
+ case UP:
+ return UP;
+ case DOWN:
+ return DOWN;
+ default:
+ return UNKNOWN;
+ }
+ }
+
+ public String toString() {
+ return name().toLowerCase();
+ }
+}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java
new file mode 100644
index 0000000..05b922b
--- /dev/null
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/flyweight/MembersCategoryHint.java
@@ -0,0 +1,52 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.core.domain.resource.flyweight;
+
+import org.rhq.core.domain.resource.ResourceCategory;
+
+/**
+ * Hints about the category of resources contained in a {@link AutoGroupCompositeFlyweight}.
+ *
+ * @author Lukas Krejci
+ */
+public enum MembersCategoryHint {
+ PLATFORM, SERVER, SERVICE, MIXED, NONE;
+
+ public static MembersCategoryHint fromResourceCategory(ResourceCategory category) {
+ switch (category) {
+ case PLATFORM:
+ return PLATFORM;
+ case SERVER:
+ return SERVER;
+ case SERVICE:
+ return SERVICE;
+ default:
+ return null;
+ }
+ }
+
+ public String toString() {
+ return name().toLowerCase();
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
index 2f1bd6f..269360c 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceTreeModelUIBean.java
@@ -33,6 +33,8 @@ import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.Agent;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.flyweight.AutoGroupCompositeFlyweight;
+import org.rhq.core.domain.resource.flyweight.MembersAvailabilityHint;
+import org.rhq.core.domain.resource.flyweight.MembersCategoryHint;
import org.rhq.core.domain.resource.flyweight.ResourceFlyweight;
import org.rhq.core.domain.resource.flyweight.ResourceSubCategoryFlyweight;
import org.rhq.core.domain.resource.flyweight.ResourceTypeFlyweight;
@@ -172,7 +174,12 @@ public class ResourceTreeModelUIBean {
Map<Object, List<ResourceFlyweight>> children = new HashMap<Object, List<ResourceFlyweight>>();
log.debug("composite parent" + compositeParent);
if (compositeParent != null) {
+
+ MembersCategoryHint membersCategory = MembersCategoryHint.NONE;
+ MembersAvailabilityHint membersAvailabilityHint = MembersAvailabilityHint.UP;
+
for (ResourceFlyweight res : compositeParent.getParentResource().getChildResources()) {
+ boolean process = false;
if (compositeParent.getSubcategory() != null) {
// parent is a sub category
if (res.getResourceType().getSubCategory() != null
@@ -182,19 +189,55 @@ public class ResourceTreeModelUIBean {
// A subSubCategory in a subcategory
addToList(children, res.getResourceType().getSubCategory(), res);
+ process = true;
} else if (compositeParent.getSubcategory().equals(res.getResourceType().getSubCategory())
&& compositeParent.getParentResource().equals(res.getParentResource())) {
// Direct entries in a subcategory... now group them by autogroup (type)
addToList(children, res.getResourceType(), res);
+ process = true;
}
} else if (compositeParent.getResourceType() != null) {
if (compositeParent.getResourceType().equals(res.getResourceType())
&& compositeParent.getParentResource().getId() == res.getParentResource().getId()) {
addToList(children, res.getResourceType(), res);
+ process = true;
+ }
+ }
+
+ if (process) {
+ //amend the overall category of all the members of the auto group.
+ switch (membersCategory) {
+ case NONE: //this is the first child, so let's use its category as a starting point
+ membersCategory = MembersCategoryHint.fromResourceCategory(res.getResourceType().getCategory());
+ break;
+ case MIXED: //this is the "final" state. The children type is not going to change from this.
+ break;
+ default: //check if this child has the same category as its previous siblings.
+ if (MembersCategoryHint.fromResourceCategory(res.getResourceType().getCategory()) != membersCategory) {
+ membersCategory = MembersCategoryHint.MIXED;
+ }
+ }
+
+ //amend the availability hint of the autogroup. If all resources are up, the hint is UP, if some of the resources
+ //are down, the hint is DOWN, if some of the resources' avail state is unknown, the hint is UNKNOWN.
+ //The down state has the highest priority.
+ switch (membersAvailabilityHint) {
+ case UP:
+ membersAvailabilityHint = MembersAvailabilityHint.fromAvailabilityType(res.getCurrentAvailability().getAvailabilityType());
+ break;
+ case UNKNOWN:
+ if (res.getCurrentAvailability().getAvailabilityType() == AvailabilityType.DOWN) {
+ membersAvailabilityHint = MembersAvailabilityHint.DOWN;
+ }
+ break;
+ case DOWN:; //a "terminal" state... if some resource is down, the overall state is going to be down as that is the most important information.
}
}
}
+
+ compositeParent.setMembersCategoryHint(membersCategory);
+ compositeParent.setMembersAvailabilityHint(membersAvailabilityHint);
}
AutoGroupCompositeFlyweight compositeParentNode = (AutoGroupCompositeFlyweight) parentNode.getData();
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_16.png
deleted file mode 100644
index 4254cdf..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_24.png
deleted file mode 100644
index 9bf7418..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_16.png
new file mode 100644
index 0000000..35a748c
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_24.png
new file mode 100644
index 0000000..3237333
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_16.png
new file mode 100644
index 0000000..aaefc27
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_24.png
new file mode 100644
index 0000000..51e0a5e
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_16.png
new file mode 100644
index 0000000..734d98b
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_24.png
new file mode 100644
index 0000000..d6b06e0
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_server_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_16.png
new file mode 100644
index 0000000..2cfd4db
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_24.png
new file mode 100644
index 0000000..25144f1
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_16.png
new file mode 100644
index 0000000..f376733
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_24.png
new file mode 100644
index 0000000..8e81dc5
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_16.png
new file mode 100644
index 0000000..3bd2c67
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_24.png
new file mode 100644
index 0000000..b310d15
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Auto_group_service_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_16.png
index af73da1..7fd96d4 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_24.png
index 66627f8..ec5fbca 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_16.png
new file mode 100644
index 0000000..8318b3d
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_24.png
new file mode 100644
index 0000000..9bf9597
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_16.png
index 223b0b3..ac410ca 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_24.png
index fb50a9d..deb9e94 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Platform_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png
index 69a4d9f..57adb89 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png
index 660e4b8..06d0e26 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png
new file mode 100644
index 0000000..e911512
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png
new file mode 100644
index 0000000..1d94a83
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png
index 132e4ce..c76e3eb 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png
index 83da6ad..88ca45b 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Server_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_16.png
index d09143b..9240927 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_24.png
index 24b1d98..bdc8532 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_16.png
new file mode 100644
index 0000000..771ccff
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_24.png
new file mode 100644
index 0000000..5356ae7
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_16.png
index bbebc5c..0ef05e9 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_16.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_24.png
index 7df5599..6babc43 100644
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_24.png and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Service_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_16.png
deleted file mode 100644
index de32196..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_16.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_24.png
deleted file mode 100644
index 5566923..0000000
Binary files a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_24.png and /dev/null differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_16.png
new file mode 100644
index 0000000..c75e7a8
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_24.png
new file mode 100644
index 0000000..321ea56
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_16.png
new file mode 100644
index 0000000..63b2050
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_24.png
new file mode 100644
index 0000000..b9d3d88
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_unknown_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_16.png
new file mode 100644
index 0000000..4678909
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_24.png
new file mode 100644
index 0000000..b9b400d
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_server_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_16.png
new file mode 100644
index 0000000..c75e7a8
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_24.png
new file mode 100644
index 0000000..321ea56
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_down_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_unknown_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_unknown_16.png
new file mode 100644
index 0000000..63b2050
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_unknown_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_16.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_16.png
new file mode 100644
index 0000000..4678909
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_16.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_24.png b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_24.png
new file mode 100644
index 0000000..b9b400d
Binary files /dev/null and b/modules/enterprise/gui/portal-war/src/main/webapp/images/icons/Subcategory_service_up_24.png differ
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/navigation/ResourcesTree.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/navigation/ResourcesTree.xhtml
index 5275d13..2b1af7d 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/navigation/ResourcesTree.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/resource/navigation/ResourcesTree.xhtml
@@ -65,8 +65,8 @@
<rich:treeNode type="AutoGroupComposite"
iconCollapsed="/images/icons/dir_closed.png"
iconExpanded="/images/icons/dir_open.png"
- iconLeaf="/images/icons/#{resourceTreeItem.data.resourceType == null? 'Subcategory' : 'Auto_group'}_16.png"
- icon="/images/icons/#{resourceTreeItem.data.resourceType == null? 'Subcategory' : 'Auto_group'}_16.png">
+ iconLeaf="/images/icons/#{resourceTreeItem.data.resourceType == null? 'Subcategory' : 'Auto_group'}_#{resourceTreeItem.data.membersCategoryHint}_#{resourceTreeItem.data.membersAvailabilityHint}_16.png"
+ icon="/images/icons/#{resourceTreeItem.data.resourceType == null? 'Subcategory' : 'Auto_group'}_#{resourceTreeItem.data.membersCategoryHint}_#{resourceTreeItem.data.membersAvailabilityHint}_16.png">
<a4j:support event="oncontextmenu" reRender="autoGroupMenu" timeout="5000"
disableDefault="true" status="commonStatus" limitToList="true"
@@ -91,10 +91,10 @@
</rich:treeNode>
<!-- Tree Node supporting context menu -->
<rich:treeNode type="Resource"
- icon="/images/icons/#{resourceTreeItem.data.resourceType.category}_#{resourceTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up'}_16.png"
+ icon="/images/icons/#{resourceTreeItem.data.resourceType.category}_#{resourceTreeItem.data.currentAvailability.availabilityType == null ? 'unknown' : (resourceTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up')}_16.png"
iconCollapsed="/images/icons/dir_closed.png"
iconExpanded="/images/icons/dir_open.png"
- iconLeaf="/images/icons/#{resourceTreeItem.data.resourceType.category}_#{resourceTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up'}_16.png">
+ iconLeaf="/images/icons/#{resourceTreeItem.data.resourceType.category}_#{resourceTreeItem.data.currentAvailability.availabilityType == null ? 'unknown' : (resourceTreeItem.data.currentAvailability.availabilityType == 'DOWN' ? 'down' : 'up')}_16.png">
<a4j:support event="oncontextmenu" reRender="resourceMenu" timeout="5000"
disableDefault="true" status="commonStatus" limitToList="true"
ajaxSingle="true" oncomplete="#{rich:component('resourceMenu')}.show(event, {})">
commit 0360ca3af85e2c55a2cdefd2347ec0c325444903
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 19 19:52:53 2010 +0200
introduce the disambiguation update strategy as a paramter to disambiguate method in ResourceManagerBean so that UI code can influence the disambiguation.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java
index 36c7f88..8999775 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java
@@ -29,6 +29,8 @@ import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
+import org.rhq.enterprise.server.resource.disambiguation.DisambiguationUpdateStrategy;
import org.rhq.enterprise.server.util.LookupUtil;
/**
@@ -37,7 +39,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
* <p>
* This class implements the {@link PagedListDataModel#fetchPage(PageControl)} method and defers
* the actual loading of the data to a new {@link #fetchDataForPage(PageControl)} method. The result
- * of that call is supplied to the {@link ResourceManagerLocal#disambiguate(java.util.List, boolean, IntExtractor)}
+ * of that call is supplied to the {@link ResourceManagerLocal#disambiguate(java.util.List, IntExtractor, DisambiguationUpdateStrategy)}
* method and the disambiguated results are then returned from the {@link #fetchPage(PageControl)} method.
*
* @author Lukas Krejci
@@ -64,8 +66,8 @@ public abstract class ResourceNameDisambiguatingPagedListDataModel<T> extends
public PageList<DisambiguationReport<T>> fetchPage(PageControl pc) {
PageList<T> data = fetchDataForPage(pc);
- ResourceNamesDisambiguationResult<T> disambiguation = resourceManager.disambiguate(data, alwaysIncludeParents,
- getResourceIdExtractor());
+ ResourceNamesDisambiguationResult<T> disambiguation = resourceManager.disambiguate(data, getResourceIdExtractor(),
+ DefaultDisambiguationUpdateStrategies.getDefault());
return new PageList<DisambiguationReport<T>>(disambiguation.getResolution(), data.getTotalSize(), data
.getPageControl());
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
index 0837143..41e710f 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
@@ -28,6 +28,7 @@ import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
/**
* A utility class to provide page lists of disambiguated resource lists for the
@@ -42,7 +43,7 @@ public class DisambiguatedResourceListUtil {
}
public static <T> PageList<DisambiguationReport<T>> disambiguate(ResourceManagerLocal resourceManager, PageList<T> results, IntExtractor<T> resourceIdExtractor) {
- ResourceNamesDisambiguationResult<T> result = resourceManager.disambiguate(results, true, resourceIdExtractor);
+ ResourceNamesDisambiguationResult<T> result = resourceManager.disambiguate(results, resourceIdExtractor, DefaultDisambiguationUpdateStrategies.getDefault());
return new PageList<DisambiguationReport<T>>(result.getResolution(), results.getTotalSize(), results.getPageControl());
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
index 1ce8845..afe2e3b 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
@@ -31,6 +31,7 @@ import org.rhq.core.domain.util.PageControl;
import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
import org.rhq.enterprise.server.util.LookupUtil;
/**
@@ -78,6 +79,6 @@ public class ResourceSelectUIBean {
result = resourceManager.findResourceComposites(EnterpriseFacesContextUtility.getSubject(), null, null, null,
null, pref, true, pc);
- return resourceManager.disambiguate(result, false, RESOURCE_ID_EXTRACTOR).getResolution();
+ return resourceManager.disambiguate(result, RESOURCE_ID_EXTRACTOR, DefaultDisambiguationUpdateStrategies.getDefault()).getResolution();
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index dbc0ffd..730755e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -122,6 +122,7 @@ import org.rhq.enterprise.server.jaxb.adapter.ResourceListAdapter;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
import org.rhq.enterprise.server.resource.disambiguation.DisambiguationPolicy;
+import org.rhq.enterprise.server.resource.disambiguation.DisambiguationUpdateStrategy;
import org.rhq.enterprise.server.resource.disambiguation.Disambiguator;
import org.rhq.enterprise.server.resource.disambiguation.MutableDisambiguationReport;
import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
@@ -2103,11 +2104,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
return (findChildResources(subject, parentResource, pageControl));
}
- public <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwaysIncludeParent,
- IntExtractor<? super T> extractor) {
- //TODO the alwaysIncludeParents is obsolete and ignored
- //DefaultDisambiguationUpdateStrategies strategy = DefaultDisambiguationUpdateStrategies.KEEP_PARENTS_TO_TOPMOST_SERVERS;
- DefaultDisambiguationUpdateStrategies strategy = DefaultDisambiguationUpdateStrategies.KEEP_ALL_PARENTS;
- return Disambiguator.disambiguate(results, strategy, extractor, entityManager);
+ public <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, IntExtractor<? super T> extractor,
+ DisambiguationUpdateStrategy updateStrategy) {
+ return Disambiguator.disambiguate(results, updateStrategy, extractor, entityManager);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
index 9ce98c3..448bb78 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
@@ -36,7 +36,6 @@ import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceError;
import org.rhq.core.domain.resource.ResourceErrorType;
import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite;
import org.rhq.core.domain.resource.composite.ResourceAvailabilitySummary;
import org.rhq.core.domain.resource.composite.ResourceComposite;
@@ -51,6 +50,7 @@ import org.rhq.core.domain.resource.group.composite.AutoGroupComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.IntExtractor;
+import org.rhq.enterprise.server.resource.disambiguation.DisambiguationUpdateStrategy;
import org.rhq.enterprise.server.resource.disambiguation.Disambiguator;
import org.rhq.enterprise.server.resource.group.ResourceGroupNotFoundException;
@@ -458,6 +458,6 @@ public interface ResourceManagerLocal {
* @see Disambiguator#disambiguate(List, boolean, IntExtractor, javax.persistence.EntityManager)
* @return the disambiguation result or null on error
*/
- <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwayIncludeParent,
- IntExtractor<? super T> resourceIdExtractor);
+ <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, IntExtractor<? super T> resourceIdExtractor,
+ DisambiguationUpdateStrategy updateStrategy);
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java
index c5553e3..c11c3dd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java
@@ -180,4 +180,8 @@ public enum DefaultDisambiguationUpdateStrategies implements DisambiguationUpdat
resource.resourceType.plugin = null;
}
}
+
+ public static DefaultDisambiguationUpdateStrategies getDefault() {
+ return DefaultDisambiguationUpdateStrategies.KEEP_ALL_PARENTS;
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
index c2a11a6..4674c1e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
@@ -27,6 +27,10 @@ import java.util.EnumSet;
/**
* Defines a strategy for updating a results list with the disambiguation information.
+ * <p>
+ * See {@link DefaultDisambiguationUpdateStrategies} for a couple of implemented strategies.
+ *
+ * @see DefaultDisambiguationUpdateStrategies
*
* @author Lukas Krejci
*/
commit 80b360465252621770543e6ee4d7b790ab856f03
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 19 15:19:35 2010 +0200
removing the deprecated methods from ResourceNamesDisambiguationResult + adapted quick search in menu to use the new style disambig.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
index 6d9b93a..197378d 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
@@ -136,16 +136,6 @@ public class DisambiguationReport<T> implements Serializable {
return parents;
}
- @Deprecated
- public String getResourceTypeName() {
- return resourceType.getName();
- }
-
- @Deprecated
- public String getResourceTypePluginName() {
- return resourceType.getPlugin();
- }
-
/**
* @return the ResourceType of the resource represented by the {@link #getOriginal()}
* or null if type disambiguation isn't needed.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java
index a12053f..4578aee 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java
@@ -38,19 +38,9 @@ public class ResourceNamesDisambiguationResult<T> implements Serializable {
private static final long serialVersionUID = 1L;
private List<DisambiguationReport<T>> resolution;
- @Deprecated
- private boolean typeResolutionNeeded;
- @Deprecated
- private boolean pluginResolutionNeeded;
- @Deprecated
- private boolean parentResolutionNeeded;
- public ResourceNamesDisambiguationResult(List<DisambiguationReport<T>> resolution, boolean needsTypeResolution,
- boolean needsParentResolution, boolean needsPluginResolution) {
+ public ResourceNamesDisambiguationResult(List<DisambiguationReport<T>> resolution) {
this.resolution = resolution;
- this.parentResolutionNeeded = needsParentResolution;
- this.typeResolutionNeeded = needsTypeResolution;
- this.pluginResolutionNeeded = needsPluginResolution;
}
/**
@@ -62,35 +52,7 @@ public class ResourceNamesDisambiguationResult<T> implements Serializable {
return resolution;
}
- /**
- * This tells the caller whether the result set contained resources with different types.
- */
- @Deprecated
- public boolean isTypeResolutionNeeded() {
- return typeResolutionNeeded;
- }
-
- /**
- * This is true when the resources come from different parents.
- */
- @Deprecated
- public boolean isParentResolutionNeeded() {
- return parentResolutionNeeded;
- }
-
- /**
- * This is true if the results contained resources of different types with the same name.
- * In that case, the types need to be augmented with the plugin they come from.
- */
- @Deprecated
- public boolean isPluginResolutionNeeded() {
- return pluginResolutionNeeded;
- }
-
public String toString() {
- return "ResourceNamesDisambiguationResult(typeResolutionNeeded=" + typeResolutionNeeded +
- ", parentResolutionNeeded=" + parentResolutionNeeded +
- ", pluginResolutionNeeded=" + pluginResolutionNeeded +
- ", resolution=" + resolution + ")";
+ return "ResourceNamesDisambiguationResult(resolution=" + resolution + ")";
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java
index d799ec2..36c7f88 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/paging/ResourceNameDisambiguatingPagedListDataModel.java
@@ -45,9 +45,6 @@ import org.rhq.enterprise.server.util.LookupUtil;
public abstract class ResourceNameDisambiguatingPagedListDataModel<T> extends
PagedListDataModel<DisambiguationReport<T>> {
- private boolean currentPageNeedsTypeResolution;
- private boolean currentPageNeedsPluginResolution;
- private boolean currentPageNeedsParentResolution;
private boolean alwaysIncludeParents;
private ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
@@ -70,39 +67,11 @@ public abstract class ResourceNameDisambiguatingPagedListDataModel<T> extends
ResourceNamesDisambiguationResult<T> disambiguation = resourceManager.disambiguate(data, alwaysIncludeParents,
getResourceIdExtractor());
- currentPageNeedsParentResolution = disambiguation.isParentResolutionNeeded();
- currentPageNeedsPluginResolution = disambiguation.isPluginResolutionNeeded();
- currentPageNeedsTypeResolution = disambiguation.isTypeResolutionNeeded();
-
return new PageList<DisambiguationReport<T>>(disambiguation.getResolution(), data.getTotalSize(), data
.getPageControl());
}
/**
- * @return true if the current page contains resources that need parent resolution
- * in order to become uniquely named.
- */
- public boolean isCurrentPageNeedsParentResolution() {
- return currentPageNeedsParentResolution;
- }
-
- /**
- * @return true if the current page contains resources of types that have the same name
- * and thus need to resolve those types using their plugin names.
- */
- public boolean isCurrentPageNeedsPluginResolution() {
- return currentPageNeedsPluginResolution;
- }
-
- /**
- * @return true if the current page contains resources that need type resolution
- * in order to become uniquely named.
- */
- public boolean isCurrentPageNeedsTypeResolution() {
- return currentPageNeedsTypeResolution;
- }
-
- /**
* This method is to be implemented by inheritors and is called to fetch the actual data
* that contain the resources to disambiguate.
*
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
index eefb034..6b80cd4 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
@@ -24,6 +24,7 @@
package org.rhq.enterprise.gui.inventory.resource;
import javax.faces.component.UIComponentBase;
+import javax.faces.context.FacesContext;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.gui.util.FacesComponentUtility;
@@ -77,16 +78,17 @@ public class DisambiguatedResourceNameComponent extends UIComponentBase {
this.resourceName = resourceName;
}
- public boolean isNameAsLink() {
+ public Boolean getNameAsLink() {
if (nameAsLink == null) {
- Boolean ret = FacesComponentUtility.getExpressionAttribute(this, NAME_AS_LINK_ATTRIBUTE, Boolean.class);
- return ret == null ? true : ret;
- } else {
- return nameAsLink;
+ nameAsLink = FacesComponentUtility.getExpressionAttribute(this, NAME_AS_LINK_ATTRIBUTE, Boolean.class);
+ if (nameAsLink == null) {
+ nameAsLink = true;
+ }
}
+ return nameAsLink;
}
- public void setNameAsLink(boolean nameAsLink) {
+ public void setNameAsLink(Boolean nameAsLink) {
this.nameAsLink = nameAsLink;
}
@@ -102,4 +104,17 @@ public class DisambiguatedResourceNameComponent extends UIComponentBase {
public void setResourceId(int resourceId) {
this.resourceId = resourceId;
}
+
+ public Object saveState(FacesContext facesContext) {
+ Object[] state = new Object[2];
+ state[0] = super.saveState(facesContext);
+ state[1] = this.nameAsLink;
+ return state;
+ }
+
+ public void restoreState(FacesContext facesContext, Object stateValues) {
+ Object[] state = (Object[]) stateValues;
+ super.restoreState(facesContext, state[0]);
+ this.nameAsLink = (Boolean) state[1];
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java
index 07c7ecd..286d063 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java
@@ -53,7 +53,7 @@ public class DisambiguatedResourceNameRenderer extends Renderer {
DisambiguationReport.Resource resource = new DisambiguationReport.Resource(resourceId, resourceName, resourceType);
- if (nameComponent.isNameAsLink()) {
+ if (nameComponent.getNameAsLink()) {
DisambiguatedResourceLineageRenderer.encodeUrl(writer, resource);
} else {
DisambiguatedResourceLineageRenderer.encodeSimple(writer, resource);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
index 74ae826..1ce8845 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
@@ -27,7 +27,6 @@ import org.apache.commons.logging.LogFactory;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceComposite;
-import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
@@ -53,39 +52,6 @@ public class ResourceSelectUIBean {
}
};
- public static class DisambiguationReportWrapper extends DisambiguationReport<ResourceComposite> {
- private static final long serialVersionUID = 1L;
-
- private boolean typeResolutionNeeded;
- private boolean parentResolutionNeeded;
- private boolean pluginResolutionNeeded;
-
- /**
- * @param original
- * @param parents
- * @param resourceTypeName
- * @param resourceTypePluginName
- */
- public DisambiguationReportWrapper(DisambiguationReport<ResourceComposite> report, boolean typeResolutionNeeded, boolean parentResolutionNeeded, boolean pluginResolutionNeeded) {
- super(report.getOriginal(), report.getParents(), report.getResourceType());
- this.typeResolutionNeeded = typeResolutionNeeded;
- this.parentResolutionNeeded = parentResolutionNeeded;
- this.pluginResolutionNeeded = pluginResolutionNeeded;
- }
-
- public boolean isTypeResolutionNeeded() {
- return typeResolutionNeeded;
- }
-
- public boolean isParentResolutionNeeded() {
- return parentResolutionNeeded;
- }
-
- public boolean isPluginResolutionNeeded() {
- return pluginResolutionNeeded;
- }
- }
-
public Resource getResource() {
return resource;
}
@@ -102,7 +68,7 @@ public class ResourceSelectUIBean {
this.searchString = searchString;
}
- public List<DisambiguationReportWrapper> autocomplete(Object suggest) {
+ public List<DisambiguationReport<ResourceComposite>> autocomplete(Object suggest) {
String pref = (String) suggest;
ArrayList<ResourceComposite> result;
@@ -112,24 +78,6 @@ public class ResourceSelectUIBean {
result = resourceManager.findResourceComposites(EnterpriseFacesContextUtility.getSubject(), null, null, null,
null, pref, true, pc);
- return wrap(resourceManager.disambiguate(result, false, RESOURCE_ID_EXTRACTOR));
- }
-
- private List<DisambiguationReportWrapper> wrap(ResourceNamesDisambiguationResult<ResourceComposite> result) {
- List<DisambiguationReportWrapper> ret = new ArrayList<DisambiguationReportWrapper>();
- if (result == null) {
- return ret;
- }
-
- boolean typeRes = result.isTypeResolutionNeeded();
- boolean parentRes = result.isParentResolutionNeeded();
- boolean pluginRes = result.isPluginResolutionNeeded();
-
-
- for (DisambiguationReport<ResourceComposite> r : result.getResolution()) {
- ret.add(new DisambiguationReportWrapper(r, typeRes, parentRes, pluginRes));
- }
-
- return ret;
+ return resourceManager.disambiguate(result, false, RESOURCE_ID_EXTRACTOR).getResolution();
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
index ab5ece0..f7bbaa9 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
@@ -6,7 +6,8 @@
xmlns:onf="http://jboss.org/on/function"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
- xmlns:a4j="http://richfaces.org/a4j">
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:onc="http://jboss.org/on/component">
<h:form>
@@ -163,11 +164,12 @@
</h:column>
<h:column>
<f:facet name="header">Resource</f:facet>
- <h:outputText value="#{result.original.resource.name}"/>
+ <onc:disambiguatedResourceName resourceName="#{result.original.resource.name}"
+ resourceId="#{result.original.resource.id}" nameAsLink="false" disambiguationReport="#{result}"/>
</h:column>
<h:column>
- <f:facet name="header">Parent</f:facet>
- <h:outputText value="#{result.original.parent.name}"/>
+ <f:facet name="header">Location</f:facet>
+ <onc:disambiguatedResourceLineage parents="#{result.parents}" renderLinks="false"/>
</h:column>
</rich:suggestionbox>
</h:panelGroup>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
index 42d62f2..7adc22e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
@@ -46,6 +46,31 @@ public class Disambiguator {
public static final int MAXIMUM_DISAMBIGUATED_TREE_DEPTH = 7;
+ private static final String PARENT_INFO_QUERY;
+
+ static {
+ StringBuilder selectBuilder = new StringBuilder(
+ "SELECT r0.id, r0.name, r0.resourceType.id, r0.resourceType.name, r0.resourceType.plugin, r0.resourceType.singleton");
+ StringBuilder fromBuilder = new StringBuilder("FROM Resource r0");
+
+ for (int i = 1; i <= MAXIMUM_DISAMBIGUATED_TREE_DEPTH; ++i) {
+ int pi = i - 1;
+ selectBuilder.append(", r").append(i).append(".id");
+ selectBuilder.append(", r").append(i).append(".name");
+ selectBuilder.append(", rt").append(i).append(".id");
+ selectBuilder.append(", rt").append(i).append(".name");
+ selectBuilder.append(", rt").append(i).append(".plugin");
+ selectBuilder.append(", rt").append(i).append(".singleton");
+
+ fromBuilder.append(" left join r").append(pi).append(".parentResource r").append(i);
+ fromBuilder.append(" left join r").append(i).append(".resourceType rt").append(i);
+ }
+
+ fromBuilder.append(" WHERE r0.id IN (:resourceIds)");
+
+ PARENT_INFO_QUERY = selectBuilder.append(" ").append(fromBuilder).toString();
+ }
+
private Disambiguator() {
}
@@ -77,15 +102,9 @@ public class Disambiguator {
EntityManager entityManager) {
if (results.isEmpty()) {
- return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>(), false, false,
- false);
+ return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>());
}
- //this is obsolete
- boolean typeResolutionNeeded = true;
- boolean pluginResolutionNeeded = true;
- boolean parentResolutionNeeded = true;
-
//we can't assume the ordering of the provided results and the disambiguation query results
//will be the same.
@@ -113,26 +132,7 @@ public class Disambiguator {
//check that we still have something to disambiguate
if (reportsByResourceId.size() > 0) {
//k, now let's construct the JPQL query to get the parents and type infos...
- StringBuilder selectBuilder = new StringBuilder(
- "SELECT r0.id, r0.name, r0.resourceType.id, r0.resourceType.name, r0.resourceType.plugin, r0.resourceType.singleton");
- StringBuilder fromBuilder = new StringBuilder("FROM Resource r0");
-
- for (int i = 1; i <= MAXIMUM_DISAMBIGUATED_TREE_DEPTH; ++i) {
- int pi = i - 1;
- selectBuilder.append(", r").append(i).append(".id");
- selectBuilder.append(", r").append(i).append(".name");
- selectBuilder.append(", rt").append(i).append(".id");
- selectBuilder.append(", rt").append(i).append(".name");
- selectBuilder.append(", rt").append(i).append(".plugin");
- selectBuilder.append(", rt").append(i).append(".singleton");
-
- fromBuilder.append(" left join r").append(pi).append(".parentResource r").append(i);
- fromBuilder.append(" left join r").append(i).append(".resourceType rt").append(i);
- }
-
- fromBuilder.append(" WHERE r0.id IN (:resourceIds)");
-
- Query parentsQuery = entityManager.createQuery(selectBuilder.append(" ").append(fromBuilder).toString());
+ Query parentsQuery = entityManager.createQuery(PARENT_INFO_QUERY);
parentsQuery.setParameter("resourceIds", reportsByResourceId.keySet());
@@ -246,8 +246,7 @@ public class Disambiguator {
resolution.add(report.getReport());
}
- return new ResourceNamesDisambiguationResult<T>(resolution, typeResolutionNeeded, parentResolutionNeeded,
- pluginResolutionNeeded);
+ return new ResourceNamesDisambiguationResult<T>(resolution);
}
private static <T> void repartitionUnique(ReportPartitions<T> partitions, DisambiguationUpdateStrategy updateStrategy, List<ReportPartitions<T>> ambigousPartitions) {
commit 84ffd30343640f9b66d238b8e85a7ccab756e08b
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 19 13:24:31 2010 +0200
portlets as well as the JSF based pages should work now with the new style disambiguation.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
index bb61ae6..60f5031 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
@@ -75,14 +75,14 @@ public class DisambiguatedResourceLineageRenderer extends Renderer {
encodePreName(writer, parent);
writer.startElement("a", null);
writer.writeAttribute("href", getUrl(parent), null);
- writer.writeText(parent.getName(), null);
+ writeName(writer, parent);
writer.endElement("a");
encodePostName(writer, parent);
}
public static void encodeSimple(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
encodePreName(writer, parent);
- writer.writeText(parent.getName(), null);
+ writeName(writer, parent);
encodePostName(writer, parent);
}
@@ -92,21 +92,37 @@ public class DisambiguatedResourceLineageRenderer extends Renderer {
private static void encodePreName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
if (!parent.getType().isSingleton()) {
+ writer.startElement("span", null);
+ writer.writeAttribute("class", "disambiguated-resource-type", null);
writer.writeText(parent.getType().getName(), null);
writer.writeText(" ", null);
if (parent.getType().getPlugin() != null) {
+ writer.startElement("span", null);
+ writer.writeAttribute("class", "disambiguated-resource-plugin", null);
writer.writeText("(", null);
writer.writeText(parent.getType().getPlugin(), null);
writer.writeText(" plugin) ", null);
+ writer.endElement("span");
}
+ writer.endElement("span");
}
}
private static void encodePostName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
if (parent.getType().isSingleton() && parent.getType().getPlugin() != null) {
+ writer.startElement("span", null);
+ writer.writeAttribute("class", "disambiguated-resource-plugin", null);
writer.writeText(" (", null);
writer.writeText(parent.getType().getPlugin(), null);
writer.writeText(" plugin) ", null);
+ writer.endElement("span");
}
}
+
+ private static void writeName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ writer.startElement("span", null);
+ writer.writeAttribute("class", "disambiguated-resource-name", null);
+ writer.writeText(parent.getName(), null);
+ writer.endElement("span");
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
index c52d2b9..9b05558 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
@@ -120,11 +120,8 @@ public class AddGroupResourcesFormPrepareAction extends Action {
PageList<Resource> pendingResources = resourceManager.findResourceByIds(user, pendingResourceIds, true,
pcPending);
- ResourceNamesDisambiguationResult<Resource> pendingResourcesDisambiguation =
- resourceManager.disambiguate(pendingResources, true, RESOURCE_ID_EXTRACTOR);
-
- PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedpeningResources =
- DisambiguatedResourceListUtil.buildResourceList(pendingResourcesDisambiguation, pendingResources.getTotalSize(), pendingResources.getPageControl(), false);
+ PageList<DisambiguationReport<Resource>> disambiguatedpeningResources =
+ DisambiguatedResourceListUtil.disambiguate(resourceManager, pendingResources, RESOURCE_ID_EXTRACTOR);
request.setAttribute(Constants.PENDING_RESOURCES_ATTR, disambiguatedpeningResources);
request.setAttribute(Constants.NUM_PENDING_RESOURCES_ATTR, disambiguatedpeningResources.size());
@@ -152,11 +149,8 @@ public class AddGroupResourcesFormPrepareAction extends Action {
+ resourceGroup.getClass().getSimpleName() + " group type");
}
- ResourceNamesDisambiguationResult<Resource> availableResourcesDisambiguation =
- resourceManager.disambiguate(availableResources, true, RESOURCE_ID_EXTRACTOR);
-
- PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedAvailResources =
- DisambiguatedResourceListUtil.buildResourceList(availableResourcesDisambiguation, availableResources.getTotalSize(), availableResources.getPageControl(), false);
+ PageList<DisambiguationReport<Resource>> disambiguatedAvailResources =
+ DisambiguatedResourceListUtil.disambiguate(resourceManager, availableResources, RESOURCE_ID_EXTRACTOR);
request.setAttribute(Constants.AVAIL_RESOURCES_ATTR, disambiguatedAvailResources);
request.setAttribute(Constants.NUM_AVAIL_RESOURCES_ATTR, disambiguatedAvailResources.size());
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java
index fe1baf0..72d36e3 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java
@@ -37,6 +37,7 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.gui.util.StringUtility;
@@ -109,9 +110,8 @@ public class AddResourcesPrepareAction extends Action {
PageList<Resource> pendingResources = resourceManager.findResourceByIds(subject, pendingResourceArray, false,
pcPending);
- PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedPendingResources =
- DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(pendingResources, true, RESOURCE_ID_EXTRACTOR),
- pendingResources.getTotalSize(), pendingResources.getPageControl(), false);
+ PageList<DisambiguationReport<Resource>> disambiguatedPendingResources =
+ DisambiguatedResourceListUtil.disambiguate(resourceManager, pendingResources, RESOURCE_ID_EXTRACTOR);
// give 'em to the jsp page
log.debug("put selected page of pending resources in request");
@@ -131,11 +131,9 @@ public class AddResourcesPrepareAction extends Action {
availableResources = resourceManager.findAvailableResourcesForDashboardPortlet(subject, typeIdFilter,
categoryFilter, excludeIds, pcAvail);
- PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedAvailableResources =
- DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(availableResources, true, RESOURCE_ID_EXTRACTOR),
- availableResources.getTotalSize(), availableResources.getPageControl(), false);
-
-
+ PageList<DisambiguationReport<Resource>> disambiguatedAvailableResources =
+ DisambiguatedResourceListUtil.disambiguate(resourceManager, availableResources, RESOURCE_ID_EXTRACTOR);
+
log.debug("put selected page of available resources in request");
request.setAttribute(Constants.AVAIL_RESOURCES_ATTR, disambiguatedAvailableResources);
request.setAttribute(Constants.NUM_AVAIL_RESOURCES_ATTR, disambiguatedAvailableResources.getTotalSize());
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java
index a59c02f..f258108 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java
@@ -33,6 +33,7 @@ import org.rhq.core.domain.operation.composite.GroupOperationLastCompletedCompos
import org.rhq.core.domain.operation.composite.GroupOperationScheduleComposite;
import org.rhq.core.domain.operation.composite.ResourceOperationLastCompletedComposite;
import org.rhq.core.domain.operation.composite.ResourceOperationScheduleComposite;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
@@ -69,9 +70,9 @@ public class ViewAction extends TilesAction {
boolean displayLastCompleted = false;
boolean displayNextScheduled = false;
- PageList<DisambiguatedResourceListUtil.Record<ResourceOperationLastCompletedComposite>> disambiguatedLastCompletedResourceOps = new PageList<DisambiguatedResourceListUtil.Record<ResourceOperationLastCompletedComposite>>();
+ PageList<DisambiguationReport<ResourceOperationLastCompletedComposite>> disambiguatedLastCompletedResourceOps = new PageList<DisambiguationReport<ResourceOperationLastCompletedComposite>>();
PageList<GroupOperationLastCompletedComposite> lastCompletedGroupOps = new PageList<GroupOperationLastCompletedComposite>();
- PageList<DisambiguatedResourceListUtil.Record<ResourceOperationScheduleComposite>> disambiguatedNextScheduledResourceOps = new PageList<DisambiguatedResourceListUtil.Record<ResourceOperationScheduleComposite>>();
+ PageList<DisambiguationReport<ResourceOperationScheduleComposite>> disambiguatedNextScheduledResourceOps = new PageList<DisambiguationReport<ResourceOperationScheduleComposite>>();
PageList<GroupOperationScheduleComposite> nextScheduledGroupOps = new PageList<GroupOperationScheduleComposite>();
try {
@@ -97,9 +98,8 @@ public class ViewAction extends TilesAction {
PageList<ResourceOperationLastCompletedComposite> lastCompletedResourceOps =
manager.findRecentlyCompletedResourceOperations(user.getSubject(), null, pageControl);
- disambiguatedLastCompletedResourceOps = DisambiguatedResourceListUtil.buildResourceList(
- resourceManager.disambiguate(lastCompletedResourceOps, true, RESOURCE_OPERATION_RESOURCE_ID_EXTRACTOR),
- lastCompletedResourceOps.getTotalSize(), lastCompletedResourceOps.getPageControl(), true);
+ disambiguatedLastCompletedResourceOps = DisambiguatedResourceListUtil.disambiguate(
+ resourceManager, lastCompletedResourceOps, RESOURCE_OPERATION_RESOURCE_ID_EXTRACTOR);
pageControl = new PageControl(0, operationPreferences.lastCompleted);
pageControl.initDefaultOrderingField("go.createdTime", PageOrdering.DESC);
@@ -112,9 +112,8 @@ public class ViewAction extends TilesAction {
manager.findCurrentlyScheduledResourceOperations(user.getSubject(),
pageControl);
- disambiguatedNextScheduledResourceOps = DisambiguatedResourceListUtil.buildResourceList(
- resourceManager.disambiguate(nextScheduledResourceOps, true, RESOURCE_OPERATION_SCHEDULE_RESOURCE_ID_EXTRACTOR),
- nextScheduledResourceOps.getTotalSize(), nextScheduledResourceOps.getPageControl(), true);
+ disambiguatedNextScheduledResourceOps = DisambiguatedResourceListUtil.disambiguate(
+ resourceManager, nextScheduledResourceOps, RESOURCE_OPERATION_SCHEDULE_RESOURCE_ID_EXTRACTOR);
pageControl = new PageControl(0, operationPreferences.nextScheduled);
nextScheduledGroupOps = manager.findCurrentlyScheduledGroupOperations(user.getSubject(), pageControl);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java
index b500a72..a0f94aa 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java
@@ -30,6 +30,7 @@ import org.apache.struts.tiles.ComponentContext;
import org.apache.struts.tiles.actions.TilesAction;
import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.IntExtractor;
@@ -75,9 +76,8 @@ public class PrepareAction extends TilesAction {
PageList<Resource> resources = resourceManager.findResourceByIds(user.getSubject(), alertPrefs.asArray(), false,
pageControl);
- PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedResources =
- DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(resources, true, RESOURCE_ID_EXTRACTOR),
- resources.getTotalSize(), resources.getPageControl(), false);
+ PageList<DisambiguationReport<Resource>> disambiguatedResources =
+ DisambiguatedResourceListUtil.disambiguate(resourceManager, resources, RESOURCE_ID_EXTRACTOR);
request.setAttribute("criticalAlertsList", disambiguatedResources);
request.setAttribute("criticalAlertsTotalSize", disambiguatedResources.getTotalSize());
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java
index 77da660..1d9b37b 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java
@@ -31,6 +31,7 @@ import org.apache.struts.tiles.actions.TilesAction;
import org.rhq.core.domain.alert.Alert;
import org.rhq.core.domain.alert.AlertPriority;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.IntExtractor;
@@ -58,7 +59,7 @@ public class ViewAction extends TilesAction {
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- PageList<DisambiguatedResourceListUtil.Record<Alert>> disambiguatedAlerts = new PageList<DisambiguatedResourceListUtil.Record<Alert>>();
+ PageList<DisambiguationReport<Alert>> disambiguatedAlerts = new PageList<DisambiguationReport<Alert>>();
try {
WebUser user = SessionUtils.getWebUser(request.getSession());
if (user == null) {
@@ -78,8 +79,7 @@ public class ViewAction extends TilesAction {
: ArrayUtils.wrapInArray(alertPrefs.asArray())), AlertPriority.getByLegacyIndex(alertPrefs.priority),
alertPrefs.timeRange, pageControl);
- disambiguatedAlerts = DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(alerts, true, RESOURCE_ID_EXTRACTOR)
- , alerts.getTotalSize(), alerts.getPageControl(), true);
+ disambiguatedAlerts = DisambiguatedResourceListUtil.disambiguate(resourceManager, alerts, RESOURCE_ID_EXTRACTOR);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.debug("Dashboard Portlet [CriticalAlerts] experienced an error: " + e.getMessage(), e);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java
index 6fc3516..d4b38fb 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java
@@ -36,6 +36,7 @@ import org.apache.struts.tiles.ComponentContext;
import org.apache.struts.tiles.actions.TilesAction;
import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ProblemResourceComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -64,7 +65,7 @@ public class ViewAction extends TilesAction {
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- List<DisambiguatedResourceListUtil.Record<ProblemResourceComposite>> disambiguatedList = new ArrayList<DisambiguatedResourceListUtil.Record<ProblemResourceComposite>>();
+ List<DisambiguationReport<ProblemResourceComposite>> disambiguatedList = new ArrayList<DisambiguationReport<ProblemResourceComposite>>();
String timeRange = getResources(request).getMessage("dash.home.ProblemResources.timeRangeUnlimited");
try {
@@ -103,9 +104,8 @@ public class ViewAction extends TilesAction {
PageList<ProblemResourceComposite> list = problemManager.findProblemResources(subject, begin, new PageControl(0,
problemResourcePreferences.range));
- disambiguatedList = DisambiguatedResourceListUtil.buildResourceList(
- resourceManager.disambiguate(list, true, RESOURCE_ID_EXTRACTOR),
- list.getTotalSize(), list.getPageControl(), true);
+ disambiguatedList = DisambiguatedResourceListUtil.disambiguate(
+ resourceManager, list, RESOURCE_ID_EXTRACTOR);
long end = System.currentTimeMillis();
log.debug("Performance: Took [" + (end - start) + "]ms to find " + problemResourcePreferences.range
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java
index aa6a17b..fb9be73 100755
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java
@@ -18,6 +18,10 @@
*/
package org.rhq.enterprise.gui.legacy.portlet.resourcehealth;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Iterator;
+
import javax.security.auth.login.LoginException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -41,6 +45,7 @@ import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.FavoriteResourcePortletPreferences;
import org.rhq.enterprise.gui.legacy.portlet.BaseRSSAction;
import org.rhq.enterprise.gui.legacy.portlet.RSSFeed;
+import org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageTag;
import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -69,11 +74,9 @@ public class RSSAction extends BaseRSSAction {
favoriteResourcePreferences.asArray(), PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
- ResourceNamesDisambiguationResult<ResourceHealthComposite> disambiguatedLResults = manager.disambiguate(results, true, ViewAction.RESOURCE_ID_EXTRACTOR);
-
- PageList<DisambiguatedResourceListUtil.Record<ResourceHealthComposite>> list = DisambiguatedResourceListUtil.buildResourceList(disambiguatedLResults, results.getTotalSize(), results.getPageControl(), false);
+ PageList<DisambiguationReport<ResourceHealthComposite>> list = DisambiguatedResourceListUtil.disambiguate(manager, results, ViewAction.RESOURCE_ID_EXTRACTOR);
- for (DisambiguatedResourceListUtil.Record<ResourceHealthComposite> summary : list) {
+ for (DisambiguationReport<ResourceHealthComposite> summary : list) {
String link = feed.getBaseUrl() + FunctionTagLibrary.getDefaultResourceTabURL() + "?id="
+ summary.getOriginal().getId();
@@ -83,7 +86,7 @@ public class RSSAction extends BaseRSSAction {
.getOriginal().getAlerts()));
String typeText = res.getMessage("dash.home.ResourceHealth.rss.item.resourceType", summary
.getOriginal().getTypeName());
- String parentsText = res.getMessage("dash.home.ResourceHealth.rss.item.resourceParents", summary.getLineage());
+ String parentsText = res.getMessage("dash.home.ResourceHealth.rss.item.resourceParents", getLineage(summary));
long now = System.currentTimeMillis();
@@ -112,6 +115,15 @@ public class RSSAction extends BaseRSSAction {
} else {
throw new LoginException("RSS access requires authentication");
}
-
+ }
+
+ private static String getLineage(DisambiguationReport<?> report) {
+ StringWriter writer = new StringWriter();
+ try {
+ DisambiguatedResourceLineageTag.writeParents(writer, report.getParents(), false, false);
+ return writer.toString();
+ } catch (IOException e) {
+ return "";
+ }
}
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
index 7db8562..7a1a824 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
@@ -59,7 +59,7 @@ public class ViewAction extends TilesAction {
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- PageList<DisambiguatedResourceListUtil.Record<ResourceHealthComposite>> list = new PageList<DisambiguatedResourceListUtil.Record<ResourceHealthComposite>>();
+ PageList<DisambiguationReport<ResourceHealthComposite>> list = new PageList<DisambiguationReport<ResourceHealthComposite>>();
boolean showAvailability = true;
boolean showAlerts = true;
try {
@@ -78,9 +78,7 @@ public class ViewAction extends TilesAction {
ResourceManagerLocal manager = LookupUtil.getResourceManager();
PageList<ResourceHealthComposite> lst = manager.findResourceHealth(user.getSubject(), favoriteResourcePreferences.asArray(), pc);
- ResourceNamesDisambiguationResult<ResourceHealthComposite> disambiguatedList = manager.disambiguate(lst, true, RESOURCE_ID_EXTRACTOR);
-
- list = DisambiguatedResourceListUtil.buildResourceList(disambiguatedList, lst.getTotalSize(), lst.getPageControl(), true);
+ list = DisambiguatedResourceListUtil.disambiguate(manager, lst, RESOURCE_ID_EXTRACTOR);
showAvailability = favoriteResourcePreferences.showAvailability;
showAlerts = favoriteResourcePreferences.showAlerts;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageDecorator.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageDecorator.java
new file mode 100644
index 0000000..1c860b3
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageDecorator.java
@@ -0,0 +1,77 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.legacy.taglib.display;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.List;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+
+/**
+ * The same as {@link DisambiguatedResourceLineageTag} but for use inside
+ * display:column.
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceLineageDecorator extends BaseDecorator {
+
+ private List<DisambiguationReport.Resource> parents;
+ private Boolean renderLinks;
+
+ public List<DisambiguationReport.Resource> getParents() {
+ return parents;
+ }
+
+ public void setParents(List<DisambiguationReport.Resource> parents) {
+ this.parents = parents;
+ }
+
+ public Boolean getRenderLinks() {
+ return renderLinks;
+ }
+
+ public void setRenderLinks(Boolean renderLinks) {
+ this.renderLinks = renderLinks;
+ }
+
+ @SuppressWarnings("unchecked")
+ public String decorate(Object obj) {
+ List<DisambiguationReport.Resource> parents = getParents();
+ if (parents == null) {
+ parents = (List<DisambiguationReport.Resource>) obj;
+ }
+
+ try {
+ StringWriter writer = new StringWriter();
+ boolean renderLinks = this.renderLinks == null || this.renderLinks;
+
+ DisambiguatedResourceLineageTag.writeParents(writer, parents, renderLinks, true);
+ return writer.toString();
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java
index 77e49d8..3088a62 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java
@@ -24,6 +24,7 @@
package org.rhq.enterprise.gui.legacy.taglib.display;
import java.io.IOException;
+import java.io.Writer;
import java.util.Iterator;
import java.util.List;
@@ -67,20 +68,8 @@ public class DisambiguatedResourceLineageTag extends TagSupport {
JspWriter writer = pageContext.getOut();
try {
- if (parents != null && parents.size() > 0) {
-
- Iterator<DisambiguationReport.Resource> it = parents.iterator();
- DisambiguationReport.Resource parent = it.next();
- DisambiguatedResourceNameTag.writeResource(writer, renderLinks, parent.getId(), parent.getName(),
- parent.getType());
-
- while (it.hasNext()) {
- writer.append(DisambiguatedResourceLineageComponent.DEFAULT_SEPARATOR);
- parent = it.next();
- DisambiguatedResourceNameTag.writeResource(writer, renderLinks, parent.getId(), parent.getName(),
- parent.getType());
- }
- }
+ boolean renderLinks = this.renderLinks == null || this.renderLinks;
+ writeParents(writer, parents, renderLinks, true);
return super.doEndTag();
} catch (IOException e) {
@@ -88,4 +77,24 @@ public class DisambiguatedResourceLineageTag extends TagSupport {
}
}
+ private static String getUrl(DisambiguationReport.Resource resource) {
+ return DisambiguatedResourceNameTag.getDefaultResourceUrl(resource.getId());
+ }
+
+ public static void writeParents(Writer writer, List<DisambiguationReport.Resource> parents, boolean renderLinks, boolean htmlOuptut) throws IOException {
+ if (parents != null && parents.size() > 0) {
+
+ Iterator<DisambiguationReport.Resource> it = parents.iterator();
+ DisambiguationReport.Resource parent = it.next();
+ DisambiguatedResourceNameTag.writeResource(writer, renderLinks ? getUrl(parent) : null, parent.getName(),
+ parent.getType(), htmlOuptut);
+
+ while (it.hasNext()) {
+ writer.append(DisambiguatedResourceLineageComponent.DEFAULT_SEPARATOR);
+ parent = it.next();
+ DisambiguatedResourceNameTag.writeResource(writer, renderLinks ? getUrl(parent) : null, parent.getName(),
+ parent.getType(), htmlOuptut);
+ }
+ }
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameDecorator.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameDecorator.java
new file mode 100644
index 0000000..1bd3fbc
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameDecorator.java
@@ -0,0 +1,110 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.legacy.taglib.display;
+
+import java.io.IOException;
+import java.io.StringWriter;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+
+/**
+ * For use in display:column elements
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceNameDecorator extends BaseDecorator {
+
+ private int resourceId;
+ private String resourceName;
+ private String url;
+ private Boolean nameAsLink;
+ private DisambiguationReport<?> disambiguationReport;
+
+ public int getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceId(int resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ public void setResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public Boolean getNameAsLink() {
+ return nameAsLink;
+ }
+
+ public void setNameAsLink(Boolean nameAsLink) {
+ this.nameAsLink = nameAsLink;
+ }
+
+ public DisambiguationReport<?> getDisambiguationReport() {
+ return disambiguationReport;
+ }
+
+ public void setDisambiguationReport(DisambiguationReport<?> disambiguationReport) {
+ this.disambiguationReport = disambiguationReport;
+ }
+
+ public String decorate(Object obj) {
+ DisambiguationReport<?> report = getDisambiguationReport();
+ if (report == null) {
+ report = (DisambiguationReport<?>) obj;
+ }
+
+ try {
+ //default to true
+ boolean renderLink = nameAsLink == null || nameAsLink.booleanValue();
+
+ String renderedUrl = null;
+ if (renderLink) {
+ renderedUrl = this.url;
+ if (renderedUrl == null) {
+ renderedUrl = DisambiguatedResourceNameTag.getDefaultResourceUrl(resourceId);
+ }
+ }
+
+ StringWriter writer = new StringWriter();
+ DisambiguatedResourceNameTag.writeResource(writer, renderedUrl, resourceName, report.getResourceType(), true);
+
+ return writer.toString();
+ } catch (IOException e) {
+ return null;
+ }
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
index 240f4f8..1077aab 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
@@ -24,6 +24,7 @@
package org.rhq.enterprise.gui.legacy.taglib.display;
import java.io.IOException;
+import java.io.Writer;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
@@ -40,18 +41,19 @@ import org.rhq.core.domain.resource.composite.DisambiguationReport;
public class DisambiguatedResourceNameTag extends TagSupport {
private static final long serialVersionUID = 1L;
-
- private DisambiguationReport<?> disambiguatedReport;
+
+ private DisambiguationReport<?> disambiguationReport;
private String resourceName;
private Integer resourceId;
private Boolean nameAsLink;
+ private String url;
- public DisambiguationReport<?> getDisambiguatedReport() {
- return disambiguatedReport;
+ public DisambiguationReport<?> getDisambiguationReport() {
+ return disambiguationReport;
}
- public void setDisambiguatedReport(DisambiguationReport<?> disambiguatedReport) {
- this.disambiguatedReport = disambiguatedReport;
+ public void setDisambiguationReport(DisambiguationReport<?> disambiguationReport) {
+ this.disambiguationReport = disambiguationReport;
}
public String getResourceName() {
@@ -70,6 +72,14 @@ public class DisambiguatedResourceNameTag extends TagSupport {
this.resourceId = resourceId;
}
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
public Boolean getNameAsLink() {
return nameAsLink;
}
@@ -83,47 +93,83 @@ public class DisambiguatedResourceNameTag extends TagSupport {
JspWriter writer = pageContext.getOut();
try {
- if (disambiguatedReport != null) {
+ if (disambiguationReport != null) {
- DisambiguationReport.ResourceType resourceType = disambiguatedReport.getResourceType();
+ DisambiguationReport.ResourceType resourceType = disambiguationReport.getResourceType();
//default to true
boolean renderLink = nameAsLink == null || nameAsLink.booleanValue();
- writeResource(writer, renderLink, resourceId, resourceName, resourceType);
+ String renderedUrl = null;
+ if (renderLink) {
+ renderedUrl = this.url;
+ if (renderedUrl == null) {
+ renderedUrl = getDefaultResourceUrl(resourceId);
+ }
+ }
+ writeResource(writer, renderedUrl, resourceName, resourceType, true);
}
-
+
return super.doEndTag();
} catch (IOException e) {
throw new JspTagException(e);
}
}
-
- public static void writeResource(JspWriter writer, boolean renderLink, int resourceId, String resourceName, DisambiguationReport.ResourceType resourceType) throws IOException {
+
+ public static void writeResource(Writer writer, String url, String resourceName,
+ DisambiguationReport.ResourceType resourceType, boolean htmlOutput) throws IOException {
if (!resourceType.isSingleton()) {
- writer.append(resourceType.getName()).append(" ");
+ if (htmlOutput) {
+ writer.append("<span class=\"disambiguated-resource-type\">");
+ }
+ writer.append(resourceType.getName()).append(" ");
+
if (resourceType.getPlugin() != null) {
- writer.append("(").append(resourceType.getPlugin())
- .append(" plugin) ");
+ if (htmlOutput) {
+ writer.append("<span class=\"disambiguated-resource-plugin\">");
+ }
+ writer.append("(").append(resourceType.getPlugin()).append(" plugin) ");
+ if (htmlOutput) {
+ writer.append("</span>");
+ }
+ }
+
+ if (htmlOutput) {
+ writer.append("</span>");
}
}
-
- if (renderLink) {
- writer.append("<a href=\"/rhq/resource/summary/overview.xhtml?id=");
- writer.print(resourceId);
- writer.append("\">");
+
+ if (url != null) {
+ writer.append("<a href=\"").append(url).append("\">");
+ }
+
+ if (htmlOutput) {
+ writer.append("<span class=\"disambiguated-resource-name\">");
}
-
writer.append(resourceName);
-
- if (renderLink) {
- writer.append("</a>");
+ if (htmlOutput) {
+ writer.append("</span>");
}
+ if (url != null) {
+ writer.append("</a>");
+ }
+
if (resourceType.isSingleton() && resourceType.getPlugin() != null) {
- writer.append(" ").append(resourceType.getPlugin())
- .append(" plugin)");
+ if (htmlOutput) {
+ writer.append("<span class=\"disambiguated-resource-plugin\">");
+ }
+
+ writer.append(" (").append(resourceType.getPlugin()).append(" plugin)");
+
+ if (htmlOutput) {
+ writer.append("</span>");
+ }
}
}
+
+ public static String getDefaultResourceUrl(int resourceId) {
+ return "/rhq/resource/summary/overview.xhtml?id=" + resourceId;
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
index 24a373a..0837143 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
@@ -23,16 +23,11 @@
package org.rhq.enterprise.gui.legacy.util;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
-import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
-import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageComponent;
+import org.rhq.core.util.IntExtractor;
+import org.rhq.enterprise.server.resource.ResourceManagerLocal;
/**
* A utility class to provide page lists of disambiguated resource lists for the
@@ -42,79 +37,12 @@ import org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageComponent
*/
public class DisambiguatedResourceListUtil {
- private static final String RESOURCE_URL = "/rhq/resource/summary/overview.xhtml";
-
private DisambiguatedResourceListUtil() {
}
- public static class Record<T> {
-
- private T original;
- private String lineage;
- private String originalResourceTypeName;
-
- public Record(T original, String resourceTypeName, String lineage) {
- this.original = original;
- this.lineage = lineage;
- this.originalResourceTypeName = resourceTypeName;
- }
-
- public T getOriginal() {
- return original;
- }
-
- public String getLineage() {
- return lineage;
- }
-
- public String getOriginalResourceTypeName() {
- return originalResourceTypeName;
- }
- }
-
- public static <T> PageList<Record<T>> buildResourceList(ResourceNamesDisambiguationResult<T> results, int totalSize, PageControl pageControl, boolean renderLinks) {
- ArrayList<Record<T>> convertedResults = new ArrayList<Record<T>>(results.getResolution().size());
-
- for(DisambiguationReport<T> dr : results.getResolution()) {
- String typeName = dr.getResourceTypeName();
- if (results.isPluginResolutionNeeded()) {
- typeName += " (" + dr.getResourceTypePluginName() + " plugin)";
- }
- convertedResults.add(new Record<T>(dr.getOriginal(), typeName, buildLineage(dr.getParents(), renderLinks)));
- }
- return new PageList<Record<T>>(convertedResults, totalSize, pageControl);
- }
-
- private static String buildLineage(List<ResourceParentFlyweight> parents, boolean renderLinks) {
- if (parents == null || parents.size() == 0) {
- return "";
- }
-
- Iterator<ResourceParentFlyweight> it = parents.iterator();
-
- StringBuilder bld = new StringBuilder();
-
- appendParentName(bld, it.next(), renderLinks);
-
- while (it.hasNext()) {
- bld.append(ResourcePartialLineageComponent.DEFAULT_SEPARATOR);
- appendParentName(bld, it.next(), renderLinks);
- }
-
- return bld.toString();
- }
-
- private static void appendParentName(StringBuilder bld, ResourceParentFlyweight parent, boolean renderLinks) {
- if (renderLinks) {
- bld.append("<a href=\"").append(RESOURCE_URL).append("?id=").append(parent.getParentId())
- .append("\">");
- }
-
- bld.append(parent.getParentName());
-
- if (renderLinks) {
- bld.append("</a>");
- }
+ public static <T> PageList<DisambiguationReport<T>> disambiguate(ResourceManagerLocal resourceManager, PageList<T> results, IntExtractor<T> resourceIdExtractor) {
+ ResourceNamesDisambiguationResult<T> result = resourceManager.disambiguate(results, true, resourceIdExtractor);
+ return new PageList<DisambiguationReport<T>>(result.getResolution(), results.getTotalSize(), results.getPageControl());
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
index eefd1e1..2d7fe8e 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
@@ -893,7 +893,7 @@
<tag>
<name>disambiguatedResourceName</name>
<tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceNameTag</tag-class>
- <body-content>JSP</body-content>
+ <body-content>empty</body-content>
<attribute>
<name>disambiguationReport</name>
<required>true</required>
@@ -908,11 +908,17 @@
</attribute>
<attribute>
<name>resourceId</name>
- <required>true</required>
+ <required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>Integer</type>
</attribute>
<attribute>
+ <name>url</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
<name>nameAsLink</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
@@ -923,7 +929,61 @@
<tag>
<name>disambiguatedResourceLineage</name>
<tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageTag</tag-class>
- <body-content>JSP</body-content>
+ <body-content>empty</body-content>
+ <attribute>
+ <name>parents</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.util.List</type>
+ </attribute>
+ <attribute>
+ <name>renderLinks</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>disambiguatedResourceNameDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceNameDecorator</tag-class>
+ <body-content>empty</body-content>
+ <attribute>
+ <name>disambiguationReport</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.core.domain.resource.composite.DisambiguationReport</type>
+ </attribute>
+ <attribute>
+ <name>resourceName</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceId</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Integer</type>
+ </attribute>
+ <attribute>
+ <name>url</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>nameAsLink</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>disambiguatedResourceLineageDecorator</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageDecorator</tag-class>
+ <body-content>empty</body-content>
<attribute>
<name>parents</name>
<required>true</required>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/css/win.css b/modules/enterprise/gui/portal-war/src/main/webapp/css/win.css
index 76d051e..6859fe2 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/css/win.css
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/css/win.css
@@ -2371,3 +2371,17 @@ ul.radio-group .unspecified {
.rich-tree-h-ic-img, .rich-tree-node-handleicon-collapsed, .rich-tree-node-handleicon-expanded {
cursor:pointer;
}
+
+/* Disambiguated resources formatting */
+.disambiguated-resource-type {
+ font-style: italic;
+}
+
+.disambiguated-resource-plugin {
+ font-style: italic;
+}
+
+.disambiguated-resource-name {
+}
+
+
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp
index 35e9965..661008f 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp
@@ -338,7 +338,6 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
</html:select>
</td>
- <td><html:img page="/images/spacer.gif" width="5" height="30" border="0"/></td>
</tr>
</table>
</td>
@@ -366,21 +365,22 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
items="${AvailableResources}"
var="item"
padRows="true"
- rightSidebar="true"
+ rightSidebar="true"
styleId="fromTable"
postfix="a" >
<display:column width="1%" property="original.id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"fromToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="availableResources" onclick="ToggleSelection(this, widgetProperties)" styleClass="availableListMember"/>
</display:column>
- <display:column property="original.name" title="common.header.ResourceName"
- width="30%"
- sortAttr="res.name" />
- <display:column property="original.resourceType.name" title="resource.group.inventory.TypeTH"
- width="39%"
- sortAttr="res.resourceType.name" >
+ <display:column title="common.header.ResourceName"
+ width="49%"
+ sortAttr="res.name">
+
+ <display:disambiguatedResourceNameDecorator resourceName="${item.original.name}" disambiguationReport="${item}" nameAsLink="false"/>
</display:column>
- <display:column property="lineage" title="resource.group.inventory.ParentTH"
- width="30%" />
+ <display:column title="resource.group.inventory.ParentTH"
+ width="50%">
+ <display:disambiguatedResourceLineageDecorator parents="${item.parents}" renderLinks="false" />
+ </display:column>
</display:table>
</div>
@@ -415,7 +415,7 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
<display:table cellpadding="0" cellspacing="0" border="0" width="100%"
action="${selfPpAction}"
items="${PendingResources}"
- var="resource"
+ var="item"
padRows="true"
leftSidebar="true"
styleId="toTable"
@@ -423,15 +423,15 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
<display:column width="1%" property="original.id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"toToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="pendingResources" onclick="ToggleSelection(this, widgetProperties)" styleClass="pendingListMember"/>
</display:column>
- <display:column property="original.name" title="common.header.ResourceName"
- width="30%"
- sortAttr="res.name" />
- <display:column property="original.resourceType.name" title="resource.group.inventory.TypeTH"
- width="39%"
- sortAttr="res.resourceType.name" >
- </display:column>
- <display:column property="lineage" title="resource.group.inventory.ParentTH"
- width="30%" />
+ <display:column title="common.header.ResourceName"
+ width="49%"
+ sortAttr="res.name">
+ <display:disambiguatedResourceNameDecorator resourceName="${item.original.name}" disambiguationReport="${item}" nameAsLink="false"/>
+ </display:column>
+ <display:column title="resource.group.inventory.ParentTH"
+ width="50%">
+ <display:disambiguatedResourceLineageDecorator parents="${item.parents}" renderLinks="false" />
+ </display:column>
</display:table>
</div>
<!-- / -->
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
index 810963c..ba76919 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
@@ -5,6 +5,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/WEB-INF/tld/hq.tld" prefix="hq" %>
+<%@ taglib uri="/WEB-INF/tld/display.tld" prefix="display" %>
<tiles:importAttribute name="displayLastCompleted"/>
<tiles:importAttribute name="lastCompletedResource" ignore="true"/>
@@ -46,7 +47,6 @@
<c:if test="${!empty lastCompletedResource}">
<tr>
<td width="25%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
- <td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Type"/></td>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
<td width="20%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
@@ -54,9 +54,8 @@
</tr>
<c:forEach items="${lastCompletedResource}" var="obj">
<tr class="ListRow">
- <td class="ListCell"><html:link page="/rhq/resource/summary/overview.xhtml?id=${obj.original.resourceId}"><c:out value="${obj.original.resourceName}"/></html:link></td>
- <td class="ListCell"><c:out value="${obj.original.resourceTypeName}"/></td>
- <td class="ListCell"><c:out value="${obj.lineage}" escapeXml="false"/></td>
+ <td class="ListCell"><display:disambiguatedResourceName resourceName="${obj.original.resourceName}" disambiguationReport="${obj}" resourceId="${obj.original.resourceId}" /></td>
+ <td class="ListCell"><display:disambiguatedResourceLineage parents="${obj.parents}" /></td>
<td class="ListCell"><c:out value="${obj.original.operationName}"/></td>
<td class="ListCell"><hq:dateFormatter value="${obj.original.operationStartTime}"/></td>
<td class="ListCell" align="center">
@@ -83,7 +82,7 @@
<c:if test="${!empty lastCompletedGroup}">
<tr>
<td width="40%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.GroupName"/></td>
- <td width="35%" class="ListHeaderInactive" colspan="2"><fmt:message key="dash.home.TableHeader.GroupResourceType"/></td>
+ <td width="35%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.GroupResourceType"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
<td width="25%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
<td width="5%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Status"/></td>
@@ -91,7 +90,7 @@
<c:forEach items="${lastCompletedGroup}" var="obj">
<tr class="ListRow">
<td class="ListCell"><html:link page="/rhq/groups/monitor/graphs.xhtml?category=COMPATIBLE&groupId=${obj.groupId}"><c:out value="${obj.groupName}"/></html:link></td>
- <td class="ListCell" colspan="2"><c:out value="${obj.groupResourceTypeName}"/></td>
+ <td class="ListCell"><c:out value="${obj.groupResourceTypeName}"/></td>
<td class="ListCell"><c:out value="${obj.operationName}"/></td>
<td class="ListCell"><hq:dateFormatter value="${obj.operationStartTime}"/></td>
<td class="ListCell" align="center">
@@ -141,16 +140,14 @@
<c:if test="${!empty nextScheduledResource}">
<tr>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
- <td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Type"/></td>
- <td width="35%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
+ <td width="35%" class="ListHeaderInactive" colspan="2"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
<td width="15%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
</tr>
<c:forEach items="${nextScheduledResource}" var="obj">
<tr class="ListRow">
- <td class="ListCell"><html:link page="/rhq/resource/operation/resourceOperationScheduleDetails.xhtml?id=${obj.original.resourceId}&jobId=${obj.original.operationJobId}"><c:out value="${obj.original.resourceName}"/></html:link></td>
- <td class="ListCell"><c:out value="${obj.original.resourceTypeName}"/></td>
- <td class="ListCell"><c:out value="${obj.lineage}" escapeXml="false" /></td>
+ <td class="ListCell"><display:disambiguatedResourceName resourceName="${obj.original.resourceName}" disambiguationReport="${obj}" url="/rhq/resource/operation/resourceOperationScheduleDetails.xhtml?id=${obj.original.resourceId}&jobId=${obj.original.operationJobId}"/></td>
+ <td class="ListCell" colspan="2"><display:disambiguatedResourceLineage parents="${obj.parents}" /></td>
<td class="ListCell"><c:out value="${obj.original.operationName}"/></td>
<td class="ListCell"><hq:dateFormatter value="${obj.original.operationNextFireTime}"/></td>
</tr>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp
index 4221584..eebbc19 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp
@@ -99,9 +99,12 @@ var help = '<hq:help/>';
<display:checkboxdecorator name="ids" onclick="ToggleSelection(this, widgetProperties, true)" styleClass="listMember"/>
</display:column>
- <display:column width="25%" property="original.name" sortAttr="res.name" title="dash.settings.ListHeader.Resource" />
- <display:column width="25%" property="original.resourceType.name" title="dash.settings.ListHeader.Type" />
- <display:column width="25%" property="lineage" title="dash.settings.ListHeader.Location" />
+ <display:column width="25%" sortAttr="res.name" title="dash.settings.ListHeader.Resource">
+ <display:disambiguatedResourceNameDecorator resourceName="${resource.original.name}" resourceId="${resource.original.id}" disambiguationReport="${resource}"/>
+ </display:column>
+ <display:column width="25%" title="dash.settings.ListHeader.Location">
+ <display:disambiguatedResourceLineageDecorator parents="${resource.parents}"/>
+ </display:column>
<display:column width="25%" property="original.description" sortAttr="res.description" title="common.header.Description" />
</display:table>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
index 7e0205e..0d3e602 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
@@ -5,6 +5,8 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/WEB-INF/tld/hq.tld" prefix="hq" %>
+<%@ taglib uri="/WEB-INF/tld/display.tld" prefix="display" %>
+
<tiles:importAttribute name="criticalAlerts"/>
<c:url var="rssUrl" value="/rss/ViewCriticalAlerts.rss">
@@ -33,7 +35,6 @@
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="20%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.ResourceName"/><html:img page="/images/tb_sortup_inactive.gif" width="9" height="9" border="0"/></td>
- <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Type"/></td>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.AlertName"/></td>
<td width="20%" class="ListHeaderInactiveCenter"><fmt:message key="dash.home.TableHeader.DateTime"/></td>
@@ -42,16 +43,15 @@
<tr class="ListRow">
<c:choose>
<c:when test="{item.original.alertDefinition.resource eq null}">
- <td class="ListCell" colspan="3">
+ <td class="ListCell" colspan="2">
<fmt:message key="dash.home.removed.resource"/>
</td>
</c:when>
<c:otherwise>
<td class="ListCell">
- <html:link page="/rhq/resource/summary/overview.xhtml?id=${item.original.alertDefinition.resource.id}"><c:out value="${item.original.alertDefinition.resource.name}"/> </html:link>
+ <display:disambiguatedResourceName resourceName="${item.original.alertDefinition.resource.name}" disambiguationReport="${item}" resourceId="${item.original.alertDefinition.resource.id}"/>
</td>
- <td class="ListCell"><c:out value="${item.original.alertDefinition.resource.resourceType.name}" /></td>
- <td class="ListCell"><c:out value="${item.lineage}" /> </td>
+ <td class="ListCell"><display:disambiguatedResourceLineage parents="${item.parents}" /> </td>
</c:otherwise>
</c:choose>
<td class="ListCell"><html:link page="/alerts/Alerts.do?mode=viewAlert&id=${item.original.alertDefinition.resource.id}&a=${item.original.id}"><c:out value="${item.original.alertDefinition.name}"/> </html:link></td>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
index 93695da..481cb5c 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
@@ -33,9 +33,12 @@
<c:when test="${not empty problemResources}">
<display:table cellspacing="0" cellpadding="0" width="100%" action="/Dashboard.do"
var="obj" items="${problemResources}" >
- <display:column width="20%" href="/rhq/resource/summary/overview.xhtml?id=${obj.original.resourceId}" property="original.resourceName" title="dash.home.TableHeader.ResourceName"/>
- <display:column width="20%" property="originalResourceTypeName" title="dash.home.TableHeader.Type"/>
- <display:column width="20%" property="lineage" title="dash.home.TableHeader.Location"/>
+ <display:column width="20%" title="dash.home.TableHeader.ResourceName">
+ <display:disambiguatedResourceNameDecorator resourceName="${obj.original.resourceName}" resourceId="${obj.original.resourceId}" disambiguationReport="${obj}"/>
+ </display:column>
+ <display:column width="20%" title="dash.home.TableHeader.Location">
+ <display:disambiguatedResourceLineageDecorator parents="${obj.parents}"/>
+ </display:column>
<display:column width="10%" property="original.numAlerts" title="dash.home.TableHeader.Alerts" align="center"/>
<display:column width="10%" property="original.availabilityType" title="resource.common.monitor.visibility.CAvailabilityTH" align="center" >
<display:availabilitydecorator/>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
index a347bb3..58e74b7 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
@@ -24,14 +24,15 @@
<tiles:importAttribute name="alerts"/>
<c:choose >
- <c:when test="${not empty resourceHealth}">
-
- <display:table cellspacing="0" cellpadding="0" width="100%" action="/Dashboard.do"
+ <c:when test="${not empty resourceHealth}">
+ <display:table cellspacing="0" cellpadding="0" width="100%" action="/Dashboard.do"
var="item" items="${resourceHealth}" >
-
- <display:column width="25%" href="/rhq/resource/summary/overview.xhtml?id=${item.original.id}" property="original.name" sortAttr="res.name" title="dash.home.TableHeader.ResourceName"/>
- <display:column width="25%" property="original.typeName" title="dash.home.TableHeader.Type"/>
- <display:column width="25%" property="lineage" title="dash.home.TableHeader.Location"/>
+ <display:column width="25%" sortAttr="res.name" title="dash.home.TableHeader.ResourceName">
+ <display:disambiguatedResourceNameDecorator resourceName="${item.original.name}" disambiguationReport="${item}" resourceId="${item.original.id}"/>
+ </display:column>
+ <display:column width="25%" title="dash.home.TableHeader.Location">
+ <display:disambiguatedResourceLineageDecorator parents="${item.parents}"/>
+ </display:column>
<c:if test="${alerts}">
<display:column width="10%" property="original.alerts" title="dash.home.TableHeader.Alerts" align="center"/>
</c:if>
@@ -42,9 +43,7 @@
</display:column>
</c:if>
</display:table>
-
<tiles:insert definition=".dashContent.seeAll"/>
-
</c:when>
<c:otherwise>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
commit dcfd561e28af59dddaa52cad801733c14eebee1c
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 17 20:06:53 2010 +0200
Implementing the JSP tags for disambiguated resources...
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java
new file mode 100644
index 0000000..77e49d8
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceLineageTag.java
@@ -0,0 +1,91 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.legacy.taglib.display;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspTagException;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+import org.rhq.enterprise.gui.inventory.resource.DisambiguatedResourceLineageComponent;
+
+/**
+ * Renders the location of a disambiguated resource.
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceLineageTag extends TagSupport {
+ private static final long serialVersionUID = 1L;
+
+ private List<DisambiguationReport.Resource> parents;
+ private Boolean renderLinks;
+
+ public List<DisambiguationReport.Resource> getParents() {
+ return parents;
+ }
+
+ public void setParents(List<DisambiguationReport.Resource> parents) {
+ this.parents = parents;
+ }
+
+ public Boolean getRenderLinks() {
+ return renderLinks;
+ }
+
+ public void setRenderLinks(Boolean renderLinks) {
+ this.renderLinks = renderLinks;
+ }
+
+ @Override
+ public int doEndTag() throws JspException {
+ JspWriter writer = pageContext.getOut();
+
+ try {
+ if (parents != null && parents.size() > 0) {
+
+ Iterator<DisambiguationReport.Resource> it = parents.iterator();
+ DisambiguationReport.Resource parent = it.next();
+ DisambiguatedResourceNameTag.writeResource(writer, renderLinks, parent.getId(), parent.getName(),
+ parent.getType());
+
+ while (it.hasNext()) {
+ writer.append(DisambiguatedResourceLineageComponent.DEFAULT_SEPARATOR);
+ parent = it.next();
+ DisambiguatedResourceNameTag.writeResource(writer, renderLinks, parent.getId(), parent.getName(),
+ parent.getType());
+ }
+ }
+
+ return super.doEndTag();
+ } catch (IOException e) {
+ throw new JspTagException(e);
+ }
+ }
+
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
new file mode 100644
index 0000000..240f4f8
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/taglib/display/DisambiguatedResourceNameTag.java
@@ -0,0 +1,129 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.legacy.taglib.display;
+
+import java.io.IOException;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspTagException;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceNameTag extends TagSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ private DisambiguationReport<?> disambiguatedReport;
+ private String resourceName;
+ private Integer resourceId;
+ private Boolean nameAsLink;
+
+ public DisambiguationReport<?> getDisambiguatedReport() {
+ return disambiguatedReport;
+ }
+
+ public void setDisambiguatedReport(DisambiguationReport<?> disambiguatedReport) {
+ this.disambiguatedReport = disambiguatedReport;
+ }
+
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ public void setResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ }
+
+ public Integer getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceId(Integer resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ public Boolean getNameAsLink() {
+ return nameAsLink;
+ }
+
+ public void setNameAsLink(Boolean nameAsLink) {
+ this.nameAsLink = nameAsLink;
+ }
+
+ @Override
+ public int doEndTag() throws JspException {
+ JspWriter writer = pageContext.getOut();
+
+ try {
+ if (disambiguatedReport != null) {
+
+ DisambiguationReport.ResourceType resourceType = disambiguatedReport.getResourceType();
+
+ //default to true
+ boolean renderLink = nameAsLink == null || nameAsLink.booleanValue();
+
+ writeResource(writer, renderLink, resourceId, resourceName, resourceType);
+ }
+
+ return super.doEndTag();
+ } catch (IOException e) {
+ throw new JspTagException(e);
+ }
+ }
+
+ public static void writeResource(JspWriter writer, boolean renderLink, int resourceId, String resourceName, DisambiguationReport.ResourceType resourceType) throws IOException {
+ if (!resourceType.isSingleton()) {
+ writer.append(resourceType.getName()).append(" ");
+
+ if (resourceType.getPlugin() != null) {
+ writer.append("(").append(resourceType.getPlugin())
+ .append(" plugin) ");
+ }
+ }
+
+ if (renderLink) {
+ writer.append("<a href=\"/rhq/resource/summary/overview.xhtml?id=");
+ writer.print(resourceId);
+ writer.append("\">");
+ }
+
+ writer.append(resourceName);
+
+ if (renderLink) {
+ writer.append("</a>");
+ }
+
+ if (resourceType.isSingleton() && resourceType.getPlugin() != null) {
+ writer.append(" ").append(resourceType.getPlugin())
+ .append(" plugin)");
+ }
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
index 15c0f95..eefd1e1 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tld/display.tld
@@ -889,4 +889,52 @@
</display:table>
]]> </example>
</tag>
+
+ <tag>
+ <name>disambiguatedResourceName</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceNameTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>disambiguationReport</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>org.rhq.core.domain.resource.composite.DisambiguationReport</type>
+ </attribute>
+ <attribute>
+ <name>resourceName</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>String</type>
+ </attribute>
+ <attribute>
+ <name>resourceId</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>Integer</type>
+ </attribute>
+ <attribute>
+ <name>nameAsLink</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <name>disambiguatedResourceLineage</name>
+ <tag-class>org.rhq.enterprise.gui.legacy.taglib.display.DisambiguatedResourceLineageTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>parents</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.util.List</type>
+ </attribute>
+ <attribute>
+ <name>renderLinks</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>Boolean</type>
+ </attribute>
+ </tag>
</taglib>
commit 1cd199930a8af38a2384d143e2251a8af1a82192
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 17 20:06:25 2010 +0200
Fixes to the DisambiguatedResourceNameComponent
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
index b189de9..eefb034 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
@@ -26,28 +26,39 @@ package org.rhq.enterprise.gui.inventory.resource;
import javax.faces.component.UIComponentBase;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
+import org.rhq.core.gui.util.FacesComponentUtility;
/**
- *
+ * Component for displaying a resource name together with disambiguation
+ * information.
*
* @author Lukas Krejci
*/
public class DisambiguatedResourceNameComponent extends UIComponentBase {
public static final String COMPONENT_TYPE = "org.jboss.on.DisambiguatedResourceName";
public static final String COMPONENT_FAMILY = "org.jboss.on.DisambiguatedResourceName";
-
+ private static final String DISAMBIGUATION_REPORT_ATTRIBUTE = "disambiguationReport";
+ private static final String RESOURCE_NAME_ATTRIBUTE = "resourceName";
+ private static final String RESOURCE_ID_ATTRIBUTE = "resourceId";
+ private static final String NAME_AS_LINK_ATTRIBUTE = "nameAsLink";
+
private DisambiguationReport<?> disambiguationReport;
private String resourceName;
- private int resourceId;
- private boolean nameAsLink = true;
-
+ private Integer resourceId;
+ private Boolean nameAsLink;
+
@Override
public String getFamily() {
return COMPONENT_FAMILY;
}
public DisambiguationReport<?> getDisambiguationReport() {
- return disambiguationReport;
+ if (disambiguationReport == null) {
+ return FacesComponentUtility.getExpressionAttribute(this, DISAMBIGUATION_REPORT_ATTRIBUTE,
+ DisambiguationReport.class);
+ } else {
+ return disambiguationReport;
+ }
}
public void setDisambiguationReport(DisambiguationReport<?> disambiguationReport) {
@@ -55,7 +66,11 @@ public class DisambiguatedResourceNameComponent extends UIComponentBase {
}
public String getResourceName() {
- return resourceName;
+ if (resourceName == null) {
+ return FacesComponentUtility.getExpressionAttribute(this, RESOURCE_NAME_ATTRIBUTE);
+ } else {
+ return resourceName;
+ }
}
public void setResourceName(String resourceName) {
@@ -63,7 +78,12 @@ public class DisambiguatedResourceNameComponent extends UIComponentBase {
}
public boolean isNameAsLink() {
- return nameAsLink;
+ if (nameAsLink == null) {
+ Boolean ret = FacesComponentUtility.getExpressionAttribute(this, NAME_AS_LINK_ATTRIBUTE, Boolean.class);
+ return ret == null ? true : ret;
+ } else {
+ return nameAsLink;
+ }
}
public void setNameAsLink(boolean nameAsLink) {
@@ -71,7 +91,12 @@ public class DisambiguatedResourceNameComponent extends UIComponentBase {
}
public int getResourceId() {
- return resourceId;
+ if (resourceId == null) {
+ Integer ret = FacesComponentUtility.getExpressionAttribute(this, RESOURCE_ID_ATTRIBUTE, Integer.class);
+ return ret == null ? 0 : ret;
+ } else {
+ return resourceId;
+ }
}
public void setResourceId(int resourceId) {
commit 2e8907e9e8f025de47f5b036f5703ad284f5d250
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 17 14:58:17 2010 +0200
Renaming ResourcePartialLineage* to DisambiguatedResourceLineage* and adding a new DisambiguatedResourceName(Component|Renderer) to easily change the way we render a disambiguated resource name uniformly across the (JSF based) UI.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageComponent.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageComponent.java
new file mode 100644
index 0000000..d02d26e
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageComponent.java
@@ -0,0 +1,118 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.inventory.resource;
+
+import java.util.List;
+
+import javax.faces.component.UIComponentBase;
+import javax.faces.context.FacesContext;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+import org.rhq.core.gui.util.FacesComponentUtility;
+
+/**
+ * A component for displaying partial resource lineage that comes out of the resource name
+ * disambiguation procedure.
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceLineageComponent extends UIComponentBase {
+ public static final String COMPONENT_TYPE = "org.jboss.on.DisambiguatedResourceLineage";
+ public static final String COMPONENT_FAMILY = "org.jboss.on.DisambiguatedResourceLineage";
+
+ public static final String DEFAULT_SEPARATOR = " > ";
+
+ private static final String PARENTS_ATTRIBUTE = "parents";
+ private static final String RENDER_LINKS_ATTRIBUTE = "renderLinks";
+ private static final String SEPARATOR_ATTRIBUTE = "separator";
+
+ private Boolean renderLinks;
+ private String separator;
+ private List<DisambiguationReport.Resource> parents;
+
+ public String getFamily() {
+ return COMPONENT_FAMILY;
+ }
+
+ public Boolean getRenderLinks() {
+ if (renderLinks == null) {
+ renderLinks = FacesComponentUtility.getExpressionAttribute(this, RENDER_LINKS_ATTRIBUTE, Boolean.class);
+ if (renderLinks == null) {
+ renderLinks = true;
+ }
+ }
+ return renderLinks;
+ }
+
+
+ public void setRenderLinks(Boolean renderLinks) {
+ this.renderLinks = renderLinks;
+ }
+
+
+ public String getSeparator() {
+ if (separator == null) {
+ separator = FacesComponentUtility.getExpressionAttribute(this, SEPARATOR_ATTRIBUTE, String.class);
+ if (separator == null) {
+ separator = DEFAULT_SEPARATOR;
+ }
+ }
+ return separator;
+ }
+
+ public void setSeparator(String separator) {
+ this.separator = separator;
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<DisambiguationReport.Resource> getParents() {
+ if (parents == null) {
+ //do *NOT* store this value into the parents explicitly
+ //unless dynamic updates (if the expression is in loop for example)
+ //won't work.
+ return FacesComponentUtility.getExpressionAttribute(this, PARENTS_ATTRIBUTE, List.class);
+ } else {
+ return parents;
+ }
+ }
+
+ public void setParents(List<DisambiguationReport.Resource> parents) {
+ this.parents = parents;
+ }
+
+ public Object saveState(FacesContext facesContext) {
+ Object[] state = new Object[3];
+ state[0] = super.saveState(facesContext);
+ state[1] = this.renderLinks;
+ state[2] = this.separator;
+ return state;
+ }
+
+ public void restoreState(FacesContext facesContext, Object stateValues) {
+ Object[] state = (Object[]) stateValues;
+ super.restoreState(facesContext, state[0]);
+ this.renderLinks = (Boolean) state[1];
+ this.separator = (String) state[2];
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
new file mode 100644
index 0000000..bb61ae6
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceLineageRenderer.java
@@ -0,0 +1,112 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.inventory.resource;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.Renderer;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+
+/**
+ * Renderer for {@link DisambiguatedResourceLineageComponent}
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceLineageRenderer extends Renderer {
+ private static final String RESOURCE_URL = "/rhq/resource/summary/overview.xhtml";
+
+ @Override
+ public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
+ DisambiguatedResourceLineageComponent lineageComponent = (DisambiguatedResourceLineageComponent) component;
+
+ String separator = lineageComponent.getSeparator();
+ List<DisambiguationReport.Resource> parents = lineageComponent.getParents();
+ boolean renderLinks = lineageComponent.getRenderLinks();
+
+ if (parents != null && parents.size() > 0) {
+ ResponseWriter writer = context.getResponseWriter();
+
+ Iterator<DisambiguationReport.Resource> parentsIt = parents.iterator();
+
+ if (renderLinks) {
+ encodeUrl(writer, parentsIt.next());
+ while(parentsIt.hasNext()) {
+ writer.writeText(separator, null);
+ encodeUrl(writer, parentsIt.next());
+ }
+ } else {
+ encodeSimple(writer, parentsIt.next());
+ while(parentsIt.hasNext()) {
+ writer.writeText(separator, null);
+ encodeSimple(writer, parentsIt.next());
+ }
+ }
+ }
+ }
+
+ public static void encodeUrl(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ encodePreName(writer, parent);
+ writer.startElement("a", null);
+ writer.writeAttribute("href", getUrl(parent), null);
+ writer.writeText(parent.getName(), null);
+ writer.endElement("a");
+ encodePostName(writer, parent);
+ }
+
+ public static void encodeSimple(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ encodePreName(writer, parent);
+ writer.writeText(parent.getName(), null);
+ encodePostName(writer, parent);
+ }
+
+ private static String getUrl(DisambiguationReport.Resource parent) {
+ return RESOURCE_URL + "?id=" + parent.getId();
+ }
+
+ private static void encodePreName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ if (!parent.getType().isSingleton()) {
+ writer.writeText(parent.getType().getName(), null);
+ writer.writeText(" ", null);
+ if (parent.getType().getPlugin() != null) {
+ writer.writeText("(", null);
+ writer.writeText(parent.getType().getPlugin(), null);
+ writer.writeText(" plugin) ", null);
+ }
+ }
+ }
+
+ private static void encodePostName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ if (parent.getType().isSingleton() && parent.getType().getPlugin() != null) {
+ writer.writeText(" (", null);
+ writer.writeText(parent.getType().getPlugin(), null);
+ writer.writeText(" plugin) ", null);
+ }
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
new file mode 100644
index 0000000..b189de9
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameComponent.java
@@ -0,0 +1,80 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.inventory.resource;
+
+import javax.faces.component.UIComponentBase;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceNameComponent extends UIComponentBase {
+ public static final String COMPONENT_TYPE = "org.jboss.on.DisambiguatedResourceName";
+ public static final String COMPONENT_FAMILY = "org.jboss.on.DisambiguatedResourceName";
+
+ private DisambiguationReport<?> disambiguationReport;
+ private String resourceName;
+ private int resourceId;
+ private boolean nameAsLink = true;
+
+ @Override
+ public String getFamily() {
+ return COMPONENT_FAMILY;
+ }
+
+ public DisambiguationReport<?> getDisambiguationReport() {
+ return disambiguationReport;
+ }
+
+ public void setDisambiguationReport(DisambiguationReport<?> disambiguationReport) {
+ this.disambiguationReport = disambiguationReport;
+ }
+
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ public void setResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ }
+
+ public boolean isNameAsLink() {
+ return nameAsLink;
+ }
+
+ public void setNameAsLink(boolean nameAsLink) {
+ this.nameAsLink = nameAsLink;
+ }
+
+ public int getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceId(int resourceId) {
+ this.resourceId = resourceId;
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java
new file mode 100644
index 0000000..07c7ecd
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/DisambiguatedResourceNameRenderer.java
@@ -0,0 +1,62 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.inventory.resource;
+
+import java.io.IOException;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.Renderer;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+
+/**
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceNameRenderer extends Renderer {
+
+ @Override
+ public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
+ DisambiguatedResourceNameComponent nameComponent = (DisambiguatedResourceNameComponent) component;
+
+ ResponseWriter writer = context.getResponseWriter();
+
+ DisambiguationReport<?> report = nameComponent.getDisambiguationReport();
+ String resourceName = nameComponent.getResourceName();
+ int resourceId = nameComponent.getResourceId();
+
+ DisambiguationReport.ResourceType resourceType = report.getResourceType();
+
+ DisambiguationReport.Resource resource = new DisambiguationReport.Resource(resourceId, resourceName, resourceType);
+
+ if (nameComponent.isNameAsLink()) {
+ DisambiguatedResourceLineageRenderer.encodeUrl(writer, resource);
+ } else {
+ DisambiguatedResourceLineageRenderer.encodeSimple(writer, resource);
+ }
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java
deleted file mode 100644
index 98502bc..0000000
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.enterprise.gui.inventory.resource;
-
-import java.util.List;
-
-import javax.faces.component.UIComponentBase;
-import javax.faces.context.FacesContext;
-
-import org.rhq.core.domain.resource.composite.DisambiguationReport;
-import org.rhq.core.gui.util.FacesComponentUtility;
-
-/**
- * A component for displaying partial resource lineage that comes out of the resource name
- * disambiguation procedure.
- *
- * @author Lukas Krejci
- */
-public class ResourcePartialLineageComponent extends UIComponentBase {
- public static final String COMPONENT_TYPE = "org.jboss.on.ResourcePartialLineage";
- public static final String COMPONENT_FAMILY = "org.jboss.on.ResourcePartialLineage";
-
- public static final String DEFAULT_SEPARATOR = " > ";
-
- private static final String PARENTS_ATTRIBUTE = "parents";
- private static final String RENDER_LINKS_ATTRIBUTE = "renderLinks";
- private static final String SEPARATOR_ATTRIBUTE = "separator";
-
- private Boolean renderLinks;
- private String separator;
- private List<DisambiguationReport.Resource> parents;
-
- public String getFamily() {
- return COMPONENT_FAMILY;
- }
-
- public Boolean getRenderLinks() {
- if (renderLinks == null) {
- renderLinks = FacesComponentUtility.getExpressionAttribute(this, RENDER_LINKS_ATTRIBUTE, Boolean.class);
- if (renderLinks == null) {
- renderLinks = true;
- }
- }
- return renderLinks;
- }
-
-
- public void setRenderLinks(Boolean renderLinks) {
- this.renderLinks = renderLinks;
- }
-
-
- public String getSeparator() {
- if (separator == null) {
- separator = FacesComponentUtility.getExpressionAttribute(this, SEPARATOR_ATTRIBUTE, String.class);
- if (separator == null) {
- separator = DEFAULT_SEPARATOR;
- }
- }
- return separator;
- }
-
- public void setSeparator(String separator) {
- this.separator = separator;
- }
-
- @SuppressWarnings("unchecked")
- public List<DisambiguationReport.Resource> getParents() {
- if (parents == null) {
- //do *NOT* store this value into the parents explicitly
- //unless dynamic updates (if the expression is in loop for example)
- //won't work.
- return FacesComponentUtility.getExpressionAttribute(this, PARENTS_ATTRIBUTE, List.class);
- } else {
- return parents;
- }
- }
-
- public void setParents(List<DisambiguationReport.Resource> parents) {
- this.parents = parents;
- }
-
- public Object saveState(FacesContext facesContext) {
- Object[] state = new Object[3];
- state[0] = super.saveState(facesContext);
- state[1] = this.renderLinks;
- state[2] = this.separator;
- return state;
- }
-
- public void restoreState(FacesContext facesContext, Object stateValues) {
- Object[] state = (Object[]) stateValues;
- super.restoreState(facesContext, state[0]);
- this.renderLinks = (Boolean) state[1];
- this.separator = (String) state[2];
- }
-}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
deleted file mode 100644
index 9cd471e..0000000
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.enterprise.gui.inventory.resource;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-import javax.faces.render.Renderer;
-
-import org.rhq.core.domain.resource.composite.DisambiguationReport;
-
-/**
- * Renderer for {@link ResourcePartialLineageComponent}
- *
- * @author Lukas Krejci
- */
-public class ResourcePartialLineageRenderer extends Renderer {
- private static final String RESOURCE_URL = "/rhq/resource/summary/overview.xhtml";
-
- @Override
- public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
- ResourcePartialLineageComponent lineageComponent = (ResourcePartialLineageComponent) component;
-
- String separator = lineageComponent.getSeparator();
- List<DisambiguationReport.Resource> parents = lineageComponent.getParents();
- boolean renderLinks = lineageComponent.getRenderLinks();
-
- if (parents != null && parents.size() > 0) {
- ResponseWriter writer = context.getResponseWriter();
-
- Iterator<DisambiguationReport.Resource> parentsIt = parents.iterator();
-
- if (renderLinks) {
- encodeUrl(writer, parentsIt.next());
- while(parentsIt.hasNext()) {
- writer.writeText(separator, null);
- encodeUrl(writer, parentsIt.next());
- }
- } else {
- encodeSimple(writer, parentsIt.next());
- while(parentsIt.hasNext()) {
- writer.writeText(separator, null);
- encodeSimple(writer, parentsIt.next());
- }
- }
- }
- }
-
- private void encodeUrl(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
- encodePreName(writer, parent);
- writer.startElement("a", null);
- writer.writeAttribute("href", getUrl(parent), null);
- writer.writeText(parent.getName(), null);
- writer.endElement("a");
- encodePostName(writer, parent);
- }
-
- private void encodeSimple(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
- encodePreName(writer, parent);
- writer.writeText(parent.getName(), null);
- encodePostName(writer, parent);
- }
-
- private static String getUrl(DisambiguationReport.Resource parent) {
- return RESOURCE_URL + "?id=" + parent.getId();
- }
-
- private void encodePreName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
- if (!parent.getType().isSingleton()) {
- writer.writeText(parent.getType().getName(), null);
- writer.writeText(" ", null);
- if (parent.getType().getPlugin() != null) {
- writer.writeText(" (", null);
- writer.writeText(parent.getType().getPlugin(), null);
- writer.writeText(" plugin) ", null);
- }
- }
- }
-
- private void encodePostName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
- if (parent.getType().isSingleton() && parent.getType().getPlugin() != null) {
- writer.writeText(" (", null);
- writer.writeText(parent.getType().getPlugin(), null);
- writer.writeText(" plugin) ", null);
- }
- }
-}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
index 082425d..c52d2b9 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
@@ -44,8 +44,7 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.IntExtractor;
-import org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageComponent;
-import org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageRenderer;
+import org.rhq.enterprise.gui.inventory.resource.DisambiguatedResourceLineageComponent;
import org.rhq.enterprise.gui.legacy.Constants;
import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.RequestUtils;
@@ -223,7 +222,7 @@ public class AddGroupResourcesFormPrepareAction extends Action {
StringBuilder bld = new StringBuilder(it.next().getName());
while (it.hasNext()) {
- bld.append(ResourcePartialLineageComponent.DEFAULT_SEPARATOR).append(it.next().getName());
+ bld.append(DisambiguatedResourceLineageComponent.DEFAULT_SEPARATOR).append(it.next().getName());
}
return bld.toString();
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-components/inventory-components.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-components/inventory-components.xml
index 2d20275..d8865f1 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-components/inventory-components.xml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-components/inventory-components.xml
@@ -15,15 +15,25 @@
</component>
<component>
- <component-type>org.jboss.on.ResourcePartialLineage</component-type>
- <component-class>org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageComponent</component-class>
+ <component-type>org.jboss.on.DisambiguatedResourceLineage</component-type>
+ <component-class>org.rhq.enterprise.gui.inventory.resource.DisambiguatedResourceLineageComponent</component-class>
<component-extension>
- <component-family>org.jboss.on.ResourcePartialLineage</component-family>
- <renderer-type>org.jboss.on.ResourcePartialLineage</renderer-type>
+ <component-family>org.jboss.on.DisambiguatedResourceLineage</component-family>
+ <renderer-type>org.jboss.on.DisambiguatedResourceLineage</renderer-type>
</component-extension>
</component>
+ <component>
+ <component-type>org.jboss.on.DisambiguatedResourceName</component-type>
+ <component-class>org.rhq.enterprise.gui.inventory.resource.DisambiguatedResourceNameComponent</component-class>
+
+ <component-extension>
+ <component-family>org.jboss.on.DisambiguatedResourceName</component-family>
+ <renderer-type>org.jboss.on.DisambiguatedResourceName</renderer-type>
+ </component-extension>
+ </component>
+
<render-kit>
<renderer>
<description>renderer for a ResourceLineage component</description>
@@ -32,10 +42,16 @@
<renderer-class>org.rhq.enterprise.gui.inventory.resource.ResourceLineageRenderer</renderer-class>
</renderer>
<renderer>
- <description>renderer for a ResourcePartialLineage component</description>
- <component-family>org.jboss.on.ResourcePartialLineage</component-family>
- <renderer-type>org.jboss.on.ResourcePartialLineage</renderer-type>
- <renderer-class>org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageRenderer</renderer-class>
+ <description>renderer for a DisambiguatedResourceLineage component</description>
+ <component-family>org.jboss.on.DisambiguatedResourceLineage</component-family>
+ <renderer-type>org.jboss.on.DisambiguatedResourceLineage</renderer-type>
+ <renderer-class>org.rhq.enterprise.gui.inventory.resource.DisambiguatedResourceLineageRenderer</renderer-class>
+ </renderer>
+ <renderer>
+ <description>renderer for a DisambiguatedResourceName component</description>
+ <component-family>org.jboss.on.DisambiguatedResourceName</component-family>
+ <renderer-type>org.jboss.on.DisambiguatedResourceName</renderer-type>
+ <renderer-class>org.rhq.enterprise.gui.inventory.resource.DisambiguatedResourceNameRenderer</renderer-class>
</renderer>
</render-kit>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tags/on.component.taglib.xml b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tags/on.component.taglib.xml
index 665299a..1f06adf 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tags/on.component.taglib.xml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/tags/on.component.taglib.xml
@@ -97,10 +97,18 @@
</tag>
<tag>
- <tag-name>resourcePartialLineage</tag-name>
+ <tag-name>disambiguatedResourceLineage</tag-name>
<component>
- <component-type>org.jboss.on.ResourcePartialLineage</component-type>
- <renderer-type>org.jboss.on.ResourcePartialLineage</renderer-type>
+ <component-type>org.jboss.on.DisambiguatedResourceLineage</component-type>
+ <renderer-type>org.jboss.on.DisambiguatedResourceLineage</renderer-type>
+ </component>
+ </tag>
+
+ <tag>
+ <tag-name>disambiguatedResourceName</tag-name>
+ <component>
+ <component-type>org.jboss.on.DisambiguatedResourceName</component-type>
+ <renderer-type>org.jboss.on.DisambiguatedResourceName</renderer-type>
</component>
</tag>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml
index 3bbce89..eeedfee 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menuitem.xhtml
@@ -234,6 +234,9 @@ currentMenuItem - the org.rhq.enterprise.server.perspective.menuItem to render
<h:column>
<f:facet name="header">Resource</f:facet>
<h:outputText value="#{result.original.resource.name}" />
+ <onc:disambiguatedResourceName resourceName="#{result.original.resource.name}"
+ resourceId="#{result.original.resource.id}" disambiguationReport="#{result}"
+ nameAsLink="false" />
</h:column>
<h:column rendered="#{result.typeResolutionNeeded}">
<f:facet name="header">Type</f:facet>
@@ -241,7 +244,7 @@ currentMenuItem - the org.rhq.enterprise.server.perspective.menuItem to render
</h:column>
<h:column rendered="#{result.parentResolutionNeeded}">
<f:facet name="header">Parent</f:facet>
- <onc:resourcePartialLineage parents="#{result.parents}" renderLinks="false" />
+ <onc:disambiguatedResourceLineage parents="#{result.parents}" renderLinks="false" />
</h:column>
</rich:suggestionbox>
</h:panelGroup>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml
index 28edad0..347697e 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repo.xhtml
@@ -416,6 +416,8 @@
</onc:sortableColumnHeader>
</f:facet>
+ <onc:disambiguatedResourceName resourceName="#{resourceitem.original.name}"
+ resourceId="#{resourceitem.original.id}" disambiguationReport="#{resourceitem}" />
<h:outputLink value="#{onf:getDefaultResourceTabURL()}">
<f:param name="id" value="#{resourceitem.original.id}" />
<h:outputText value="#{resourceitem.original.name}" />
@@ -426,7 +428,7 @@
<f:facet name="header">
<h:outputText value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{resourceitem.parents}"/>
+ <onc:disambiguatedResourceLineage parents="#{resourceitem.parents}"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
index 2977cda..01d1a57 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/content/repoSubscriptions.xhtml
@@ -103,17 +103,15 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{resourceitem.original.id}"/>
- <h:outputText value="#{resourceitem.original.name}" />
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{resourceitem.original.name}"
+ resourceId="#{resourceitem.original.id}" disambiguationReport="#{resourceitem}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{resourceitem.parents}" />
+ <onc:disambiguatedResourceLineage parents="#{resourceitem.parents}" />
</rich:column>
<rich:column>
@@ -246,10 +244,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{availableitem.original.id}"/>
- <h:outputText value="#{availableitem.original.name}" />
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{resourceitem.original.name}"
+ resourceId="#{resourceitem.original.id}" disambiguationReport="#{resourceitem}" />
</rich:column>
<rich:column>
@@ -257,7 +253,7 @@
<h:outputText value="Parent"/>
</f:facet>
- <onc:resourcePartialLineage parents="#{availableitem.parents}"/>
+ <onc:disambiguatedResourceLineage parents="#{availableitem.parents}"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
index a7076f4..c189e92 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/inventory/view.xhtml
@@ -229,10 +229,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{resourceWithAvailability.original.resource.id}"/>
- <h:outputText value="#{resourceWithAvailability.original.resource.name}"/>
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{resourceWithAvailability.original.resource.name}"
+ resourceId="#{resourceWithAvailability.original.resource.id}" disambiguationReport="#{resourceWithAvailability}" />
</rich:column>
<rich:column >
@@ -240,7 +238,7 @@
<h:outputText styleClass="headerText" value="Parent"/>
</f:facet>
- <onc:resourcePartialLineage parents="#{resourceWithAvailability.parents}" />
+ <onc:disambiguatedResourceLineage parents="#{resourceWithAvailability.parents}" />
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
index 9f132c8..c4969a8 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/group/layout/summary.xhtml
@@ -179,10 +179,8 @@ groupId - the group id of the Group being accessed
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{resourceWithAvailability.original.resource.id}"/>
- <h:outputText value="#{resourceWithAvailability.original.resource.name}"/>
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{resourceWithAvailability.original.resource.name}"
+ resourceId="#{resourceWithAvailability.original.resource.id}" disambiguationReport="#{resourceWithAvailability}" />
</rich:column>
<rich:column>
@@ -190,7 +188,7 @@ groupId - the group id of the Group being accessed
<h:outputText styleClass="headerText" value="Parent"/>
</f:facet>
- <onc:resourcePartialLineage parents="#{resourceWithAvailability.parents}"/>
+ <onc:disambiguatedResourceLineage parents="#{resourceWithAvailability.parents}"/>
</rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
index b1c3495..a112891 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
@@ -130,26 +130,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{item.resourceType.singleton ? '' : item.resourceType.name}" />
- <h:outputText value="#{item.resourceType.singleton ? '' : ' '}" />
- <h:outputText value="#{not item.resourceType.singleton and item.resourceType.plugin != null ? '(' : ''}" />
- <h:outputText value="#{not item.resourceType.singleton and item.resourceType.plugin != null ? item.resourceType.plugin : ''}" />
- <h:outputText value="#{not item.resourceType.singleton and item.resourceType.plugin != null ? ' plugin) ' : ''}" />
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{item.original.resource.id}" />
- <!--
- <h:outputText value="#{item.original.resource.name}" />
- <h:outputText value="#{item.resourceType.singleton ? '' : ' ('}" />
- <h:outputText value="#{item.resourceType.singleton ? '' : item.original.resource.resourceType.name}" />
- <h:outputText value="#{not item.resourceType.singleton and browseResourcesDataModel.currentPageNeedsPluginResolution ? ', plugin ' : ''}" />
- <h:outputText value="#{not item.resourceType.singleton and browseResourcesDataModel.currentPageNeedsPluginResolution ? item.resourceType.plugin : ''}" />
- <h:outputText value="#{item.resourceType.singleton ? '' : ')'}" />
- -->
- <h:outputText value="#{item.original.resource.name}" />
- </h:outputLink>
- <h:outputText value="#{item.resourceType.singleton and item.resourceType.plugin != null ? ' (' : ''}" />
- <h:outputText value="#{item.resourceType.singleton and item.resourceType.plugin != null ? item.resourceType.plugin : ''}" />
- <h:outputText value="#{item.resourceType.singleton and item.resourceType.plugin != null ? ' plugin)' : ''}" />
+ <onc:disambiguatedResourceName resourceName="#{item.original.resource.name}"
+ resourceId="#{item.original.resource.id}" disambiguationReport="#{item}"/>
</rich:column>
<!--
<rich:column>
@@ -167,7 +149,7 @@
<h:outputText styleClass="headerText" value="Location" />
</f:facet>
- <onc:resourcePartialLineage parents="#{item.parents}" renderLinks="true"/>
+ <onc:disambiguatedResourceLineage parents="#{item.parents}" renderLinks="true"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml
index 6e46aff..287e571 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/resourcePicker.xhtml
@@ -98,7 +98,9 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputText value="#{item.original.resource.name}" />
+ <onc:disambiguatedResourceName resourceName="#{item.original.resource.name}"
+ resourceId="#{item.original.resource.id}" disambiguationReport="#{item}"
+ nameAsLink="false" />
</rich:column>
<rich:column>
@@ -106,7 +108,7 @@
<h:outputText styleClass="headerText" value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{item.parents}" renderLinks="false"/>
+ <onc:disambiguatedResourceLineage parents="#{item.parents}" renderLinks="false"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml
index 863357b..bf85748 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertDefinitions.xhtml
@@ -100,10 +100,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{item.original.alertDefinition.resource.id}" />
- <h:outputText value="#{item.original.alertDefinition.resource.name}" />
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{item.original.alertDefinition.resource.name}"
+ resourceId="#{item.original.alertDefinition.resource.id}" disambiguationReport="#{item}"/>
</rich:column>
<rich:column>
@@ -111,7 +109,7 @@
<h:outputText styleClass="headerText" value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{item.parents}"/>
+ <onc:disambiguatedResourceLineage parents="#{item.parents}"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml
index f2ca8fd..e97f9fc 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/alertHistory.xhtml
@@ -100,10 +100,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{item.original.alert.alertDefinition.resource.id}" />
- <h:outputText value="#{item.original.alert.alertDefinition.resource.name}" />
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{item.original.alert.alertDefinition.resource.name}"
+ resourceId="#{item.original.alert.alertDefinition.resource.id}" disambiguationReport="#{item}"/>
</rich:column>
<rich:column>
@@ -111,7 +109,7 @@
<h:outputText styleClass="headerText" value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{item.parents}"/>
+ <onc:disambiguatedResourceLineage parents="#{item.parents}"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/configurationUpdate.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/configurationUpdate.xhtml
index a07d657..1de7009 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/configurationUpdate.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/configurationUpdate.xhtml
@@ -91,10 +91,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{item.original.resourceId}" />
- <h:outputText value="#{item.original.resourceName}" />
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{item.original.resourceName}"
+ resourceId="#{item.original.resourceId}" disambiguationReport="#{item}"/>
</rich:column>
<rich:column>
@@ -102,7 +100,7 @@
<h:outputText styleClass="headerText" value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{item.parents}" />
+ <onc:disambiguatedResourceLineage parents="#{item.parents}" />
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/oobHistory.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/oobHistory.xhtml
index a7cebd5..8559c91 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/oobHistory.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/oobHistory.xhtml
@@ -96,10 +96,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{item.original.resourceId}" />
- <h:outputText value="#{item.original.resourceName}" />
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{item.original.resourceName}"
+ resourceId="#{item.original.resourceId}" disambiguationReport="#{item}"/>
</rich:column>
<rich:column>
@@ -107,7 +105,7 @@
<h:outputText styleClass="headerText" value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{item.parents}"/>
+ <onc:disambiguatedResourceLineage parents="#{item.parents}"/>
</rich:column>
<rich:column>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/operationHistory.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/operationHistory.xhtml
index 302037d..0259872 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/operationHistory.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/subsystem/operationHistory.xhtml
@@ -91,10 +91,8 @@
</onc:sortableColumnHeader>
</f:facet>
- <h:outputLink value="#{onf:getDefaultResourceTabURL()}">
- <f:param name="id" value="#{item.original.history.resource.id}" />
- <h:outputText value="#{item.original.history.resource.name}" />
- </h:outputLink>
+ <onc:disambiguatedResourceName resourceName="#{item.original.history.resource.name}"
+ resourceId="#{item.original.history.resource.id}" disambiguationReport="#{item}"/>
</rich:column>
<rich:column>
@@ -102,7 +100,7 @@
<h:outputText styleClass="headerText" value="Parent" />
</f:facet>
- <onc:resourcePartialLineage parents="#{item.parents}" />
+ <onc:disambiguatedResourceLineage parents="#{item.parents}" />
</rich:column>
<rich:column>
commit 8de71a4dcd50f65586ebc2d3bc400b0055265496
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue May 11 21:39:51 2010 +0200
Moving stuff around to make more sense + making the DisambiguationUpdatePolicy an interface to allow for new impls.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index f7b2381..ed96aa5 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -862,89 +862,8 @@ public class Resource implements Comparable<Resource>, Serializable {
public static final String QUERY_RESOURCE_REPORT = "Resource.findResourceReport";
public static final String QUERY_RESOURCE_VERSION_REPORT = "Resource.findResourceVersionReport";
- public static final int MAX_SUPPORTED_RESOURCE_HIERARCHY_DEPTH = 7;
-
- private static final String NAME_CONCAT_SEPARATOR = "~!@#)))";
-
private static final int UUID_LENGTH = 36;
- /**
- * Helper for {@link #NATIVE_QUERY_FIND_DISAMBIGUATION_LEVEL}.
- * We need to guard against concatenation with a NULL value which
- * would yield a NULL result. We don't want that in that query, otherwise
- * we'd get skewed results for combination of resources on different
- * levels in the resource hierarchy.
- *
- * @param column
- * @return
- */
- private static String guardNullCase(String column) {
- return "(CASE WHEN " + column + " IS NULL THEN 'null' ELSE " + column + " END)";
- }
-
- /**
- * We're trying to find the minimum ancestry level that provides the disambiguate paths
- * (in terms of unique resource names) for given resources. Obviously this query only works
- * for hierarchies at most 7 levels deep (as the rest of the named queries above).
- *
- * <ul>
- * <li>target_cnt gives us the number of resources we're trying to disambiguate.
- * <li>l1_cnt gives us the number of resources with unique names,
- * <li>l2_cnt gives us the number of resources with unique names with the names of the parent taken into account,
- * <li>l3_cnt is the number of resource with unique names when parent and grandparent are included, etc.
- * </ul>
- *
- * So when the caller gets the result row of this query, s/he can reason as follows:
- * <ul>
- * <li>l1_cnt = target_cnt: the names of the resources are unique in the given set
- * <li>l2_cnt = target_cnt: the names + parent names are unique
- * <li>...
- * </ul>
- *
- * we need to do the concatenation of names instead of doing a DISTINCT over
- * more columns because (at least in Postgres) a set of columns doesn't define
- * equality operator to be used in the COUNT aggregate.
- * Thus we need to add the "unlikely separator" hack.
- *
- * This query has to be native because Hibernate doesn't understand the
- * COUNT(DISTINCT ...)) where ... is anything else than a path to a property in Hibernate terminology.
- */
- public static final String NATIVE_QUERY_FIND_DISAMBIGUATION_LEVEL = "" //
- + "SELECT COUNT(r.ID) AS target_cnt, " //
- + "COUNT(DISTINCT(t.name)) AS bare_type_cnt," //
- + "COUNT(DISTINCT(t.name || '" + NAME_CONCAT_SEPARATOR + "' || t.plugin)) AS full_type_cnt," //
- + "COUNT(DISTINCT(r.name)) AS l1_cnt," //
- + "COUNT(DISTINCT(r.name || '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p1.name") + ")) AS l2_cnt," //
- + "COUNT(DISTINCT(r.name || '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p1.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p2.name") + ")) AS l3_cnt," //
- + "COUNT(DISTINCT(r.name || '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p1.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p2.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p3.name") + ")) AS l4_cnt," //
- + "COUNT(DISTINCT(r.name || '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p1.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p2.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p3.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p4.name") + ")) AS l5_cnt," //
- + "COUNT(DISTINCT(r.name || '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p1.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p2.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p3.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p4.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p5.name") + ")) AS l6_cnt," //
- + "COUNT(DISTINCT(r.name || '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p1.name") //
- + "|| " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p2.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p3.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p4.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p5.name") //
- + " || " + " '" + NAME_CONCAT_SEPARATOR + "' || " + guardNullCase("p6.name") + ")) AS l7_cnt " //
- + "FROM " + TABLE_NAME + " r " //
- + "JOIN " + ResourceType.TABLE_NAME + " t ON r.RESOURCE_TYPE_ID = t.ID " //
- + "LEFT OUTER JOIN " + TABLE_NAME + " p1 ON r.PARENT_RESOURCE_ID = p1.ID " //
- + "LEFT OUTER JOIN " + TABLE_NAME + " p2 ON p1.PARENT_RESOURCE_ID = p2.ID " //
- + "LEFT OUTER JOIN " + TABLE_NAME + " p3 ON p2.PARENT_RESOURCE_ID = p3.ID " //
- + "LEFT OUTER JOIN " + TABLE_NAME + " p4 ON p3.PARENT_RESOURCE_ID = p4.ID " //
- + "LEFT OUTER JOIN " + TABLE_NAME + " p5 ON p4.PARENT_RESOURCE_ID = p5.ID " //
- + "LEFT OUTER JOIN " + TABLE_NAME + " p6 ON p5.PARENT_RESOURCE_ID = p6.ID " //
- + "WHERE r.ID IN (@@RESOURCE_IDS@@)";
-
private static final long serialVersionUID = 1L;
public static final Resource ROOT = null;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index d04e6cd..dbc0ffd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -124,7 +124,7 @@ import org.rhq.enterprise.server.operation.OperationManagerLocal;
import org.rhq.enterprise.server.resource.disambiguation.DisambiguationPolicy;
import org.rhq.enterprise.server.resource.disambiguation.Disambiguator;
import org.rhq.enterprise.server.resource.disambiguation.MutableDisambiguationReport;
-import org.rhq.enterprise.server.resource.disambiguation.DisambiguationUpdateStrategy;
+import org.rhq.enterprise.server.resource.disambiguation.DefaultDisambiguationUpdateStrategies;
import org.rhq.enterprise.server.resource.disambiguation.ReportPartitions;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
@@ -2106,8 +2106,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
public <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwaysIncludeParent,
IntExtractor<? super T> extractor) {
//TODO the alwaysIncludeParents is obsolete and ignored
- //DisambiguationUpdateStrategy strategy = DisambiguationUpdateStrategy.KEEP_PARENTS_TO_TOPMOST_SERVERS;
- DisambiguationUpdateStrategy strategy = DisambiguationUpdateStrategy.KEEP_ALL_PARENTS;
+ //DefaultDisambiguationUpdateStrategies strategy = DefaultDisambiguationUpdateStrategies.KEEP_PARENTS_TO_TOPMOST_SERVERS;
+ DefaultDisambiguationUpdateStrategies strategy = DefaultDisambiguationUpdateStrategies.KEEP_ALL_PARENTS;
return Disambiguator.disambiguate(results, strategy, extractor, entityManager);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java
new file mode 100644
index 0000000..c5553e3
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DefaultDisambiguationUpdateStrategies.java
@@ -0,0 +1,183 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.resource.disambiguation;
+
+import java.util.EnumSet;
+
+import org.rhq.enterprise.server.resource.disambiguation.MutableDisambiguationReport.Resource;
+
+/**
+ * This enumerates different strategies that can be used to update the results to produce disambiguated list.
+ *
+ * @author Lukas Krejci
+ */
+public enum DefaultDisambiguationUpdateStrategies implements DisambiguationUpdateStrategy {
+
+ /**
+ * The disambiguation policy is followed precisely.
+ */
+ EXACT {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ updateResources(policy, report);
+ int nofParents = policy.size() - 1;
+ if (nofParents < 0)
+ nofParents = 0;
+
+ if (nofParents == 0) {
+ report.parents.clear();
+ } else {
+ while (report.parents.size() > nofParents) {
+ report.parents.remove(report.parents.size() - 1);
+ }
+ }
+ }
+ },
+
+ /**
+ * Even if the disambiguation policy determined that parents are not needed to disambiguate the
+ * results, at least one of them is kept in the report.
+ */
+ KEEP_AT_LEAST_ONE_PARENT {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ updateResources(policy, report);
+ int nofParents = policy.size() - 1;
+ if (nofParents < 1)
+ nofParents = 1;
+
+ while (report.parents.size() > nofParents) {
+ report.parents.remove(report.parents.size() - 1);
+ }
+ }
+
+ @Override
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.allOf(ResourceResolution.class);
+ }
+ },
+
+ /**
+ * The parentage of the report is retained at least up to the server/service directly under platform.
+ * If the policy needs the platform to stay, it is of course preserved.
+ */
+ KEEP_PARENTS_TO_TOPMOST_SERVERS {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ updateResources(policy, report);
+ //only remove the platform, if the policy doesn't dictate its presence...
+ if (policy.size() > 1 && report.parents.size() > policy.size() - 1) {
+ report.parents.remove(report.parents.size() - 1);
+ }
+ }
+
+ @Override
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.allOf(ResourceResolution.class);
+ }
+ },
+
+ /**
+ * All parents are preserved no matter what the policy says.
+ */
+ KEEP_ALL_PARENTS {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ updateResources(policy, report);
+ //do nothing to the parents, keep them as they are...
+ }
+
+ @Override
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.allOf(ResourceResolution.class);
+ }
+ };
+
+ /**
+ * This updates the resources in the report according to the resolutions contained in the policy.
+ * This method is called as part of the {@link DisambiguationUpdateStrategy#update(DisambiguationPolicy, MutableDisambiguationReport)}
+ * implementations in this enum before the individual enums modify the parent list as they see fit.
+ * This method is left public because it is generic enough to be reused by other potential implementations of the
+ * {@link DisambiguationUpdateStrategy} interface.
+ *
+ * @param <T>
+ * @param policy
+ * @param report
+ */
+ public static <T> void updateResources(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ updateResource(policy.get(0), report.resource);
+
+ int disambiguationPolicyIndex = 1;
+ while (disambiguationPolicyIndex < policy.size() && disambiguationPolicyIndex - 1 < report.parents.size()) {
+ ResourceResolution parentResolution = policy.get(disambiguationPolicyIndex);
+ MutableDisambiguationReport.Resource parent = report.parents.get(disambiguationPolicyIndex - 1);
+ updateResource(parentResolution, parent);
+
+ disambiguationPolicyIndex++;
+ }
+
+ disambiguationPolicyIndex--;
+
+ //because the parents update strategy might leave more parents than this policy requires for disambiguation
+ //we need to treat those parents as well. Because they are not needed for disambiguation, treat them as
+ //if only the name and type was needed for them.
+ for (; disambiguationPolicyIndex < report.parents.size(); ++disambiguationPolicyIndex) {
+ updateResource(ResourceResolution.TYPE, report.parents.get(disambiguationPolicyIndex));
+ }
+
+ //don't replicate the plugin information on the parents if it was reported
+ //on the resource already.
+ //this has to be done on all the parents, not just the ones that are immediately needed
+ //for disambiguation. The parents update strategies might leave more parents than those needed.
+ if (policy.get(0) == ResourceResolution.PLUGIN) {
+ for (MutableDisambiguationReport.Resource parent : report.parents) {
+ if (report.resource.resourceType.plugin.equals(parent.resourceType.plugin)) {
+
+ parent.resourceType.plugin = null;
+ }
+ }
+ }
+ }
+
+ /**
+ * @return a set of resolutions for which the unique reports need to be repartitioned at the resource level.
+ * In another words this forces the disambiguation to continue on up the disambiguation chain even if the
+ * it disambiguates the resuts successfully at the resource level.
+ */
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.noneOf(ResourceResolution.class);
+ }
+
+ /**
+ * @return a set of resolutions for which uniquely disambiguated reports are to be repartitioned further.
+ * The resolutions from this set apply on the parents (on any level), unlike the resolutions from {@link #resourceLevelRepartitionableResolutions()}.
+ */
+ public EnumSet<ResourceResolution> alwaysRepartitionableResolutions() {
+ return EnumSet.noneOf(ResourceResolution.class);
+ }
+
+
+ private static void updateResource(ResourceResolution resolution, Resource resource) {
+ switch (resolution) {
+ case NAME: case TYPE:
+ resource.resourceType.plugin = null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
index 39c7f92..d4ce232 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
@@ -150,44 +150,6 @@ public class DisambiguationPolicy extends ArrayList<ResourceResolution> {
return null;
}
- public <T> void update(MutableDisambiguationReport<T> report) {
- ResourceResolution resourceResolution = this.get(0);
- resourceResolution.update(report.resource);
-
- int disambiguationPolicyIndex = 1;
- while (disambiguationPolicyIndex < this.size() && disambiguationPolicyIndex - 1 < report.parents.size()) {
- ResourceResolution parentResolution = this.get(disambiguationPolicyIndex);
- MutableDisambiguationReport.Resource parent = report.parents.get(disambiguationPolicyIndex - 1);
- parentResolution.update(parent);
-
- disambiguationPolicyIndex++;
- }
-
- disambiguationPolicyIndex--;
-
- //because the parents update strategy might leave more parents than this policy requires for disambiguation
- //we need to treat those parents as well. Because they are not needed for disambiguation, treat them as
- //if only the name and type was needed for them.
- for (; disambiguationPolicyIndex < report.parents.size(); ++disambiguationPolicyIndex) {
- ResourceResolution.TYPE.update(report.parents.get(disambiguationPolicyIndex));
- }
-
- //don't replicate the plugin information on the parents if it was reported
- //on the resource already.
- //this has to be done on all the parents, not just the ones that are immediately needed
- //for disambiguation. The parents update strategies might leave more parents than those needed.
- if (resourceResolution == ResourceResolution.PLUGIN) {
- for (MutableDisambiguationReport.Resource parent : report.parents) {
- if (report.resource.resourceType.plugin.equals(parent.resourceType.plugin)) {
-
- parent.resourceType.plugin = null;
- }
- }
- }
-
- parentsUpdateStrategy.update(this, report);
- }
-
private <T> MutableDisambiguationReport.Resource getComparingResource(MutableDisambiguationReport<T> report) {
int size = size();
if (size == 0)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
index 03b046a..c2a11a6 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
@@ -26,107 +26,36 @@ package org.rhq.enterprise.server.resource.disambiguation;
import java.util.EnumSet;
/**
- * This enumerates different strategies that can be used to update the results to produce disambiguated list.
+ * Defines a strategy for updating a results list with the disambiguation information.
*
* @author Lukas Krejci
*/
-public enum DisambiguationUpdateStrategy {
+public interface DisambiguationUpdateStrategy {
/**
- * The disambiguation policy is followed precisely.
- */
- EXACT {
- public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
- int nofParents = policy.size() - 1;
- if (nofParents < 0)
- nofParents = 0;
-
- if (nofParents == 0) {
- report.parents.clear();
- } else {
- while (report.parents.size() > nofParents) {
- report.parents.remove(report.parents.size() - 1);
- }
- }
- }
- },
-
- /**
- * Even if the disambiguation policy determined that parents are not needed to disambiguate the
- * results, at least one of them is kept in the report.
- */
- KEEP_AT_LEAST_ONE_PARENT {
- public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
- int nofParents = policy.size() - 1;
- if (nofParents < 1)
- nofParents = 1;
-
- while (report.parents.size() > nofParents) {
- report.parents.remove(report.parents.size() - 1);
- }
- }
-
- @Override
- public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
- return EnumSet.allOf(ResourceResolution.class);
- }
- },
-
- /**
- * The parentage of the report is retained at least up to the server/service directly under platform.
- * If the policy needs the platform to stay, it is of course preserved.
- */
- KEEP_PARENTS_TO_TOPMOST_SERVERS {
- public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
- //only remove the platform, if the policy doesn't dictate its presence...
- if (policy.size() > 1 && report.parents.size() > policy.size() - 1) {
- report.parents.remove(report.parents.size() - 1);
- }
- }
-
- @Override
- public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
- return EnumSet.allOf(ResourceResolution.class);
- }
- },
-
- /**
- * All parents are preserved no matter what the policy says.
- */
- KEEP_ALL_PARENTS {
- public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
- //do nothing to the parents, keep them as they are...
- }
-
- @Override
- public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
- return EnumSet.allOf(ResourceResolution.class);
- }
- };
-
- /**
- * Updates the report using the policy.
+ * Updates the report using the policy. It is guaranteed that the resource and its parents
+ * in the report are already processed using the
+ * {@link ResourceResolution#update(MutableDisambiguationReport.Resource)}
+ * method. This method is then called to ensure that the report as a whole conforms to the policy *and* this
+ * strategy. This might entail removing some elements from the parent list for example.
*
* @param <T>
* @param policy
* @param report
*/
- public abstract <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report);
+ <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report);
/**
* @return a set of resolutions for which the unique reports need to be repartitioned at the resource level.
* In another words this forces the disambiguation to continue on up the disambiguation chain even if the
* it disambiguates the resuts successfully at the resource level.
*/
- public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
- return EnumSet.noneOf(ResourceResolution.class);
- }
+ EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions();
/**
* @return a set of resolutions for which uniquely disambiguated reports are to be repartitioned further.
* The resolutions from this set apply on the parents (on any level), unlike the resolutions from {@link #resourceLevelRepartitionableResolutions()}.
*/
- public EnumSet<ResourceResolution> alwaysRepartitionableResolutions() {
- return EnumSet.noneOf(ResourceResolution.class);
- }
-}
\ No newline at end of file
+ EnumSet<ResourceResolution> alwaysRepartitionableResolutions();
+
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
index 2390a69..42d62f2 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
@@ -45,11 +45,11 @@ import org.rhq.core.util.IntExtractor;
public class Disambiguator {
public static final int MAXIMUM_DISAMBIGUATED_TREE_DEPTH = 7;
-
+
private Disambiguator() {
-
+
}
-
+
/**
* Given a list of results, this method produces an object decorates the provided original results
* with data needed to disambiguate the results with respect to resource names, their types and ancestory.
@@ -67,13 +67,14 @@ public class Disambiguator {
*
* @param <T> the type of the result elements
* @param results the results to disambiguate
- * @param parentsDisambiguationStrategy how are the parents going to be disambiguated
+ * @param disambiguationUpdateStrategy how is the disambiguation info going to be applied to the results.
* @param resourceIdExtractor an object able to extract resource id from an instance of type parameter.
* @param entityManager an entityManager to be used to access the database
* @return the disambiguation result or null on error
*/
- public static <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, DisambiguationUpdateStrategy parentsDisambiguationStrategy,
- IntExtractor<? super T> extractor, EntityManager entityManager) {
+ public static <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results,
+ DisambiguationUpdateStrategy disambiguationUpdateStrategy, IntExtractor<? super T> extractor,
+ EntityManager entityManager) {
if (results.isEmpty()) {
return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>(), false, false,
@@ -124,7 +125,7 @@ public class Disambiguator {
selectBuilder.append(", rt").append(i).append(".name");
selectBuilder.append(", rt").append(i).append(".plugin");
selectBuilder.append(", rt").append(i).append(".singleton");
-
+
fromBuilder.append(" left join r").append(pi).append(".parentResource r").append(i);
fromBuilder.append(" left join r").append(i).append(".resourceType rt").append(i);
}
@@ -140,31 +141,33 @@ public class Disambiguator {
//I will partition the resulting reports by resource name.to create groups of
//resources that are "mutually ambiguous". Because each such group potenitally
//requires different level of disambiguation, I will then process them individually.
-
- ReportPartitions<T> partitionedReports = new ReportPartitions<T>(DisambiguationPolicy.getUniqueNamePolicy(parentsDisambiguationStrategy));
-
+
+ ReportPartitions<T> partitionedReports = new ReportPartitions<T>(DisambiguationPolicy
+ .getUniqueNamePolicy(disambiguationUpdateStrategy));
+
@SuppressWarnings("unchecked")
List<Object[]> parentsResults = (List<Object[]>) parentsQuery.getResultList();
for (Object[] parentsResult : parentsResults) {
- List<MutableDisambiguationReport.Resource> parents = new ArrayList<MutableDisambiguationReport.Resource>(MAXIMUM_DISAMBIGUATED_TREE_DEPTH);
+ List<MutableDisambiguationReport.Resource> parents = new ArrayList<MutableDisambiguationReport.Resource>(
+ MAXIMUM_DISAMBIGUATED_TREE_DEPTH);
Integer resourceId = (Integer) parentsResult[0];
String resourceName = (String) parentsResult[1];
Integer typeId = (Integer) parentsResult[2];
String typeName = (String) parentsResult[3];
String pluginName = (String) parentsResult[4];
Boolean singleton = (Boolean) parentsResult[5];
-
+
MutableDisambiguationReport.ResourceType resourceType = new MutableDisambiguationReport.ResourceType();
resourceType.id = typeId;
resourceType.name = typeName;
resourceType.plugin = pluginName;
resourceType.singleton = singleton;
-
+
MutableDisambiguationReport.Resource resource = new MutableDisambiguationReport.Resource();
resource.id = resourceId;
resource.name = resourceName;
resource.resourceType = resourceType;
-
+
for (int i = 0; i < MAXIMUM_DISAMBIGUATED_TREE_DEPTH; ++i) {
Integer parentId = (Integer) parentsResult[6 + 6 * i];
if (parentId == null)
@@ -174,18 +177,18 @@ public class Disambiguator {
String parentType = (String) parentsResult[6 + 6 * i + 3];
String parentPlugin = (String) parentsResult[6 + 6 * i + 4];
Boolean parentSingleton = (Boolean) parentsResult[6 + 6 * i + 5];
-
+
MutableDisambiguationReport.ResourceType type = new MutableDisambiguationReport.ResourceType();
type.id = parentTypeId;
type.name = parentType;
type.plugin = parentPlugin;
type.singleton = parentSingleton;
-
+
MutableDisambiguationReport.Resource parent = new MutableDisambiguationReport.Resource();
parent.id = parentId;
parent.name = parentName;
parent.resourceType = type;
-
+
parents.add(parent);
}
@@ -193,68 +196,45 @@ public class Disambiguator {
for (MutableDisambiguationReport<T> report : reportsByResourceId.get(resourceId)) {
report.resource = resource;
report.parents = parents;
-
+
partitionedReports.put(report);
}
}
-
+
//ok, now I have the reports partitioned by resource name. let's go through each partition
//and figure out the disambiguation needed for it.
-
+
List<ReportPartitions<T>> ambiguousSubPartitions = new ArrayList<ReportPartitions<T>>();
-
+
if (!partitionedReports.isPartitionsUnique()) {
ambiguousSubPartitions.add(partitionedReports);
} else {
- ReportPartitions<T> repartition = partitionedReports.updateUniqueReports();
- while (repartition != null) {
- if(!repartition.isPartitionsUnique()) {
- ambiguousSubPartitions.add(repartition);
- repartition = null;
- } else {
- repartition = repartition.updateUniqueReports();
- }
- }
+ repartitionUnique(partitionedReports, disambiguationUpdateStrategy, ambiguousSubPartitions);
}
-
+
while (ambiguousSubPartitions.size() > 0) {
Iterator<ReportPartitions<T>> subPartitionIterator = ambiguousSubPartitions.iterator();
List<ReportPartitions<T>> newAmbiguousPartitions = new ArrayList<ReportPartitions<T>>();
-
- while(subPartitionIterator.hasNext()) {
+
+ while (subPartitionIterator.hasNext()) {
ReportPartitions<T> subPartition = subPartitionIterator.next();
- ReportPartitions<T> repartition = subPartition.updateUniqueReports();
- while (repartition != null) {
- if(!repartition.isPartitionsUnique()) {
- newAmbiguousPartitions.add(repartition);
- repartition = null;
- } else {
- repartition = repartition.updateUniqueReports();
- }
- }
-
- for(List<MutableDisambiguationReport<T>> partitionReports : subPartition.getAmbiguousPartitions()) {
- ReportPartitions<T> replacementSubpartition = new ReportPartitions<T>(subPartition.getDisambiguationPolicy().getNext());
+ repartitionUnique(subPartition, disambiguationUpdateStrategy, newAmbiguousPartitions);
+
+ for (List<MutableDisambiguationReport<T>> partitionReports : subPartition.getAmbiguousPartitions()) {
+ ReportPartitions<T> replacementSubpartition = new ReportPartitions<T>(subPartition
+ .getDisambiguationPolicy().getNext());
replacementSubpartition.putAll(partitionReports);
if (!replacementSubpartition.isPartitionsUnique()) {
newAmbiguousPartitions.add(replacementSubpartition);
} else {
- repartition = replacementSubpartition.updateUniqueReports();
- while (repartition != null) {
- if(!repartition.isPartitionsUnique()) {
- newAmbiguousPartitions.add(repartition);
- repartition = null;
- } else {
- repartition = repartition.updateUniqueReports();
- }
- }
+ repartitionUnique(replacementSubpartition, disambiguationUpdateStrategy, newAmbiguousPartitions);
}
}
subPartitionIterator.remove();
}
-
- for(ReportPartitions<T> newPartition : newAmbiguousPartitions) {
+
+ for (ReportPartitions<T> newPartition : newAmbiguousPartitions) {
ambiguousSubPartitions.add(newPartition);
}
}
@@ -267,6 +247,34 @@ public class Disambiguator {
}
return new ResourceNamesDisambiguationResult<T>(resolution, typeResolutionNeeded, parentResolutionNeeded,
- pluginResolutionNeeded);
+ pluginResolutionNeeded);
+ }
+
+ private static <T> void repartitionUnique(ReportPartitions<T> partitions, DisambiguationUpdateStrategy updateStrategy, List<ReportPartitions<T>> ambigousPartitions) {
+
+ while (true) {
+ //try to repartition
+ DisambiguationPolicy repartitionPolicy = partitions.getDisambiguationPolicy().getNextRepartitioningPolicy();
+ if (repartitionPolicy != null) {
+ //ok, we have a new policy to try... let's see if it makes any difference.
+ partitions = new ReportPartitions<T>(repartitionPolicy, partitions.getUniquePartitions());
+
+ //bail out if we have partitions that are not unique
+ if (!partitions.isPartitionsUnique()) {
+ ambigousPartitions.add(partitions);
+ return;
+ }
+ } else {
+ //ok, there is no other repartitioning policy that we can try.
+ //Let's update the reports in the unique partitions...
+ for (List<MutableDisambiguationReport<T>> partition : partitions.getUniquePartitions()) {
+ for (MutableDisambiguationReport<T> report : partition) {
+ updateStrategy.update(partitions.getDisambiguationPolicy(), report);
+ }
+ }
+
+ return;
+ }
+ }
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
index ba24e29..8fbb9ab 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
@@ -24,9 +24,8 @@
package org.rhq.enterprise.server.resource.disambiguation;
import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.Collections;
import java.util.List;
-import java.util.Map;
/**
* This class partitions the reports inserted into it by chunking them up
@@ -41,18 +40,30 @@ public class ReportPartitions<T> {
private static final long serialVersionUID = 1L;
private DisambiguationPolicy disambiguationPolicy;
- private Map<Integer, List<MutableDisambiguationReport<T>>> partitions;
+ private List<List<MutableDisambiguationReport<T>>> partitions;
/**
- * @see MutableDisambiguationReport#getComparisonForLevel(int)
+ * Constructs a new instance with no partitions in it.
*
- * @param comparisonLevel
+ * @param disambiguationPolicy the policy that decides if reports are ambiguous.
*/
public ReportPartitions(DisambiguationPolicy disambiguationPolicy) {
this.disambiguationPolicy = disambiguationPolicy;
- partitions = new HashMap<Integer, List<MutableDisambiguationReport<T>>>();
+ partitions = new ArrayList<List<MutableDisambiguationReport<T>>>();
}
+ public ReportPartitions(DisambiguationPolicy disambiguationPolicy, ReportPartitions<T> other) {
+ this(disambiguationPolicy);
+ putAll(other);
+ }
+
+ public ReportPartitions(DisambiguationPolicy disambiguationPolicy, List<List<MutableDisambiguationReport<T>>> partitions) {
+ this(disambiguationPolicy);
+ for(List<MutableDisambiguationReport<T>> partition : partitions) {
+ putAll(partition);
+ }
+ }
+
public DisambiguationPolicy getDisambiguationPolicy() {
return disambiguationPolicy;
}
@@ -60,7 +71,7 @@ public class ReportPartitions<T> {
public List<List<MutableDisambiguationReport<T>>> getAmbiguousPartitions() {
List<List<MutableDisambiguationReport<T>>> ret = new ArrayList<List<MutableDisambiguationReport<T>>>();
- for (List<MutableDisambiguationReport<T>> partition : partitions.values()) {
+ for (List<MutableDisambiguationReport<T>> partition : partitions) {
if (partition.size() > 1) {
ret.add(partition);
}
@@ -72,7 +83,7 @@ public class ReportPartitions<T> {
public List<List<MutableDisambiguationReport<T>>> getUniquePartitions() {
List<List<MutableDisambiguationReport<T>>> ret = new ArrayList<List<MutableDisambiguationReport<T>>>();
- for (List<MutableDisambiguationReport<T>> partition : partitions.values()) {
+ for (List<MutableDisambiguationReport<T>> partition : partitions) {
if (partition.size() == 1) {
ret.add(partition);
}
@@ -81,17 +92,21 @@ public class ReportPartitions<T> {
return ret;
}
+ public List<List<MutableDisambiguationReport<T>>> getAllPartitions() {
+ return Collections.unmodifiableList(partitions);
+ }
+
public void put(MutableDisambiguationReport<T> value) {
boolean found = false;
- for (Map.Entry<Integer, List<MutableDisambiguationReport<T>>> entry : partitions.entrySet()) {
- for (MutableDisambiguationReport<T> partitionPrototype : entry.getValue()) {
+ for (List<MutableDisambiguationReport<T>> partition : partitions) {
+ for (MutableDisambiguationReport<T> partitionPrototype : partition) {
if (disambiguationPolicy.areAmbiguous(partitionPrototype, value)) {
found = true;
break;
}
}
if (found) {
- entry.getValue().add(value);
+ partition.add(value);
break;
}
}
@@ -99,7 +114,7 @@ public class ReportPartitions<T> {
if (!found) {
List<MutableDisambiguationReport<T>> newPartition = new ArrayList<MutableDisambiguationReport<T>>();
newPartition.add(value);
- partitions.put(partitions.size(), newPartition);
+ partitions.add(newPartition);
}
}
@@ -109,37 +124,14 @@ public class ReportPartitions<T> {
}
}
- /**
- * Updates the reports in the unique partitions.
- *
- * @return if the current policy is determined "repartitionable", the returned partitions instance splits the current
- * unique reports by some other policy. If the current policy is not repartitionable, a null value is returned.
- */
- public ReportPartitions<T> updateUniqueReports() {
- List<MutableDisambiguationReport<T>> uniqueReports = new ArrayList<MutableDisambiguationReport<T>>();
- for (List<MutableDisambiguationReport<T>> val : partitions.values()) {
- if (val.size() == 1) {
- uniqueReports.addAll(val);
- }
+ public void putAll(ReportPartitions<T> other) {
+ for (List<MutableDisambiguationReport<T>> partition : other.getAllPartitions()) {
+ putAll(partition);
}
-
- DisambiguationPolicy repartitioningPolicy = disambiguationPolicy.getNextRepartitioningPolicy();
- if (repartitioningPolicy != null) {
- ReportPartitions<T> ret = new ReportPartitions<T>(repartitioningPolicy);
- ret.putAll(uniqueReports);
-
- return ret;
- }
-
- for (MutableDisambiguationReport<T> report : uniqueReports) {
- disambiguationPolicy.update(report);
- }
-
- return null;
}
-
+
public boolean isPartitionsUnique() {
- for (List<MutableDisambiguationReport<T>> partition : partitions.values()) {
+ for (List<MutableDisambiguationReport<T>> partition : partitions) {
if (partition.size() > 1) {
return false;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java
index bc5d89c..054f05d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java
@@ -28,22 +28,12 @@ public enum ResourceResolution {
public boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b) {
return (a.id != b.id && a.name.equals(b.name));
}
-
- @Override
- public void update(MutableDisambiguationReport.Resource resource) {
- resource.resourceType.plugin = null;
- }
},
TYPE {
public boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b) {
return ((a.resourceType.id != b.resourceType.id) && (a.resourceType.name.equals(b.resourceType.name)))
|| (a.resourceType.id == b.resourceType.id && NAME.areAmbiguous(a, b));
}
-
- @Override
- public void update(MutableDisambiguationReport.Resource resource) {
- resource.resourceType.plugin = null;
- }
},
PLUGIN {
public boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b) {
@@ -52,9 +42,5 @@ public enum ResourceResolution {
}
};
- public abstract boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b);
-
- public void update(MutableDisambiguationReport.Resource resource) {
- //by default do nothing
- }
+ public abstract boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b);
}
\ No newline at end of file
commit c02b9d0969fd72e7300c681386fa26b0897eda49
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 10 15:28:42 2010 +0200
Imports cleanup
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
index 8de734b..39c7f92 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
@@ -24,7 +24,6 @@
package org.rhq.enterprise.server.resource.disambiguation;
import java.util.ArrayList;
-import java.util.EnumSet;
/**
* A disambiguation policy determines whether two disambiguation reports are still ambiguous or not.
@@ -175,7 +174,7 @@ public class DisambiguationPolicy extends ArrayList<ResourceResolution> {
//don't replicate the plugin information on the parents if it was reported
//on the resource already.
- //this has to be done on all the parents, not just the ones that are immediatelly needed
+ //this has to be done on all the parents, not just the ones that are immediately needed
//for disambiguation. The parents update strategies might leave more parents than those needed.
if (resourceResolution == ResourceResolution.PLUGIN) {
for (MutableDisambiguationReport.Resource parent : report.parents) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
index bbd5934..2390a69 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
@@ -32,11 +32,9 @@ import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.Query;
-import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
import org.rhq.core.util.IntExtractor;
-import org.rhq.core.util.jdbc.JDBCUtil;
/**
* This is basically a helper class that provides the disambiguation method.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
index 7b57270..ba24e29 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
@@ -24,7 +24,6 @@
package org.rhq.enterprise.server.resource.disambiguation;
import java.util.ArrayList;
-import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
commit 47f9c51efdd0536fb8639f08094e8474b0d98ee4
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri May 7 21:44:25 2010 +0200
Major update of the way disambiguation works as well as how it is displayed in the search results. More work on the UI side is needed as well as on the backend (make the DisambiguationPolicy and ResourceResolution interfaces to be more flexible for the future?).
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
index 5ce12d0..6d9b93a 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
@@ -61,9 +61,15 @@ public class DisambiguationReport<T> implements Serializable {
public String getName() {
return name;
}
+
+ /**
+ * @return the plugin that defines this type or null if such information
+ * isn't needed to disambiguate this type.
+ */
public String getPlugin() {
return plugin;
}
+
public boolean isSingleton() {
return singleton;
}
@@ -99,6 +105,10 @@ public class DisambiguationReport<T> implements Serializable {
return name;
}
+ /**
+ * @return the resource type to use to disambiguate the concrete resource or null
+ * if no type disambiguation is needed.
+ */
public ResourceType getType() {
return type;
}
@@ -118,6 +128,10 @@ public class DisambiguationReport<T> implements Serializable {
return original;
}
+ /**
+ * @return the list of parents to disambiguate the original. Empty if no disambiguation using
+ * parents is needed.
+ */
public List<Resource> getParents() {
return parents;
}
@@ -134,6 +148,7 @@ public class DisambiguationReport<T> implements Serializable {
/**
* @return the ResourceType of the resource represented by the {@link #getOriginal()}
+ * or null if type disambiguation isn't needed.
*/
public ResourceType getResourceType() {
return resourceType;
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java
index 5d2bf2d..a12053f 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceNamesDisambiguationResult.java
@@ -38,8 +38,11 @@ public class ResourceNamesDisambiguationResult<T> implements Serializable {
private static final long serialVersionUID = 1L;
private List<DisambiguationReport<T>> resolution;
+ @Deprecated
private boolean typeResolutionNeeded;
+ @Deprecated
private boolean pluginResolutionNeeded;
+ @Deprecated
private boolean parentResolutionNeeded;
public ResourceNamesDisambiguationResult(List<DisambiguationReport<T>> resolution, boolean needsTypeResolution,
@@ -62,6 +65,7 @@ public class ResourceNamesDisambiguationResult<T> implements Serializable {
/**
* This tells the caller whether the result set contained resources with different types.
*/
+ @Deprecated
public boolean isTypeResolutionNeeded() {
return typeResolutionNeeded;
}
@@ -69,6 +73,7 @@ public class ResourceNamesDisambiguationResult<T> implements Serializable {
/**
* This is true when the resources come from different parents.
*/
+ @Deprecated
public boolean isParentResolutionNeeded() {
return parentResolutionNeeded;
}
@@ -77,6 +82,7 @@ public class ResourceNamesDisambiguationResult<T> implements Serializable {
* This is true if the results contained resources of different types with the same name.
* In that case, the types need to be augmented with the plugin they come from.
*/
+ @Deprecated
public boolean isPluginResolutionNeeded() {
return pluginResolutionNeeded;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
index d6e12a9..9cd471e 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
@@ -72,22 +72,41 @@ public class ResourcePartialLineageRenderer extends Renderer {
}
private void encodeUrl(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ encodePreName(writer, parent);
writer.startElement("a", null);
writer.writeAttribute("href", getUrl(parent), null);
- encodeSimple(writer, parent);
+ writer.writeText(parent.getName(), null);
writer.endElement("a");
+ encodePostName(writer, parent);
}
private void encodeSimple(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ encodePreName(writer, parent);
writer.writeText(parent.getName(), null);
- if (!parent.getType().isSingleton()) {
- writer.writeText(" (", null);
- writer.writeText(parent.getType().getName(), null);
- writer.writeText(")", null);
- }
+ encodePostName(writer, parent);
}
private static String getUrl(DisambiguationReport.Resource parent) {
return RESOURCE_URL + "?id=" + parent.getId();
}
+
+ private void encodePreName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ if (!parent.getType().isSingleton()) {
+ writer.writeText(parent.getType().getName(), null);
+ writer.writeText(" ", null);
+ if (parent.getType().getPlugin() != null) {
+ writer.writeText(" (", null);
+ writer.writeText(parent.getType().getPlugin(), null);
+ writer.writeText(" plugin) ", null);
+ }
+ }
+ }
+
+ private void encodePostName(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ if (parent.getType().isSingleton() && parent.getType().getPlugin() != null) {
+ writer.writeText(" (", null);
+ writer.writeText(parent.getType().getPlugin(), null);
+ writer.writeText(" plugin) ", null);
+ }
+ }
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
index 6672fbe..74ae826 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java
@@ -28,7 +28,6 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
-import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
@@ -68,7 +67,7 @@ public class ResourceSelectUIBean {
* @param resourceTypePluginName
*/
public DisambiguationReportWrapper(DisambiguationReport<ResourceComposite> report, boolean typeResolutionNeeded, boolean parentResolutionNeeded, boolean pluginResolutionNeeded) {
- super(report.getOriginal(), report.getParents(), report.getResourceTypeName(), report.getResourceTypePluginName());
+ super(report.getOriginal(), report.getParents(), report.getResourceType());
this.typeResolutionNeeded = typeResolutionNeeded;
this.parentResolutionNeeded = parentResolutionNeeded;
this.pluginResolutionNeeded = pluginResolutionNeeded;
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
index b58a0b9..b1c3495 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
@@ -126,20 +126,30 @@
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="r.name">
- <h:outputText styleClass="headerText" value="Name" />
+ <h:outputText styleClass="headerText" value="Resource" />
</onc:sortableColumnHeader>
</f:facet>
+ <h:outputText value="#{item.resourceType.singleton ? '' : item.resourceType.name}" />
+ <h:outputText value="#{item.resourceType.singleton ? '' : ' '}" />
+ <h:outputText value="#{not item.resourceType.singleton and item.resourceType.plugin != null ? '(' : ''}" />
+ <h:outputText value="#{not item.resourceType.singleton and item.resourceType.plugin != null ? item.resourceType.plugin : ''}" />
+ <h:outputText value="#{not item.resourceType.singleton and item.resourceType.plugin != null ? ' plugin) ' : ''}" />
<h:outputLink value="#{onf:getDefaultResourceTabURL()}">
<f:param name="id" value="#{item.original.resource.id}" />
- <h:outputText value="#{item.original.resource.name}" />
- <!--
- <h:outputText value=" (#{item.original.resource.resourceType.name})" />
- -->
+ <!--
+ <h:outputText value="#{item.original.resource.name}" />
<h:outputText value="#{item.resourceType.singleton ? '' : ' ('}" />
<h:outputText value="#{item.resourceType.singleton ? '' : item.original.resource.resourceType.name}" />
+ <h:outputText value="#{not item.resourceType.singleton and browseResourcesDataModel.currentPageNeedsPluginResolution ? ', plugin ' : ''}" />
+ <h:outputText value="#{not item.resourceType.singleton and browseResourcesDataModel.currentPageNeedsPluginResolution ? item.resourceType.plugin : ''}" />
<h:outputText value="#{item.resourceType.singleton ? '' : ')'}" />
+ -->
+ <h:outputText value="#{item.original.resource.name}" />
</h:outputLink>
+ <h:outputText value="#{item.resourceType.singleton and item.resourceType.plugin != null ? ' (' : ''}" />
+ <h:outputText value="#{item.resourceType.singleton and item.resourceType.plugin != null ? item.resourceType.plugin : ''}" />
+ <h:outputText value="#{item.resourceType.singleton and item.resourceType.plugin != null ? ' plugin)' : ''}" />
</rich:column>
<!--
<rich:column>
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index a427db1..d04e6cd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -23,16 +23,19 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
+import java.util.Set;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
+import javax.persistence.DiscriminatorType;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
@@ -118,6 +121,11 @@ import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.jaxb.adapter.ResourceListAdapter;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
+import org.rhq.enterprise.server.resource.disambiguation.DisambiguationPolicy;
+import org.rhq.enterprise.server.resource.disambiguation.Disambiguator;
+import org.rhq.enterprise.server.resource.disambiguation.MutableDisambiguationReport;
+import org.rhq.enterprise.server.resource.disambiguation.DisambiguationUpdateStrategy;
+import org.rhq.enterprise.server.resource.disambiguation.ReportPartitions;
import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
import org.rhq.enterprise.server.util.CriteriaQueryRunner;
@@ -2097,148 +2105,9 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
public <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwaysIncludeParent,
IntExtractor<? super T> extractor) {
-
- if (results.isEmpty()) {
- return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>(), false, false,
- false);
- }
-
- boolean typeResolutionNeeded = false;
- boolean pluginResolutionNeeded = false;
- boolean parentResolutionNeeded = false;
-
- //we can't assume the ordering of the provided results and the disambiguation query results
- //will be the same.
-
- //this list contains the resulting reports in the same order as the original results
- List<MutableDisambiguationReport<T>> reports = new ArrayList<MutableDisambiguationReport<T>>(results.size());
-
- //this maps the reports to resourceIds. More than one report can correspond to a single
- //resource id. The reports in this map are the same instances as in the reports list.
- Map<Integer, List<MutableDisambiguationReport<T>>> reportsByResourceId = new HashMap<Integer, List<MutableDisambiguationReport<T>>>();
- for (T r : results) {
- MutableDisambiguationReport<T> value = new MutableDisambiguationReport<T>();
- value.original = r;
- int resourceId = extractor.extract(r);
- if (resourceId > 0) {
- List<MutableDisambiguationReport<T>> correspondingResults = reportsByResourceId.get(resourceId);
- if (correspondingResults == null) {
- correspondingResults = new ArrayList<MutableDisambiguationReport<T>>();
- reportsByResourceId.put(resourceId, correspondingResults);
- }
- correspondingResults.add(value);
- }
- reports.add(value);
- }
-
- //check that we still have something to disambiguate
- if (reportsByResourceId.size() > 0) {
- //first find out how many ancestors we are going to require to disambiguate the resuls
- String query = Resource.NATIVE_QUERY_FIND_DISAMBIGUATION_LEVEL;
-
- query = JDBCUtil.transformQueryForMultipleInParameters(query, "@@RESOURCE_IDS@@", results.size());
- Query disambiguateQuery = entityManager.createNativeQuery(query);
- int i = 1;
- for (T r : results) {
- disambiguateQuery.setParameter(i++, extractor.extract(r));
- }
-
- Object[] rs = (Object[]) disambiguateQuery.getSingleResult();
-
- int disambiguationLevel = Resource.MAX_SUPPORTED_RESOURCE_HIERARCHY_DEPTH; //the max we support
-
- Long targetCnt = ((Number) rs[0]).longValue();
- Long typeCnt = ((Number) rs[1]).longValue();
- Long typeAndPluginCnt = ((Number) rs[2]).longValue();
- for (i = 1; i <= Resource.MAX_SUPPORTED_RESOURCE_HIERARCHY_DEPTH; ++i) {
- Long levelCnt = ((Number) rs[2 + i]).longValue();
- if (levelCnt == targetCnt) {
- disambiguationLevel = i - 1;
- break;
- }
- }
-
- if (alwaysIncludeParent && disambiguationLevel == 0) {
- disambiguationLevel = 1;
- }
-
- typeResolutionNeeded = typeAndPluginCnt > 1L;
- pluginResolutionNeeded = typeAndPluginCnt > typeCnt;
- parentResolutionNeeded = disambiguationLevel > 0;
-
- //k, now let's construct the JPQL query to get the parents and type infos...
- StringBuilder selectBuilder = new StringBuilder(
- "SELECT r0.id, r0.resourceType.name, r0.resourceType.plugin, r0.resourceType.singleton");
- StringBuilder fromBuilder = new StringBuilder("FROM Resource r0");
-
- for (i = 1; i <= disambiguationLevel; ++i) {
- int pi = i - 1;
- selectBuilder.append(", r").append(i).append(".id");
- selectBuilder.append(", r").append(i).append(".name");
- selectBuilder.append(", r").append(i).append(".resourceType.name");
- selectBuilder.append(", r").append(i).append(".resourceType.plugin");
- selectBuilder.append(", r").append(i).append(".resourceType.singleton");
-
- fromBuilder.append(" left join r").append(pi).append(".parentResource r").append(i);
- }
-
- fromBuilder.append(" WHERE r0.id IN (:resourceIds)");
-
- Query parentsQuery = entityManager.createQuery(selectBuilder.append(" ").append(fromBuilder).toString());
-
- parentsQuery.setParameter("resourceIds", reportsByResourceId.keySet());
-
- @SuppressWarnings("unchecked")
- List<Object[]> parentsResults = (List<Object[]>) parentsQuery.getResultList();
- for (Object[] parentsResult : parentsResults) {
- List<DisambiguationReport.Resource> parents = new ArrayList<DisambiguationReport.Resource>(disambiguationLevel);
- Integer resourceId = (Integer) parentsResult[0];
- String typeName = (String) parentsResult[1];
- String pluginName = (String) parentsResult[2];
- Boolean singleton = (Boolean) parentsResult[3];
-
- DisambiguationReport.ResourceType resourceType = new DisambiguationReport.ResourceType(typeName, pluginName, singleton);
-
- for (i = 0; i < disambiguationLevel; ++i) {
- Integer parentId = (Integer) parentsResult[4 + 5 * i];
- if (parentId == null)
- break;
- String parentName = (String) parentsResult[4 + 5 * i + 1];
- String parentType = (String) parentsResult[4 + 5 * i + 2];
- String parentPlugin = (String) parentsResult[4 + 5 * i + 3];
- Boolean parentSingleton = (Boolean) parentsResult[4 + 5 * i + 4];
-
- DisambiguationReport.ResourceType type = new DisambiguationReport.ResourceType(parentType, parentPlugin, parentSingleton);
-
- parents.add(new DisambiguationReport.Resource(parentId, parentName, type));
- }
-
- //update all the reports that correspond to this resourceId
- for (MutableDisambiguationReport<T> report : reportsByResourceId.get(resourceId)) {
- report.resourceType = resourceType;
- report.parents = parents;
- }
- }
- }
-
- List<DisambiguationReport<T>> resolution = new ArrayList<DisambiguationReport<T>>(results.size());
-
- for (MutableDisambiguationReport<T> report : reports) {
- resolution.add(report.getReport());
- }
-
- return new ResourceNamesDisambiguationResult<T>(resolution, typeResolutionNeeded, parentResolutionNeeded,
- pluginResolutionNeeded);
- }
-
- private static class MutableDisambiguationReport<T> {
- public T original;
- public DisambiguationReport.ResourceType resourceType;
- public List<DisambiguationReport.Resource> parents;
-
- public DisambiguationReport<T> getReport() {
- return new DisambiguationReport<T>(original, parents == null ? Collections
- .<DisambiguationReport.Resource> emptyList() : parents, resourceType);
- }
+ //TODO the alwaysIncludeParents is obsolete and ignored
+ //DisambiguationUpdateStrategy strategy = DisambiguationUpdateStrategy.KEEP_PARENTS_TO_TOPMOST_SERVERS;
+ DisambiguationUpdateStrategy strategy = DisambiguationUpdateStrategy.KEEP_ALL_PARENTS;
+ return Disambiguator.disambiguate(results, strategy, extractor, entityManager);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
index 066aae4..9ce98c3 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerLocal.java
@@ -51,6 +51,7 @@ import org.rhq.core.domain.resource.group.composite.AutoGroupComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.util.IntExtractor;
+import org.rhq.enterprise.server.resource.disambiguation.Disambiguator;
import org.rhq.enterprise.server.resource.group.ResourceGroupNotFoundException;
/**
@@ -454,25 +455,7 @@ public interface ResourceManagerLocal {
Resource getParentResource(Subject subject, int resourceId);
/**
- * Given a list of results, this method produces an object decorates the provided original results
- * with data needed to disambiguate the results with respect to resource names, their types and ancestory.
- * <p>
- * The disambiguation result contains information on what types of information are needed to make the resources
- * in the original result unambiguous and contains the decorated original data in the same order as the
- * supplied result list.
- * <p>
- * The objects in results do not necessarily need to correspond to a resource. In case of such objects,
- * the resourceIdExtractor should return 0. In the resulting report such objects will still be wrapped
- * in a {@link DisambiguationReport} but the parent list will be empty and resource type and plugin name will
- * be null.
- *
- * @see ResourceNamesDisambiguationResult
- *
- * @param <T> the type of the result elements
- * @param results the results to disambiguate
- * @param alwayIncludeParent if true, the parent disambiguation will always be included in the result
- * even if the results wouldn't have to be disambiguated using parents.
- * @param resourceIdExtractor an object able to extract resource id from an instance of type parameter.
+ * @see Disambiguator#disambiguate(List, boolean, IntExtractor, javax.persistence.EntityManager)
* @return the disambiguation result or null on error
*/
<T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, boolean alwayIncludeParent,
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
new file mode 100644
index 0000000..8de734b
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationPolicy.java
@@ -0,0 +1,207 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.resource.disambiguation;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+
+/**
+ * A disambiguation policy determines whether two disambiguation reports are still ambiguous or not.
+ * <p>
+ * The policy is basically a list of {@link ResourceResolution} instances each corresponding to either
+ * the resource itself of some of its parent in the hierarchy. Each of the {@link ResourceResolution} instances
+ * in the list determines how the appropriate part of the report is disambiguated.
+ * <p>
+ * Only last element in this list actually decides whether the two reports are still ambiguous. The thinking
+ * behind this is that the previous resolutions in the chain are "decided" and the last one is the one
+ * we are currently trying to determine the correct resolution for.
+ *
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguationPolicy extends ArrayList<ResourceResolution> {
+ private static final long serialVersionUID = 1L;
+
+ private DisambiguationUpdateStrategy parentsUpdateStrategy;
+
+ public DisambiguationPolicy(DisambiguationUpdateStrategy parentsDisambiguationStrategy) {
+ this.parentsUpdateStrategy = parentsDisambiguationStrategy;
+ }
+
+ public DisambiguationPolicy(DisambiguationPolicy other) {
+ super(other);
+ this.parentsUpdateStrategy = other.parentsUpdateStrategy;
+ }
+
+ public static DisambiguationPolicy getUniqueNamePolicy(DisambiguationUpdateStrategy parentsDisambiguationStrategy) {
+ DisambiguationPolicy ret = new DisambiguationPolicy(parentsDisambiguationStrategy);
+ ret.add(ResourceResolution.NAME);
+
+ return ret;
+ }
+
+ public DisambiguationUpdateStrategy getParentsUpdateStrategy() {
+ return parentsUpdateStrategy;
+ }
+
+ public void setParentsUpdateStrategy(DisambiguationUpdateStrategy parentsUpdateStrategy) {
+ this.parentsUpdateStrategy = parentsUpdateStrategy;
+ }
+
+ /**
+ * Tells whether the last resolution in this policy determines the reports ambiguous.
+ *
+ * @param <T>
+ * @param a
+ * @param b
+ * @return
+ */
+ public <T> boolean areAmbiguous(MutableDisambiguationReport<T> a, MutableDisambiguationReport<T> b) {
+ MutableDisambiguationReport.Resource ra = getComparingResource(a);
+ MutableDisambiguationReport.Resource rb = getComparingResource(b);
+
+ if (ra == null || rb == null)
+ return false;
+
+ ResourceResolution resolution = get(size() - 1);
+
+ return resolution.areAmbiguous(ra, rb);
+ }
+
+ /**
+ * @return the currently deciding {@link ResourceResolution} (i.e. the last element in this
+ * policy)
+ */
+ public ResourceResolution getCurrentResourceResolution() {
+ return size() > 0 ? get(size() - 1) : null;
+ }
+
+ /**
+ * If the user of this class determines that this policy can't disambiguate some list of reports,
+ * s/he can get the next policy to try by calling this method.
+ *
+ * @return the next policy in "chain" of possible policies
+ */
+ public DisambiguationPolicy getNext() {
+ int lastIdx = size() - 1;
+ ResourceResolution lastResolution = get(lastIdx);
+
+ DisambiguationPolicy ret = new DisambiguationPolicy(this);
+
+ switch (lastResolution) {
+ case NAME:
+ ret.set(lastIdx, ResourceResolution.TYPE);
+ break;
+ case TYPE:
+ ret.set(lastIdx, ResourceResolution.PLUGIN);
+ break;
+ case PLUGIN:
+ ret.add(ResourceResolution.NAME);
+ break;
+ }
+
+ return ret;
+ }
+
+ /**
+ * @return a policy to be used to repartition unique reports using some other criteria or null
+ * if the current policy doesn't require repartitioning of unique reports.
+ */
+ public DisambiguationPolicy getNextRepartitioningPolicy() {
+ ResourceResolution currentResolution = get(size() - 1);
+
+ if (parentsUpdateStrategy.alwaysRepartitionableResolutions().contains(currentResolution) || (size() == 1)
+ && parentsUpdateStrategy.resourceLevelRepartitionableResolutions().contains(currentResolution)) {
+
+ DisambiguationPolicy newPolicy = getNext();
+
+ //this policy is used for reports uniquely identified by type, but we are repartitioning them further.
+ //but this doesn't mean that they need to be repartitioned by plugin name because that would
+ //only supplement the information that is already evident from the type partitioning.
+ //therefore, skip the plugin resolution in that case.
+ if (currentResolution == ResourceResolution.TYPE) {
+ newPolicy = newPolicy.getNext();
+ newPolicy.set(newPolicy.size() - 2, ResourceResolution.TYPE);
+ }
+
+ return newPolicy;
+ }
+
+ return null;
+ }
+
+ public <T> void update(MutableDisambiguationReport<T> report) {
+ ResourceResolution resourceResolution = this.get(0);
+ resourceResolution.update(report.resource);
+
+ int disambiguationPolicyIndex = 1;
+ while (disambiguationPolicyIndex < this.size() && disambiguationPolicyIndex - 1 < report.parents.size()) {
+ ResourceResolution parentResolution = this.get(disambiguationPolicyIndex);
+ MutableDisambiguationReport.Resource parent = report.parents.get(disambiguationPolicyIndex - 1);
+ parentResolution.update(parent);
+
+ disambiguationPolicyIndex++;
+ }
+
+ disambiguationPolicyIndex--;
+
+ //because the parents update strategy might leave more parents than this policy requires for disambiguation
+ //we need to treat those parents as well. Because they are not needed for disambiguation, treat them as
+ //if only the name and type was needed for them.
+ for (; disambiguationPolicyIndex < report.parents.size(); ++disambiguationPolicyIndex) {
+ ResourceResolution.TYPE.update(report.parents.get(disambiguationPolicyIndex));
+ }
+
+ //don't replicate the plugin information on the parents if it was reported
+ //on the resource already.
+ //this has to be done on all the parents, not just the ones that are immediatelly needed
+ //for disambiguation. The parents update strategies might leave more parents than those needed.
+ if (resourceResolution == ResourceResolution.PLUGIN) {
+ for (MutableDisambiguationReport.Resource parent : report.parents) {
+ if (report.resource.resourceType.plugin.equals(parent.resourceType.plugin)) {
+
+ parent.resourceType.plugin = null;
+ }
+ }
+ }
+
+ parentsUpdateStrategy.update(this, report);
+ }
+
+ private <T> MutableDisambiguationReport.Resource getComparingResource(MutableDisambiguationReport<T> report) {
+ int size = size();
+ if (size == 0)
+ return null;
+
+ if (size == 1) {
+ return report.resource;
+ } else {
+ int parentIdx = size - 2;
+ if (report.parents.size() > parentIdx) {
+ return report.parents.get(parentIdx);
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
new file mode 100644
index 0000000..03b046a
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/DisambiguationUpdateStrategy.java
@@ -0,0 +1,132 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.resource.disambiguation;
+
+import java.util.EnumSet;
+
+/**
+ * This enumerates different strategies that can be used to update the results to produce disambiguated list.
+ *
+ * @author Lukas Krejci
+ */
+public enum DisambiguationUpdateStrategy {
+
+ /**
+ * The disambiguation policy is followed precisely.
+ */
+ EXACT {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ int nofParents = policy.size() - 1;
+ if (nofParents < 0)
+ nofParents = 0;
+
+ if (nofParents == 0) {
+ report.parents.clear();
+ } else {
+ while (report.parents.size() > nofParents) {
+ report.parents.remove(report.parents.size() - 1);
+ }
+ }
+ }
+ },
+
+ /**
+ * Even if the disambiguation policy determined that parents are not needed to disambiguate the
+ * results, at least one of them is kept in the report.
+ */
+ KEEP_AT_LEAST_ONE_PARENT {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ int nofParents = policy.size() - 1;
+ if (nofParents < 1)
+ nofParents = 1;
+
+ while (report.parents.size() > nofParents) {
+ report.parents.remove(report.parents.size() - 1);
+ }
+ }
+
+ @Override
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.allOf(ResourceResolution.class);
+ }
+ },
+
+ /**
+ * The parentage of the report is retained at least up to the server/service directly under platform.
+ * If the policy needs the platform to stay, it is of course preserved.
+ */
+ KEEP_PARENTS_TO_TOPMOST_SERVERS {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ //only remove the platform, if the policy doesn't dictate its presence...
+ if (policy.size() > 1 && report.parents.size() > policy.size() - 1) {
+ report.parents.remove(report.parents.size() - 1);
+ }
+ }
+
+ @Override
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.allOf(ResourceResolution.class);
+ }
+ },
+
+ /**
+ * All parents are preserved no matter what the policy says.
+ */
+ KEEP_ALL_PARENTS {
+ public <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report) {
+ //do nothing to the parents, keep them as they are...
+ }
+
+ @Override
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.allOf(ResourceResolution.class);
+ }
+ };
+
+ /**
+ * Updates the report using the policy.
+ *
+ * @param <T>
+ * @param policy
+ * @param report
+ */
+ public abstract <T> void update(DisambiguationPolicy policy, MutableDisambiguationReport<T> report);
+
+ /**
+ * @return a set of resolutions for which the unique reports need to be repartitioned at the resource level.
+ * In another words this forces the disambiguation to continue on up the disambiguation chain even if the
+ * it disambiguates the resuts successfully at the resource level.
+ */
+ public EnumSet<ResourceResolution> resourceLevelRepartitionableResolutions() {
+ return EnumSet.noneOf(ResourceResolution.class);
+ }
+
+ /**
+ * @return a set of resolutions for which uniquely disambiguated reports are to be repartitioned further.
+ * The resolutions from this set apply on the parents (on any level), unlike the resolutions from {@link #resourceLevelRepartitionableResolutions()}.
+ */
+ public EnumSet<ResourceResolution> alwaysRepartitionableResolutions() {
+ return EnumSet.noneOf(ResourceResolution.class);
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
new file mode 100644
index 0000000..bbd5934
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/Disambiguator.java
@@ -0,0 +1,274 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.resource.disambiguation;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
+import org.rhq.core.util.IntExtractor;
+import org.rhq.core.util.jdbc.JDBCUtil;
+
+/**
+ * This is basically a helper class that provides the disambiguation method.
+ * It is intended to be used in an SLSB context.
+ *
+ * @author Lukas Krejci
+ */
+public class Disambiguator {
+
+ public static final int MAXIMUM_DISAMBIGUATED_TREE_DEPTH = 7;
+
+ private Disambiguator() {
+
+ }
+
+ /**
+ * Given a list of results, this method produces an object decorates the provided original results
+ * with data needed to disambiguate the results with respect to resource names, their types and ancestory.
+ * <p>
+ * The disambiguation result contains information on what types of information are needed to make the resources
+ * in the original result unambiguous and contains the decorated original data in the same order as the
+ * supplied result list.
+ * <p>
+ * The objects in results do not necessarily need to correspond to a resource. In case of such objects,
+ * the resourceIdExtractor should return 0. In the resulting report such objects will still be wrapped
+ * in a {@link DisambiguationReport} but the parent list will be empty and resource type and plugin name will
+ * be null.
+ *
+ * @see ResourceNamesDisambiguationResult
+ *
+ * @param <T> the type of the result elements
+ * @param results the results to disambiguate
+ * @param parentsDisambiguationStrategy how are the parents going to be disambiguated
+ * @param resourceIdExtractor an object able to extract resource id from an instance of type parameter.
+ * @param entityManager an entityManager to be used to access the database
+ * @return the disambiguation result or null on error
+ */
+ public static <T> ResourceNamesDisambiguationResult<T> disambiguate(List<T> results, DisambiguationUpdateStrategy parentsDisambiguationStrategy,
+ IntExtractor<? super T> extractor, EntityManager entityManager) {
+
+ if (results.isEmpty()) {
+ return new ResourceNamesDisambiguationResult<T>(new ArrayList<DisambiguationReport<T>>(), false, false,
+ false);
+ }
+
+ //this is obsolete
+ boolean typeResolutionNeeded = true;
+ boolean pluginResolutionNeeded = true;
+ boolean parentResolutionNeeded = true;
+
+ //we can't assume the ordering of the provided results and the disambiguation query results
+ //will be the same.
+
+ //this list contains the resulting reports in the same order as the original results
+ List<MutableDisambiguationReport<T>> reports = new ArrayList<MutableDisambiguationReport<T>>(results.size());
+
+ //this maps the reports to resourceIds. More than one report can correspond to a single
+ //resource id. The reports in this map are the same instances as in the reports list.
+ Map<Integer, List<MutableDisambiguationReport<T>>> reportsByResourceId = new HashMap<Integer, List<MutableDisambiguationReport<T>>>();
+ for (T r : results) {
+ int resourceId = extractor.extract(r);
+ MutableDisambiguationReport<T> value = new MutableDisambiguationReport<T>();
+ value.original = r;
+ if (resourceId > 0) {
+ List<MutableDisambiguationReport<T>> correspondingResults = reportsByResourceId.get(resourceId);
+ if (correspondingResults == null) {
+ correspondingResults = new ArrayList<MutableDisambiguationReport<T>>();
+ reportsByResourceId.put(resourceId, correspondingResults);
+ }
+ correspondingResults.add(value);
+ }
+ reports.add(value);
+ }
+
+ //check that we still have something to disambiguate
+ if (reportsByResourceId.size() > 0) {
+ //k, now let's construct the JPQL query to get the parents and type infos...
+ StringBuilder selectBuilder = new StringBuilder(
+ "SELECT r0.id, r0.name, r0.resourceType.id, r0.resourceType.name, r0.resourceType.plugin, r0.resourceType.singleton");
+ StringBuilder fromBuilder = new StringBuilder("FROM Resource r0");
+
+ for (int i = 1; i <= MAXIMUM_DISAMBIGUATED_TREE_DEPTH; ++i) {
+ int pi = i - 1;
+ selectBuilder.append(", r").append(i).append(".id");
+ selectBuilder.append(", r").append(i).append(".name");
+ selectBuilder.append(", rt").append(i).append(".id");
+ selectBuilder.append(", rt").append(i).append(".name");
+ selectBuilder.append(", rt").append(i).append(".plugin");
+ selectBuilder.append(", rt").append(i).append(".singleton");
+
+ fromBuilder.append(" left join r").append(pi).append(".parentResource r").append(i);
+ fromBuilder.append(" left join r").append(i).append(".resourceType rt").append(i);
+ }
+
+ fromBuilder.append(" WHERE r0.id IN (:resourceIds)");
+
+ Query parentsQuery = entityManager.createQuery(selectBuilder.append(" ").append(fromBuilder).toString());
+
+ parentsQuery.setParameter("resourceIds", reportsByResourceId.keySet());
+
+ //ok, now I will obtain all the information about the parents and types
+ //using the above defined JPQL query.
+ //I will partition the resulting reports by resource name.to create groups of
+ //resources that are "mutually ambiguous". Because each such group potenitally
+ //requires different level of disambiguation, I will then process them individually.
+
+ ReportPartitions<T> partitionedReports = new ReportPartitions<T>(DisambiguationPolicy.getUniqueNamePolicy(parentsDisambiguationStrategy));
+
+ @SuppressWarnings("unchecked")
+ List<Object[]> parentsResults = (List<Object[]>) parentsQuery.getResultList();
+ for (Object[] parentsResult : parentsResults) {
+ List<MutableDisambiguationReport.Resource> parents = new ArrayList<MutableDisambiguationReport.Resource>(MAXIMUM_DISAMBIGUATED_TREE_DEPTH);
+ Integer resourceId = (Integer) parentsResult[0];
+ String resourceName = (String) parentsResult[1];
+ Integer typeId = (Integer) parentsResult[2];
+ String typeName = (String) parentsResult[3];
+ String pluginName = (String) parentsResult[4];
+ Boolean singleton = (Boolean) parentsResult[5];
+
+ MutableDisambiguationReport.ResourceType resourceType = new MutableDisambiguationReport.ResourceType();
+ resourceType.id = typeId;
+ resourceType.name = typeName;
+ resourceType.plugin = pluginName;
+ resourceType.singleton = singleton;
+
+ MutableDisambiguationReport.Resource resource = new MutableDisambiguationReport.Resource();
+ resource.id = resourceId;
+ resource.name = resourceName;
+ resource.resourceType = resourceType;
+
+ for (int i = 0; i < MAXIMUM_DISAMBIGUATED_TREE_DEPTH; ++i) {
+ Integer parentId = (Integer) parentsResult[6 + 6 * i];
+ if (parentId == null)
+ break;
+ String parentName = (String) parentsResult[6 + 6 * i + 1];
+ Integer parentTypeId = (Integer) parentsResult[6 + 6 * i + 2];
+ String parentType = (String) parentsResult[6 + 6 * i + 3];
+ String parentPlugin = (String) parentsResult[6 + 6 * i + 4];
+ Boolean parentSingleton = (Boolean) parentsResult[6 + 6 * i + 5];
+
+ MutableDisambiguationReport.ResourceType type = new MutableDisambiguationReport.ResourceType();
+ type.id = parentTypeId;
+ type.name = parentType;
+ type.plugin = parentPlugin;
+ type.singleton = parentSingleton;
+
+ MutableDisambiguationReport.Resource parent = new MutableDisambiguationReport.Resource();
+ parent.id = parentId;
+ parent.name = parentName;
+ parent.resourceType = type;
+
+ parents.add(parent);
+ }
+
+ //update all the reports that correspond to this resourceId
+ for (MutableDisambiguationReport<T> report : reportsByResourceId.get(resourceId)) {
+ report.resource = resource;
+ report.parents = parents;
+
+ partitionedReports.put(report);
+ }
+ }
+
+ //ok, now I have the reports partitioned by resource name. let's go through each partition
+ //and figure out the disambiguation needed for it.
+
+ List<ReportPartitions<T>> ambiguousSubPartitions = new ArrayList<ReportPartitions<T>>();
+
+ if (!partitionedReports.isPartitionsUnique()) {
+ ambiguousSubPartitions.add(partitionedReports);
+ } else {
+ ReportPartitions<T> repartition = partitionedReports.updateUniqueReports();
+ while (repartition != null) {
+ if(!repartition.isPartitionsUnique()) {
+ ambiguousSubPartitions.add(repartition);
+ repartition = null;
+ } else {
+ repartition = repartition.updateUniqueReports();
+ }
+ }
+ }
+
+ while (ambiguousSubPartitions.size() > 0) {
+ Iterator<ReportPartitions<T>> subPartitionIterator = ambiguousSubPartitions.iterator();
+ List<ReportPartitions<T>> newAmbiguousPartitions = new ArrayList<ReportPartitions<T>>();
+
+ while(subPartitionIterator.hasNext()) {
+ ReportPartitions<T> subPartition = subPartitionIterator.next();
+
+ ReportPartitions<T> repartition = subPartition.updateUniqueReports();
+ while (repartition != null) {
+ if(!repartition.isPartitionsUnique()) {
+ newAmbiguousPartitions.add(repartition);
+ repartition = null;
+ } else {
+ repartition = repartition.updateUniqueReports();
+ }
+ }
+
+ for(List<MutableDisambiguationReport<T>> partitionReports : subPartition.getAmbiguousPartitions()) {
+ ReportPartitions<T> replacementSubpartition = new ReportPartitions<T>(subPartition.getDisambiguationPolicy().getNext());
+ replacementSubpartition.putAll(partitionReports);
+ if (!replacementSubpartition.isPartitionsUnique()) {
+ newAmbiguousPartitions.add(replacementSubpartition);
+ } else {
+ repartition = replacementSubpartition.updateUniqueReports();
+ while (repartition != null) {
+ if(!repartition.isPartitionsUnique()) {
+ newAmbiguousPartitions.add(repartition);
+ repartition = null;
+ } else {
+ repartition = repartition.updateUniqueReports();
+ }
+ }
+ }
+ }
+ subPartitionIterator.remove();
+ }
+
+ for(ReportPartitions<T> newPartition : newAmbiguousPartitions) {
+ ambiguousSubPartitions.add(newPartition);
+ }
+ }
+ }
+
+ List<DisambiguationReport<T>> resolution = new ArrayList<DisambiguationReport<T>>(results.size());
+
+ for (MutableDisambiguationReport<T> report : reports) {
+ resolution.add(report.getReport());
+ }
+
+ return new ResourceNamesDisambiguationResult<T>(resolution, typeResolutionNeeded, parentResolutionNeeded,
+ pluginResolutionNeeded);
+ }
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/MutableDisambiguationReport.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/MutableDisambiguationReport.java
new file mode 100644
index 0000000..68995d9
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/MutableDisambiguationReport.java
@@ -0,0 +1,87 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.resource.disambiguation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+
+/**
+ * This is a helper class representing a disambiguation report during the process of disambiguation
+ * where a writable access is needed to the report's properties. The resulting {@link DisambiguationReport}
+ * is an immutable class.
+ *
+ * @param <T> the type of the instances being disambiguated
+ *
+ * @author Lukas Krejci
+ */
+public class MutableDisambiguationReport<T> {
+ public static class ResourceType {
+ public int id;
+ public String name;
+ public String plugin;
+ public boolean singleton;
+
+ public DisambiguationReport.ResourceType getResourceType() {
+ return new DisambiguationReport.ResourceType(name, plugin, singleton);
+ }
+
+ public String toString() {
+ return "MutableResourceType[id=" + id + ", name='" + name + "', plugin='" + plugin + "', singleton=" + singleton + "]";
+ }
+ }
+
+ public static class Resource {
+ public int id;
+ public String name;
+ public MutableDisambiguationReport.ResourceType resourceType;
+
+ public DisambiguationReport.Resource getResource() {
+ return new DisambiguationReport.Resource(id, name, resourceType.getResourceType());
+ }
+
+ public String toString() {
+ return "MutableResource[id=" + id + ", name='" + name + ", resourceType=" + resourceType + "]";
+ }
+ }
+
+ public T original;
+ public MutableDisambiguationReport.Resource resource;
+ public List<MutableDisambiguationReport.Resource> parents;
+
+ public DisambiguationReport<T> getReport() {
+ List<DisambiguationReport.Resource> realParents = new ArrayList<DisambiguationReport.Resource>();
+ if (parents != null) {
+ for(MutableDisambiguationReport.Resource p : parents) {
+ realParents.add(p.getResource());
+ }
+ }
+ return new DisambiguationReport<T>(original, realParents, resource.resourceType.getResourceType());
+ }
+
+ public String toString() {
+ return "MutableDisambiguationReport[resource=" + resource + ", parents=" + parents + "]";
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
new file mode 100644
index 0000000..7b57270
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ReportPartitions.java
@@ -0,0 +1,154 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.resource.disambiguation;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This class partitions the reports inserted into it by chunking them up
+ * into sublists containing mutually ambiguous reports. The ambiguity is determined using
+ * a {@link DisambiguationPolicy}.
+ *
+ * @param <T> the type of the original instances the are being disambiguated.
+ *
+ * @author Lukas Krejci
+ */
+public class ReportPartitions<T> {
+
+ private static final long serialVersionUID = 1L;
+ private DisambiguationPolicy disambiguationPolicy;
+ private Map<Integer, List<MutableDisambiguationReport<T>>> partitions;
+
+ /**
+ * @see MutableDisambiguationReport#getComparisonForLevel(int)
+ *
+ * @param comparisonLevel
+ */
+ public ReportPartitions(DisambiguationPolicy disambiguationPolicy) {
+ this.disambiguationPolicy = disambiguationPolicy;
+ partitions = new HashMap<Integer, List<MutableDisambiguationReport<T>>>();
+ }
+
+ public DisambiguationPolicy getDisambiguationPolicy() {
+ return disambiguationPolicy;
+ }
+
+ public List<List<MutableDisambiguationReport<T>>> getAmbiguousPartitions() {
+ List<List<MutableDisambiguationReport<T>>> ret = new ArrayList<List<MutableDisambiguationReport<T>>>();
+
+ for (List<MutableDisambiguationReport<T>> partition : partitions.values()) {
+ if (partition.size() > 1) {
+ ret.add(partition);
+ }
+ }
+
+ return ret;
+ }
+
+ public List<List<MutableDisambiguationReport<T>>> getUniquePartitions() {
+ List<List<MutableDisambiguationReport<T>>> ret = new ArrayList<List<MutableDisambiguationReport<T>>>();
+
+ for (List<MutableDisambiguationReport<T>> partition : partitions.values()) {
+ if (partition.size() == 1) {
+ ret.add(partition);
+ }
+ }
+
+ return ret;
+ }
+
+ public void put(MutableDisambiguationReport<T> value) {
+ boolean found = false;
+ for (Map.Entry<Integer, List<MutableDisambiguationReport<T>>> entry : partitions.entrySet()) {
+ for (MutableDisambiguationReport<T> partitionPrototype : entry.getValue()) {
+ if (disambiguationPolicy.areAmbiguous(partitionPrototype, value)) {
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ entry.getValue().add(value);
+ break;
+ }
+ }
+
+ if (!found) {
+ List<MutableDisambiguationReport<T>> newPartition = new ArrayList<MutableDisambiguationReport<T>>();
+ newPartition.add(value);
+ partitions.put(partitions.size(), newPartition);
+ }
+ }
+
+ public void putAll(List<MutableDisambiguationReport<T>> values) {
+ for (MutableDisambiguationReport<T> v : values) {
+ put(v);
+ }
+ }
+
+ /**
+ * Updates the reports in the unique partitions.
+ *
+ * @return if the current policy is determined "repartitionable", the returned partitions instance splits the current
+ * unique reports by some other policy. If the current policy is not repartitionable, a null value is returned.
+ */
+ public ReportPartitions<T> updateUniqueReports() {
+ List<MutableDisambiguationReport<T>> uniqueReports = new ArrayList<MutableDisambiguationReport<T>>();
+ for (List<MutableDisambiguationReport<T>> val : partitions.values()) {
+ if (val.size() == 1) {
+ uniqueReports.addAll(val);
+ }
+ }
+
+ DisambiguationPolicy repartitioningPolicy = disambiguationPolicy.getNextRepartitioningPolicy();
+ if (repartitioningPolicy != null) {
+ ReportPartitions<T> ret = new ReportPartitions<T>(repartitioningPolicy);
+ ret.putAll(uniqueReports);
+
+ return ret;
+ }
+
+ for (MutableDisambiguationReport<T> report : uniqueReports) {
+ disambiguationPolicy.update(report);
+ }
+
+ return null;
+ }
+
+ public boolean isPartitionsUnique() {
+ for (List<MutableDisambiguationReport<T>> partition : partitions.values()) {
+ if (partition.size() > 1) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public String toString() {
+ return "ReportPartitions[policy=" + disambiguationPolicy + ", partitions=" + partitions + "]";
+ }
+}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java
new file mode 100644
index 0000000..bc5d89c
--- /dev/null
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/disambiguation/ResourceResolution.java
@@ -0,0 +1,60 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.server.resource.disambiguation;
+
+public enum ResourceResolution {
+ NAME {
+ public boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b) {
+ return (a.id != b.id && a.name.equals(b.name));
+ }
+
+ @Override
+ public void update(MutableDisambiguationReport.Resource resource) {
+ resource.resourceType.plugin = null;
+ }
+ },
+ TYPE {
+ public boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b) {
+ return ((a.resourceType.id != b.resourceType.id) && (a.resourceType.name.equals(b.resourceType.name)))
+ || (a.resourceType.id == b.resourceType.id && NAME.areAmbiguous(a, b));
+ }
+
+ @Override
+ public void update(MutableDisambiguationReport.Resource resource) {
+ resource.resourceType.plugin = null;
+ }
+ },
+ PLUGIN {
+ public boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b) {
+ return (a.resourceType.id != b.resourceType.id) && (a.resourceType.name.equals(b.resourceType.name)) && (a.resourceType.plugin.equals(b.resourceType.plugin))
+ || (a.resourceType.id == b.resourceType.id && NAME.areAmbiguous(a, b));
+ }
+ };
+
+ public abstract boolean areAmbiguous(MutableDisambiguationReport.Resource a, MutableDisambiguationReport.Resource b);
+
+ public void update(MutableDisambiguationReport.Resource resource) {
+ //by default do nothing
+ }
+}
\ No newline at end of file
commit 6b776093a7ed0b998801763ae3448c423682e59f
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Thu Apr 29 15:29:49 2010 +0200
Set of changes to implement the different variants of search page results.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
index dd359da..5ce12d0 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/DisambiguationReport.java
@@ -36,34 +36,110 @@ public class DisambiguationReport<T> implements Serializable {
private static final long serialVersionUID = 1L;
private T original;
- private List<ResourceParentFlyweight> parents;
- private String resourceTypeName;
- private String resourceTypePluginName;
+ private List<Resource> parents;
+ private ResourceType resourceType;
- public DisambiguationReport(T original, List<ResourceParentFlyweight> parents, String resourceTypeName, String resourceTypePluginName) {
+ public static class ResourceType implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private String name;
+ private String plugin;
+ private boolean singleton;
+
+ /**
+ * @param name
+ * @param plugin
+ * @param singleton
+ */
+ public ResourceType(String name, String plugin, boolean singleton) {
+ super();
+ this.name = name;
+ this.plugin = plugin;
+ this.singleton = singleton;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public String getPlugin() {
+ return plugin;
+ }
+ public boolean isSingleton() {
+ return singleton;
+ }
+
+ public String toString() {
+ return "ResourceType[name='" + name + "', plugin='" + plugin + "'" + "]";
+ }
+ }
+
+ public static class Resource implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private int id;
+ private String name;
+ private ResourceType type;
+
+ /**
+ * @param id
+ * @param name
+ * @param type
+ */
+ public Resource(int id, String name, ResourceType type) {
+ this.id = id;
+ this.name = name;
+ this.type = type;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public ResourceType getType() {
+ return type;
+ }
+
+ public String toString() {
+ return "Resource[id=" + id + ", name='" + name + "', type=" + type + "]";
+ }
+ }
+
+ public DisambiguationReport(T original, List<Resource> parents, ResourceType resourceType) {
this.original = original;
this.parents = Collections.unmodifiableList(parents);
- this.resourceTypeName = resourceTypeName;
- this.resourceTypePluginName = resourceTypePluginName;
+ this.resourceType = resourceType;
}
public T getOriginal() {
return original;
}
- public List<ResourceParentFlyweight> getParents() {
+ public List<Resource> getParents() {
return parents;
}
+ @Deprecated
public String getResourceTypeName() {
- return resourceTypeName;
+ return resourceType.getName();
}
+ @Deprecated
public String getResourceTypePluginName() {
- return resourceTypePluginName;
+ return resourceType.getPlugin();
+ }
+
+ /**
+ * @return the ResourceType of the resource represented by the {@link #getOriginal()}
+ */
+ public ResourceType getResourceType() {
+ return resourceType;
}
public String toString() {
- return "DisambiguationReport(type=" + resourceTypeName + ", plugin=" + resourceTypePluginName + ", parents=" + parents + ", original=" + original + ")";
+ return "DisambiguationReport(type=" + resourceType + ", parents=" + parents + ", original=" + original + ")";
}
}
\ No newline at end of file
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java
deleted file mode 100644
index c0d09ca..0000000
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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, version 2, as
- * published by the Free Software Foundation, and/or the GNU Lesser
- * General Public License, version 2.1, also as published by the Free
- * Software Foundation.
- *
- * 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 and the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License
- * and the GNU Lesser 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.core.domain.resource.composite;
-
-import java.io.Serializable;
-
-/**
- * A light-weight representation of a resource parent.
- *
- * @author Lukas Krejci
- */
-public class ResourceParentFlyweight implements Serializable {
-
- private static final long serialVersionUID = 1L;
- private int parentId;
- private String parentName;
- private String parentResourceTypeName;
-
- /**
- * @param parentId
- * @param parentName
- */
- public ResourceParentFlyweight(int parentId, String parentName, String parentResourceTypeName) {
- this.parentId = parentId;
- this.parentName = parentName;
- this.parentResourceTypeName = parentResourceTypeName;
- }
-
- public int getParentId() {
- return parentId;
- }
-
- public String getParentName() {
- return parentName;
- }
-
- public String getParentResourceTypeName() {
- return parentResourceTypeName;
- }
-
- public String toString() {
- return "ResourceParentFlyweight(id=" + parentId + ", name=" + parentName + ")";
- }
-}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java
index fdfde42..98502bc 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageComponent.java
@@ -28,7 +28,7 @@ import java.util.List;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;
-import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.gui.util.FacesComponentUtility;
/**
@@ -49,7 +49,7 @@ public class ResourcePartialLineageComponent extends UIComponentBase {
private Boolean renderLinks;
private String separator;
- private List<ResourceParentFlyweight> parents;
+ private List<DisambiguationReport.Resource> parents;
public String getFamily() {
return COMPONENT_FAMILY;
@@ -86,7 +86,7 @@ public class ResourcePartialLineageComponent extends UIComponentBase {
}
@SuppressWarnings("unchecked")
- public List<ResourceParentFlyweight> getParents() {
+ public List<DisambiguationReport.Resource> getParents() {
if (parents == null) {
//do *NOT* store this value into the parents explicitly
//unless dynamic updates (if the expression is in loop for example)
@@ -97,7 +97,7 @@ public class ResourcePartialLineageComponent extends UIComponentBase {
}
}
- public void setParents(List<ResourceParentFlyweight> parents) {
+ public void setParents(List<DisambiguationReport.Resource> parents) {
this.parents = parents;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
index 63eeda4..d6e12a9 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
@@ -32,7 +32,7 @@ import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.Renderer;
-import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
/**
* Renderer for {@link ResourcePartialLineageComponent}
@@ -47,13 +47,13 @@ public class ResourcePartialLineageRenderer extends Renderer {
ResourcePartialLineageComponent lineageComponent = (ResourcePartialLineageComponent) component;
String separator = lineageComponent.getSeparator();
- List<ResourceParentFlyweight> parents = lineageComponent.getParents();
+ List<DisambiguationReport.Resource> parents = lineageComponent.getParents();
boolean renderLinks = lineageComponent.getRenderLinks();
if (parents != null && parents.size() > 0) {
ResponseWriter writer = context.getResponseWriter();
- Iterator<ResourceParentFlyweight> parentsIt = parents.iterator();
+ Iterator<DisambiguationReport.Resource> parentsIt = parents.iterator();
if (renderLinks) {
encodeUrl(writer, parentsIt.next());
@@ -71,21 +71,23 @@ public class ResourcePartialLineageRenderer extends Renderer {
}
}
- private void encodeUrl(ResponseWriter writer, ResourceParentFlyweight parent) throws IOException {
+ private void encodeUrl(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
writer.startElement("a", null);
writer.writeAttribute("href", getUrl(parent), null);
encodeSimple(writer, parent);
writer.endElement("a");
}
- private void encodeSimple(ResponseWriter writer, ResourceParentFlyweight parent) throws IOException {
- writer.writeText(parent.getParentName(), null);
- writer.writeText(" (", null);
- writer.writeText(parent.getParentResourceTypeName(), null);
- writer.writeText(")", null);
+ private void encodeSimple(ResponseWriter writer, DisambiguationReport.Resource parent) throws IOException {
+ writer.writeText(parent.getName(), null);
+ if (!parent.getType().isSingleton()) {
+ writer.writeText(" (", null);
+ writer.writeText(parent.getType().getName(), null);
+ writer.writeText(")", null);
+ }
}
- private static String getUrl(ResourceParentFlyweight parent) {
- return RESOURCE_URL + "?id=" + parent.getParentId();
+ private static String getUrl(DisambiguationReport.Resource parent) {
+ return RESOURCE_URL + "?id=" + parent.getId();
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
index 589b54c..082425d 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
@@ -39,7 +39,6 @@ import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
-import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
import org.rhq.core.domain.resource.group.GroupCategory;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.util.PageControl;
@@ -189,5 +188,44 @@ public class AddGroupResourcesFormPrepareAction extends Action {
}
return resourceCategoryTypes;
- }
-}
\ No newline at end of file
+ }
+
+ //
+ // These two methods are to support the resource names disambiguation in the above code.
+ // Hopefully this page gets rewritten in JSF so that we don't have to employ this kind of
+ // nasties.
+ //
+
+ private static PageList<Resource> buildResourceList(ResourceNamesDisambiguationResult<Resource> results, int totalSize, PageControl pageControl) {
+ ArrayList<Resource> convertedResults = new ArrayList<Resource>(results.getResolution().size());
+
+ for(DisambiguationReport<Resource> dr : results.getResolution()) {
+ Resource resource = dr.getOriginal();
+
+ Resource parent = resource.getParentResource();
+ //platforms don't have parents, need to check for null here
+ if (parent != null) {
+ parent.setName(buildLineage(dr.getParents()));
+ }
+
+ convertedResults.add(resource);
+ }
+ return new PageList<Resource>(convertedResults, totalSize, pageControl);
+ }
+
+ private static String buildLineage(List<DisambiguationReport.Resource> parents) {
+ if (parents == null || parents.size() == 0) {
+ return "";
+ }
+
+ Iterator<DisambiguationReport.Resource> it = parents.iterator();
+
+ StringBuilder bld = new StringBuilder(it.next().getName());
+
+ while (it.hasNext()) {
+ bld.append(ResourcePartialLineageComponent.DEFAULT_SEPARATOR).append(it.next().getName());
+ }
+
+ return bld.toString();
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
index 0e66beb..b58a0b9 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
@@ -126,17 +126,32 @@
<rich:column>
<f:facet name="header">
<onc:sortableColumnHeader sort="r.name">
- <h:outputText styleClass="headerText" value="Resource" />
+ <h:outputText styleClass="headerText" value="Name" />
</onc:sortableColumnHeader>
</f:facet>
<h:outputLink value="#{onf:getDefaultResourceTabURL()}">
<f:param name="id" value="#{item.original.resource.id}" />
<h:outputText value="#{item.original.resource.name}" />
+ <!--
<h:outputText value=" (#{item.original.resource.resourceType.name})" />
+ -->
+ <h:outputText value="#{item.resourceType.singleton ? '' : ' ('}" />
+ <h:outputText value="#{item.resourceType.singleton ? '' : item.original.resource.resourceType.name}" />
+ <h:outputText value="#{item.resourceType.singleton ? '' : ')'}" />
</h:outputLink>
</rich:column>
-
+<!--
+ <rich:column>
+ <f:facet name="header">
+ <onc:sortableColumnHeader sort="r.resourceType.name">
+ <h:outputText styleClass="headerText" value="Type" />
+ </onc:sortableColumnHeader>
+ </f:facet>
+
+ <h:outputText value="#{item.original.resource.resourceType.name}" />
+ </rich:column>
+ -->
<rich:column>
<f:facet name="header">
<h:outputText styleClass="headerText" value="Location" />
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index f4cde3a..a427db1 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -95,7 +95,6 @@ import org.rhq.core.domain.resource.composite.ResourceHealthComposite;
import org.rhq.core.domain.resource.composite.ResourceIdFlyWeight;
import org.rhq.core.domain.resource.composite.ResourceInstallCount;
import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
-import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
import org.rhq.core.domain.resource.composite.ResourceWithAvailability;
import org.rhq.core.domain.resource.flyweight.FlyweightCache;
import org.rhq.core.domain.resource.flyweight.ResourceFlyweight;
@@ -2169,7 +2168,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
//k, now let's construct the JPQL query to get the parents and type infos...
StringBuilder selectBuilder = new StringBuilder(
- "SELECT r0.id, r0.resourceType.name, r0.resourceType.plugin");
+ "SELECT r0.id, r0.resourceType.name, r0.resourceType.plugin, r0.resourceType.singleton");
StringBuilder fromBuilder = new StringBuilder("FROM Resource r0");
for (i = 1; i <= disambiguationLevel; ++i) {
@@ -2177,6 +2176,9 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
selectBuilder.append(", r").append(i).append(".id");
selectBuilder.append(", r").append(i).append(".name");
selectBuilder.append(", r").append(i).append(".resourceType.name");
+ selectBuilder.append(", r").append(i).append(".resourceType.plugin");
+ selectBuilder.append(", r").append(i).append(".resourceType.singleton");
+
fromBuilder.append(" left join r").append(pi).append(".parentResource r").append(i);
}
@@ -2189,25 +2191,31 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
@SuppressWarnings("unchecked")
List<Object[]> parentsResults = (List<Object[]>) parentsQuery.getResultList();
for (Object[] parentsResult : parentsResults) {
- List<ResourceParentFlyweight> parents = new ArrayList<ResourceParentFlyweight>(disambiguationLevel);
+ List<DisambiguationReport.Resource> parents = new ArrayList<DisambiguationReport.Resource>(disambiguationLevel);
Integer resourceId = (Integer) parentsResult[0];
String typeName = (String) parentsResult[1];
String pluginName = (String) parentsResult[2];
-
+ Boolean singleton = (Boolean) parentsResult[3];
+
+ DisambiguationReport.ResourceType resourceType = new DisambiguationReport.ResourceType(typeName, pluginName, singleton);
+
for (i = 0; i < disambiguationLevel; ++i) {
- Integer parentId = (Integer) parentsResult[3 + 3 * i];
+ Integer parentId = (Integer) parentsResult[4 + 5 * i];
if (parentId == null)
break;
- String parentName = (String) parentsResult[3 + 3 * i + 1];
- String parentType = (String) parentsResult[3 + 3 * i + 2];
+ String parentName = (String) parentsResult[4 + 5 * i + 1];
+ String parentType = (String) parentsResult[4 + 5 * i + 2];
+ String parentPlugin = (String) parentsResult[4 + 5 * i + 3];
+ Boolean parentSingleton = (Boolean) parentsResult[4 + 5 * i + 4];
+
+ DisambiguationReport.ResourceType type = new DisambiguationReport.ResourceType(parentType, parentPlugin, parentSingleton);
- parents.add(new ResourceParentFlyweight(parentId, parentName, parentType));
+ parents.add(new DisambiguationReport.Resource(parentId, parentName, type));
}
//update all the reports that correspond to this resourceId
for (MutableDisambiguationReport<T> report : reportsByResourceId.get(resourceId)) {
- report.typeName = typeName;
- report.pluginName = pluginName;
+ report.resourceType = resourceType;
report.parents = parents;
}
}
@@ -2225,13 +2233,12 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
private static class MutableDisambiguationReport<T> {
public T original;
- public String typeName;
- public String pluginName;
- public List<ResourceParentFlyweight> parents;
+ public DisambiguationReport.ResourceType resourceType;
+ public List<DisambiguationReport.Resource> parents;
public DisambiguationReport<T> getReport() {
return new DisambiguationReport<T>(original, parents == null ? Collections
- .<ResourceParentFlyweight> emptyList() : parents, typeName, pluginName);
+ .<DisambiguationReport.Resource> emptyList() : parents, resourceType);
}
}
}
commit 1ae4b54324d310c4e7e3ccc15ba811b332c99a51
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Apr 21 09:44:37 2010 +0200
Preliminary version of search results UI.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java
index 1298df4..c0d09ca 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/ResourceParentFlyweight.java
@@ -35,14 +35,16 @@ public class ResourceParentFlyweight implements Serializable {
private static final long serialVersionUID = 1L;
private int parentId;
private String parentName;
-
+ private String parentResourceTypeName;
+
/**
* @param parentId
* @param parentName
*/
- public ResourceParentFlyweight(int parentId, String parentName) {
+ public ResourceParentFlyweight(int parentId, String parentName, String parentResourceTypeName) {
this.parentId = parentId;
this.parentName = parentName;
+ this.parentResourceTypeName = parentResourceTypeName;
}
public int getParentId() {
@@ -53,6 +55,10 @@ public class ResourceParentFlyweight implements Serializable {
return parentName;
}
+ public String getParentResourceTypeName() {
+ return parentResourceTypeName;
+ }
+
public String toString() {
return "ResourceParentFlyweight(id=" + parentId + ", name=" + parentName + ")";
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
index a526a53..63eeda4 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/inventory/resource/ResourcePartialLineageRenderer.java
@@ -80,6 +80,9 @@ public class ResourcePartialLineageRenderer extends Renderer {
private void encodeSimple(ResponseWriter writer, ResourceParentFlyweight parent) throws IOException {
writer.writeText(parent.getParentName(), null);
+ writer.writeText(" (", null);
+ writer.writeText(parent.getParentResourceTypeName(), null);
+ writer.writeText(")", null);
}
private static String getUrl(ResourceParentFlyweight parent) {
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
index 571d93d..0e66beb 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/inventory/browseResources.xhtml
@@ -65,7 +65,7 @@
value="#{browseResourcesDataModel}"
var="item"
width="100%"
- columnsWidth="1%, 5%, 20%, 20%, 5%, 10%, 10%, 25%, 4%"
+ columnsWidth="1%, 5%, 30%, 44%, 19%, 1%"
headerClass="tableRowHeader"
footerClass="on-pager-footer"
onRowMouseOver="this.style.backgroundColor='#E7E7E7'"
@@ -125,20 +125,21 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="name">
- <h:outputText styleClass="headerText" value="Name" />
+ <onc:sortableColumnHeader sort="r.name">
+ <h:outputText styleClass="headerText" value="Resource" />
</onc:sortableColumnHeader>
</f:facet>
<h:outputLink value="#{onf:getDefaultResourceTabURL()}">
<f:param name="id" value="#{item.original.resource.id}" />
<h:outputText value="#{item.original.resource.name}" />
+ <h:outputText value=" (#{item.original.resource.resourceType.name})" />
</h:outputLink>
</rich:column>
<rich:column>
<f:facet name="header">
- <h:outputText styleClass="headerText" value="Parent" />
+ <h:outputText styleClass="headerText" value="Location" />
</f:facet>
<onc:resourcePartialLineage parents="#{item.parents}" renderLinks="true"/>
@@ -146,37 +147,7 @@
<rich:column>
<f:facet name="header">
- <onc:sortableColumnHeader sort="resourceType.category">
- <h:outputText styleClass="headerText" value="Category" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{item.original.resource.resourceType.category.name}" />
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
- <onc:sortableColumnHeader sort="resourceType.name">
- <h:outputText styleClass="headerText" value="Type" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{item.original.resource.resourceType.name}" />
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
- <onc:sortableColumnHeader sort="resourceType.plugin">
- <h:outputText styleClass="headerText" value="Plugin" />
- </onc:sortableColumnHeader>
- </f:facet>
-
- <h:outputText value="#{item.original.resource.resourceType.plugin}" />
- </rich:column>
-
- <rich:column>
- <f:facet name="header">
- <onc:sortableColumnHeader sort="description">
+ <onc:sortableColumnHeader sort="r.description">
<h:outputText styleClass="headerText" value="Description" />
</onc:sortableColumnHeader>
</f:facet>
@@ -196,7 +167,7 @@
<f:facet name="footer">
<rich:columnGroup>
- <rich:column colspan="9" width="100%">
+ <rich:column colspan="6" width="100%">
<onc:selectCommandButton action="#{BrowseResourcesUIBean.uninventorySelectedResources}"
value="UNINVENTORY SELECTED" target="selectedItems" styleClass="on-pager-button buttonsmall"
rendered="#{GlobalPermissionsUIBean.inventory}" />
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index 5fbbaa6..f4cde3a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -2176,6 +2176,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
int pi = i - 1;
selectBuilder.append(", r").append(i).append(".id");
selectBuilder.append(", r").append(i).append(".name");
+ selectBuilder.append(", r").append(i).append(".resourceType.name");
fromBuilder.append(" left join r").append(pi).append(".parentResource r").append(i);
}
@@ -2193,12 +2194,14 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
String typeName = (String) parentsResult[1];
String pluginName = (String) parentsResult[2];
- for (i = 1; i <= disambiguationLevel; ++i) {
- Integer parentId = (Integer) parentsResult[2 * i + 1];
+ for (i = 0; i < disambiguationLevel; ++i) {
+ Integer parentId = (Integer) parentsResult[3 + 3 * i];
if (parentId == null)
break;
- String parentName = (String) parentsResult[2 * i + 2];
- parents.add(new ResourceParentFlyweight(parentId, parentName));
+ String parentName = (String) parentsResult[3 + 3 * i + 1];
+ String parentType = (String) parentsResult[3 + 3 * i + 2];
+
+ parents.add(new ResourceParentFlyweight(parentId, parentName, parentType));
}
//update all the reports that correspond to this resourceId
commit 7bdf38a07aaf771c5d9c0136d2eccf251d9dfb59
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue May 4 14:01:30 2010 +0200
BZ 580919 - The "Has Alerts or Currently Unavailable" (aka problemResources) portlet uses resource names disambiguation.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java
index 0e8a6a2..6fc3516 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/problemresources/ViewAction.java
@@ -38,23 +38,33 @@ import org.apache.struts.tiles.actions.TilesAction;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.resource.composite.ProblemResourceComposite;
import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.ProblemResourcesPortletPreferences;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.server.measurement.MeasurementProblemManagerLocal;
import org.rhq.enterprise.server.measurement.util.MeasurementUtils;
+import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
public class ViewAction extends TilesAction {
private static final Log log = LogFactory.getLog(ViewAction.class);
+ private static final IntExtractor<ProblemResourceComposite> RESOURCE_ID_EXTRACTOR = new IntExtractor<ProblemResourceComposite>() {
+ public int extract(ProblemResourceComposite object) {
+ return object.getResourceId();
+ }
+ };
+
@Override
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- List<ProblemResourceComposite> list = new ArrayList<ProblemResourceComposite>();
+ List<DisambiguatedResourceListUtil.Record<ProblemResourceComposite>> disambiguatedList = new ArrayList<DisambiguatedResourceListUtil.Record<ProblemResourceComposite>>();
String timeRange = getResources(request).getMessage("dash.home.ProblemResources.timeRangeUnlimited");
try {
@@ -88,9 +98,15 @@ public class ViewAction extends TilesAction {
try {
MeasurementProblemManagerLocal problemManager = LookupUtil.getMeasurementProblemManager();
+ ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
long start = System.currentTimeMillis();
- list = problemManager.findProblemResources(subject, begin, new PageControl(0,
+ PageList<ProblemResourceComposite> list = problemManager.findProblemResources(subject, begin, new PageControl(0,
problemResourcePreferences.range));
+
+ disambiguatedList = DisambiguatedResourceListUtil.buildResourceList(
+ resourceManager.disambiguate(list, true, RESOURCE_ID_EXTRACTOR),
+ list.getTotalSize(), list.getPageControl(), true);
+
long end = System.currentTimeMillis();
log.debug("Performance: Took [" + (end - start) + "]ms to find " + problemResourcePreferences.range
+ " problem resources");
@@ -105,7 +121,7 @@ public class ViewAction extends TilesAction {
}
} finally {
request.setAttribute("timeRange", timeRange);
- context.putAttribute("problemResources", list);
+ context.putAttribute("problemResources", disambiguatedList);
}
return null;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
index e0c3b5b..24a373a 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
@@ -52,10 +52,12 @@ public class DisambiguatedResourceListUtil {
private T original;
private String lineage;
+ private String originalResourceTypeName;
- public Record(T original, String lineage) {
+ public Record(T original, String resourceTypeName, String lineage) {
this.original = original;
this.lineage = lineage;
+ this.originalResourceTypeName = resourceTypeName;
}
public T getOriginal() {
@@ -65,13 +67,21 @@ public class DisambiguatedResourceListUtil {
public String getLineage() {
return lineage;
}
+
+ public String getOriginalResourceTypeName() {
+ return originalResourceTypeName;
+ }
}
public static <T> PageList<Record<T>> buildResourceList(ResourceNamesDisambiguationResult<T> results, int totalSize, PageControl pageControl, boolean renderLinks) {
ArrayList<Record<T>> convertedResults = new ArrayList<Record<T>>(results.getResolution().size());
for(DisambiguationReport<T> dr : results.getResolution()) {
- convertedResults.add(new Record<T>(dr.getOriginal(), buildLineage(dr.getParents(), renderLinks)));
+ String typeName = dr.getResourceTypeName();
+ if (results.isPluginResolutionNeeded()) {
+ typeName += " (" + dr.getResourceTypePluginName() + " plugin)";
+ }
+ convertedResults.add(new Record<T>(dr.getOriginal(), typeName, buildLineage(dr.getParents(), renderLinks)));
}
return new PageList<Record<T>>(convertedResults, totalSize, pageControl);
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
index f7cea49..93695da 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/problemResources/View.jsp
@@ -32,19 +32,21 @@
</c:when>
<c:when test="${not empty problemResources}">
<display:table cellspacing="0" cellpadding="0" width="100%" action="/Dashboard.do"
- var="probres" items="${problemResources}" >
- <display:column width="60%" href="/rhq/resource/summary/overview.xhtml?id=${probres.resourceId}" property="resourceName" title="dash.home.TableHeader.ResourceName"/>
- <display:column width="10%" property="numAlerts" title="dash.home.TableHeader.Alerts" align="center"/>
- <display:column width="10%" property="availabilityType" title="resource.common.monitor.visibility.CAvailabilityTH" align="center" >
- <display:availabilitydecorator/>
- </display:column>
- <display:footer>
- <tr class="ListRow">
- <td class="ListCell" colspan="4">
- <i><c:out value="${timeRange}"/></i>
- </td>
- </tr>
- </display:footer>
+ var="obj" items="${problemResources}" >
+ <display:column width="20%" href="/rhq/resource/summary/overview.xhtml?id=${obj.original.resourceId}" property="original.resourceName" title="dash.home.TableHeader.ResourceName"/>
+ <display:column width="20%" property="originalResourceTypeName" title="dash.home.TableHeader.Type"/>
+ <display:column width="20%" property="lineage" title="dash.home.TableHeader.Location"/>
+ <display:column width="10%" property="original.numAlerts" title="dash.home.TableHeader.Alerts" align="center"/>
+ <display:column width="10%" property="original.availabilityType" title="resource.common.monitor.visibility.CAvailabilityTH" align="center" >
+ <display:availabilitydecorator/>
+ </display:column>
+ <display:footer>
+ <tr class="ListRow">
+ <td class="ListCell" colspan="4">
+ <i><c:out value="${timeRange}"/></i>
+ </td>
+ </tr>
+ </display:footer>
</display:table>
</c:when>
<c:otherwise>
commit dd31f7bea3ac6e1d53c8661e3945d22ee0c966fa
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Tue May 4 12:58:06 2010 +0200
BZ 580919 - Operations (aka controlActions) portlet converted to disambiguate resources.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java
index e91edd2..a59c02f 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/controlactions/ViewAction.java
@@ -36,17 +36,32 @@ import org.rhq.core.domain.operation.composite.ResourceOperationScheduleComposit
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.OperationPortletPreferences;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
+import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
public class ViewAction extends TilesAction {
private static final Log log = LogFactory.getLog(ViewAction.class);
+ private static final IntExtractor<ResourceOperationLastCompletedComposite> RESOURCE_OPERATION_RESOURCE_ID_EXTRACTOR = new IntExtractor<ResourceOperationLastCompletedComposite>() {
+ public int extract(ResourceOperationLastCompletedComposite object) {
+ return object.getResourceId();
+ }
+ };
+
+ private static final IntExtractor<ResourceOperationScheduleComposite> RESOURCE_OPERATION_SCHEDULE_RESOURCE_ID_EXTRACTOR = new IntExtractor<ResourceOperationScheduleComposite>() {
+ public int extract(ResourceOperationScheduleComposite object) {
+ return object.getResourceId();
+ }
+ };
+
@Override
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
@@ -54,9 +69,9 @@ public class ViewAction extends TilesAction {
boolean displayLastCompleted = false;
boolean displayNextScheduled = false;
- PageList<ResourceOperationLastCompletedComposite> lastCompletedResourceOps = new PageList<ResourceOperationLastCompletedComposite>();
+ PageList<DisambiguatedResourceListUtil.Record<ResourceOperationLastCompletedComposite>> disambiguatedLastCompletedResourceOps = new PageList<DisambiguatedResourceListUtil.Record<ResourceOperationLastCompletedComposite>>();
PageList<GroupOperationLastCompletedComposite> lastCompletedGroupOps = new PageList<GroupOperationLastCompletedComposite>();
- PageList<ResourceOperationScheduleComposite> nextScheduledResourceOps = new PageList<ResourceOperationScheduleComposite>();
+ PageList<DisambiguatedResourceListUtil.Record<ResourceOperationScheduleComposite>> disambiguatedNextScheduledResourceOps = new PageList<DisambiguatedResourceListUtil.Record<ResourceOperationScheduleComposite>>();
PageList<GroupOperationScheduleComposite> nextScheduledGroupOps = new PageList<GroupOperationScheduleComposite>();
try {
@@ -74,13 +89,18 @@ public class ViewAction extends TilesAction {
displayNextScheduled = operationPreferences.useNextScheduled;
OperationManagerLocal manager = LookupUtil.getOperationManager();
-
+ ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
+
if (operationPreferences.useLastCompleted) {
PageControl pageControl = new PageControl(0, operationPreferences.lastCompleted);
pageControl.initDefaultOrderingField("ro.createdTime", PageOrdering.DESC);
- lastCompletedResourceOps = manager.findRecentlyCompletedResourceOperations(user.getSubject(), null,
- pageControl);
+ PageList<ResourceOperationLastCompletedComposite> lastCompletedResourceOps =
+ manager.findRecentlyCompletedResourceOperations(user.getSubject(), null, pageControl);
+ disambiguatedLastCompletedResourceOps = DisambiguatedResourceListUtil.buildResourceList(
+ resourceManager.disambiguate(lastCompletedResourceOps, true, RESOURCE_OPERATION_RESOURCE_ID_EXTRACTOR),
+ lastCompletedResourceOps.getTotalSize(), lastCompletedResourceOps.getPageControl(), true);
+
pageControl = new PageControl(0, operationPreferences.lastCompleted);
pageControl.initDefaultOrderingField("go.createdTime", PageOrdering.DESC);
lastCompletedGroupOps = manager.findRecentlyCompletedGroupOperations(user.getSubject(), pageControl);
@@ -88,9 +108,14 @@ public class ViewAction extends TilesAction {
if (operationPreferences.useNextScheduled) {
PageControl pageControl = new PageControl(0, operationPreferences.nextScheduled);
- nextScheduledResourceOps = manager.findCurrentlyScheduledResourceOperations(user.getSubject(),
+ PageList<ResourceOperationScheduleComposite> nextScheduledResourceOps =
+ manager.findCurrentlyScheduledResourceOperations(user.getSubject(),
pageControl);
+ disambiguatedNextScheduledResourceOps = DisambiguatedResourceListUtil.buildResourceList(
+ resourceManager.disambiguate(nextScheduledResourceOps, true, RESOURCE_OPERATION_SCHEDULE_RESOURCE_ID_EXTRACTOR),
+ nextScheduledResourceOps.getTotalSize(), nextScheduledResourceOps.getPageControl(), true);
+
pageControl = new PageControl(0, operationPreferences.nextScheduled);
nextScheduledGroupOps = manager.findCurrentlyScheduledGroupOperations(user.getSubject(), pageControl);
}
@@ -103,9 +128,9 @@ public class ViewAction extends TilesAction {
} finally {
context.putAttribute("displayLastCompleted", displayLastCompleted);
context.putAttribute("displayNextScheduled", displayNextScheduled);
- context.putAttribute("lastCompletedResource", lastCompletedResourceOps);
+ context.putAttribute("lastCompletedResource", disambiguatedLastCompletedResourceOps);
context.putAttribute("lastCompletedGroup", lastCompletedGroupOps);
- context.putAttribute("nextScheduledResource", nextScheduledResourceOps);
+ context.putAttribute("nextScheduledResource", disambiguatedNextScheduledResourceOps);
context.putAttribute("nextScheduledGroup", nextScheduledGroupOps);
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
index e198032..810963c 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/controlactions/View.jsp
@@ -45,32 +45,34 @@
<c:otherwise>
<c:if test="${!empty lastCompletedResource}">
<tr>
- <td width="40%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
+ <td width="25%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Type"/></td>
+ <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
- <td width="25%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
+ <td width="20%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
<td width="5%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Status"/></td>
</tr>
<c:forEach items="${lastCompletedResource}" var="obj">
<tr class="ListRow">
- <td class="ListCell"><html:link page="/rhq/resource/summary/overview.xhtml?id=${obj.resourceId}"><c:out value="${obj.resourceName}"/></html:link></td>
- <td class="ListCell"><c:out value="${obj.resourceTypeName}"/></td>
- <td class="ListCell"><c:out value="${obj.operationName}"/></td>
- <td class="ListCell"><hq:dateFormatter value="${obj.operationStartTime}"/></td>
+ <td class="ListCell"><html:link page="/rhq/resource/summary/overview.xhtml?id=${obj.original.resourceId}"><c:out value="${obj.original.resourceName}"/></html:link></td>
+ <td class="ListCell"><c:out value="${obj.original.resourceTypeName}"/></td>
+ <td class="ListCell"><c:out value="${obj.lineage}" escapeXml="false"/></td>
+ <td class="ListCell"><c:out value="${obj.original.operationName}"/></td>
+ <td class="ListCell"><hq:dateFormatter value="${obj.original.operationStartTime}"/></td>
<td class="ListCell" align="center">
- <html:link page="/rhq/resource/operation/resourceOperationHistoryDetails.xhtml?id=${obj.resourceId}&opId=${obj.operationHistoryId}">
+ <html:link page="/rhq/resource/operation/resourceOperationHistoryDetails.xhtml?id=${obj.original.resourceId}&opId=${obj.original.operationHistoryId}">
<c:choose>
- <c:when test="${obj.operationStatus == 'SUCCESS'}">
- <html:img page="/images/icons/availability_green_16.png" alt="${obj.operationStatus}" title="${obj.operationStatus}" />
+ <c:when test="${obj.original.operationStatus == 'SUCCESS'}">
+ <html:img page="/images/icons/availability_green_16.png" alt="${obj.original.operationStatus}" title="${obj.original.operationStatus}" />
</c:when>
- <c:when test="${obj.operationStatus == 'FAILURE'}">
- <html:img page="/images/icons/availability_red_16.png" alt="${obj.operationStatus}" title="${obj.operationStatus}" />
+ <c:when test="${obj.original.operationStatus == 'FAILURE'}">
+ <html:img page="/images/icons/availability_red_16.png" alt="${obj.original.operationStatus}" title="${obj.original.operationStatus}" />
</c:when>
- <c:when test="${obj.operationStatus == 'CANCELED'}">
- <html:img page="/images/icons/availability_yellow_16.png" alt="${obj.operationStatus}" title="${obj.operationStatus}" />
+ <c:when test="${obj.original.operationStatus == 'CANCELED'}">
+ <html:img page="/images/icons/availability_yellow_16.png" alt="${obj.original.operationStatus}" title="${obj.original.operationStatus}" />
</c:when>
<c:otherwise>
- <html:img page="/images/icons/availability_grey_16.png" alt="${obj.operationStatus}" title="${obj.operationStatus}"/>
+ <html:img page="/images/icons/availability_grey_16.png" alt="${obj.original.operationStatus}" title="${obj.original.operationStatus}"/>
</c:otherwise>
</c:choose>
</html:link>
@@ -81,7 +83,7 @@
<c:if test="${!empty lastCompletedGroup}">
<tr>
<td width="40%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.GroupName"/></td>
- <td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.GroupResourceType"/></td>
+ <td width="35%" class="ListHeaderInactive" colspan="2"><fmt:message key="dash.home.TableHeader.GroupResourceType"/></td>
<td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
<td width="25%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
<td width="5%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Status"/></td>
@@ -89,7 +91,7 @@
<c:forEach items="${lastCompletedGroup}" var="obj">
<tr class="ListRow">
<td class="ListCell"><html:link page="/rhq/groups/monitor/graphs.xhtml?category=COMPATIBLE&groupId=${obj.groupId}"><c:out value="${obj.groupName}"/></html:link></td>
- <td class="ListCell"><c:out value="${obj.groupResourceTypeName}"/></td>
+ <td class="ListCell" colspan="2"><c:out value="${obj.groupResourceTypeName}"/></td>
<td class="ListCell"><c:out value="${obj.operationName}"/></td>
<td class="ListCell"><hq:dateFormatter value="${obj.operationStartTime}"/></td>
<td class="ListCell" align="center">
@@ -138,31 +140,33 @@
<c:otherwise>
<c:if test="${!empty nextScheduledResource}">
<tr>
- <td width="37" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
- <td width="21%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Type"/></td>
- <td width="21%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
- <td width="21%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
+ <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
+ <td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Type"/></td>
+ <td width="35%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
+ <td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
+ <td width="15%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
</tr>
- <c:forEach items="${nextScheduledResource}" var="schedule">
+ <c:forEach items="${nextScheduledResource}" var="obj">
<tr class="ListRow">
- <td class="ListCell"><html:link page="/rhq/resource/operation/resourceOperationScheduleDetails.xhtml?id=${schedule.resourceId}&jobId=${schedule.operationJobId}"><c:out value="${schedule.resourceName}"/></html:link></td>
- <td class="ListCell"><c:out value="${schedule.resourceTypeName}"/></td>
- <td class="ListCell"><c:out value="${schedule.operationName}"/></td>
- <td class="ListCell"><hq:dateFormatter value="${schedule.operationNextFireTime}"/></td>
+ <td class="ListCell"><html:link page="/rhq/resource/operation/resourceOperationScheduleDetails.xhtml?id=${obj.original.resourceId}&jobId=${obj.original.operationJobId}"><c:out value="${obj.original.resourceName}"/></html:link></td>
+ <td class="ListCell"><c:out value="${obj.original.resourceTypeName}"/></td>
+ <td class="ListCell"><c:out value="${obj.lineage}" escapeXml="false" /></td>
+ <td class="ListCell"><c:out value="${obj.original.operationName}"/></td>
+ <td class="ListCell"><hq:dateFormatter value="${obj.original.operationNextFireTime}"/></td>
</tr>
</c:forEach>
</c:if>
<c:if test="${!empty nextScheduledGroup}">
<tr>
- <td width="37" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.GroupName"/></td>
- <td width="21%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.GroupResourceType"/></td>
- <td width="21%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
- <td width="21%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
+ <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.GroupName"/></td>
+ <td width="50%" class="ListHeaderInactive" colspan="2"><fmt:message key="dash.home.TableHeader.GroupResourceType"/></td>
+ <td width="15%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.ControlAction"/></td>
+ <td width="15%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.DateTime"/><html:img page="/images/tb_sortdown_inactive.gif" width="9" height="9" border="0"/></td>
</tr>
<c:forEach items="${nextScheduledGroup}" var="schedule">
<tr class="ListRow">
<td class="ListCell"><html:link page="/rhq/group/operation/groupOperationScheduleDetails.xhtml?groupId=${schedule.groupId}&jobId=${schedule.operationJobId}&category=COMPATIBLE"><c:out value="${schedule.groupName}"/></html:link></td>
- <td class="ListCell"><c:out value="${schedule.groupResourceTypeName}"/></td>
+ <td class="ListCell" colspan="2"><c:out value="${schedule.groupResourceTypeName}"/></td>
<td class="ListCell"><c:out value="${schedule.operationName}"/></td>
<td class="ListCell"><hq:dateFormatter value="${schedule.operationNextFireTime}"/></td>
</tr>
commit 972b649c0e6de9f8539d85b6d0cd69192965d09d
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 3 21:53:38 2010 +0200
BZ 580919 - Recent alerts (aka criticalAlerts) portlet converted to use resource disambiguation.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java
index c26fa9f..fe1baf0 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/addresource/AddResourcesPrepareAction.java
@@ -40,10 +40,12 @@ import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.gui.util.StringUtility;
+import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.legacy.Constants;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.util.DashboardUtils;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.RequestUtils;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
@@ -59,6 +61,12 @@ import org.rhq.enterprise.server.util.LookupUtil;
public class AddResourcesPrepareAction extends Action {
private static final int DEFAULT_RESOURCE_TYPE = -1;
+ private static final IntExtractor<Resource> RESOURCE_ID_EXTRACTOR = new IntExtractor<Resource>() {
+ public int extract(Resource object) {
+ return object.getId();
+ }
+ };
+
@Override
@SuppressWarnings( { "unchecked", "deprecation" })
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
@@ -101,10 +109,14 @@ public class AddResourcesPrepareAction extends Action {
PageList<Resource> pendingResources = resourceManager.findResourceByIds(subject, pendingResourceArray, false,
pcPending);
+ PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedPendingResources =
+ DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(pendingResources, true, RESOURCE_ID_EXTRACTOR),
+ pendingResources.getTotalSize(), pendingResources.getPageControl(), false);
+
// give 'em to the jsp page
log.debug("put selected page of pending resources in request");
- request.setAttribute(Constants.PENDING_RESOURCES_ATTR, pendingResources);
- request.setAttribute(Constants.NUM_PENDING_RESOURCES_ATTR, pendingResources.getTotalSize());
+ request.setAttribute(Constants.PENDING_RESOURCES_ATTR, disambiguatedPendingResources);
+ request.setAttribute(Constants.NUM_PENDING_RESOURCES_ATTR, disambiguatedPendingResources.getTotalSize());
// available resources are all resources in the system that are not associated with the user and are not pending
log.debug("determine if user wants to filter available resources");
@@ -119,9 +131,14 @@ public class AddResourcesPrepareAction extends Action {
availableResources = resourceManager.findAvailableResourcesForDashboardPortlet(subject, typeIdFilter,
categoryFilter, excludeIds, pcAvail);
+ PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedAvailableResources =
+ DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(availableResources, true, RESOURCE_ID_EXTRACTOR),
+ availableResources.getTotalSize(), availableResources.getPageControl(), false);
+
+
log.debug("put selected page of available resources in request");
- request.setAttribute(Constants.AVAIL_RESOURCES_ATTR, availableResources);
- request.setAttribute(Constants.NUM_AVAIL_RESOURCES_ATTR, availableResources.getTotalSize());
+ request.setAttribute(Constants.AVAIL_RESOURCES_ATTR, disambiguatedAvailableResources);
+ request.setAttribute(Constants.NUM_AVAIL_RESOURCES_ATTR, disambiguatedAvailableResources.getTotalSize());
log.debug("get the available resources user can filter by");
setDropDowns(addForm, request, subject, categoryFilter);
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java
index f3133c1..b500a72 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/PrepareAction.java
@@ -32,16 +32,26 @@ import org.apache.struts.tiles.actions.TilesAction;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.legacy.Constants;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.AlertsPortletPreferences;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
public class PrepareAction extends TilesAction {
+
+ private static final IntExtractor<Resource> RESOURCE_ID_EXTRACTOR = new IntExtractor<Resource>() {
+
+ public int extract(Resource object) {
+ return object.getId();
+ }
+ };
+
@Override
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
@@ -65,8 +75,12 @@ public class PrepareAction extends TilesAction {
PageList<Resource> resources = resourceManager.findResourceByIds(user.getSubject(), alertPrefs.asArray(), false,
pageControl);
- request.setAttribute("criticalAlertsList", resources);
- request.setAttribute("criticalAlertsTotalSize", resources.getTotalSize());
+ PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedResources =
+ DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(resources, true, RESOURCE_ID_EXTRACTOR),
+ resources.getTotalSize(), resources.getPageControl(), false);
+
+ request.setAttribute("criticalAlertsList", disambiguatedResources);
+ request.setAttribute("criticalAlertsTotalSize", disambiguatedResources.getTotalSize());
return null;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java
index c96920f..77da660 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/criticalalerts/ViewAction.java
@@ -33,23 +33,32 @@ import org.rhq.core.domain.alert.Alert;
import org.rhq.core.domain.alert.AlertPriority;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.core.util.IntExtractor;
import org.rhq.core.util.collection.ArrayUtils;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.AlertsPortletPreferences;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.server.alert.AlertManagerLocal;
+import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
public class ViewAction extends TilesAction {
private static final Log log = LogFactory.getLog(ViewAction.class);
+ static final IntExtractor<Alert> RESOURCE_ID_EXTRACTOR = new IntExtractor<Alert>() {
+ public int extract(Alert object) {
+ return object.getAlertDefinition().getResource().getId();
+ }
+ };
+
@Override
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- PageList<Alert> alerts = new PageList<Alert>();
+ PageList<DisambiguatedResourceListUtil.Record<Alert>> disambiguatedAlerts = new PageList<DisambiguatedResourceListUtil.Record<Alert>>();
try {
WebUser user = SessionUtils.getWebUser(request.getSession());
if (user == null) {
@@ -64,9 +73,13 @@ public class ViewAction extends TilesAction {
PageControl pageControl = new PageControl(0, alertPrefs.count);
AlertManagerLocal alertManager = LookupUtil.getAlertManager();
- alerts = alertManager.findAlerts(user.getSubject(), ("all".equals(alertPrefs.displayAll) ? null
+ ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
+ PageList<Alert> alerts = alertManager.findAlerts(user.getSubject(), ("all".equals(alertPrefs.displayAll) ? null
: ArrayUtils.wrapInArray(alertPrefs.asArray())), AlertPriority.getByLegacyIndex(alertPrefs.priority),
alertPrefs.timeRange, pageControl);
+
+ disambiguatedAlerts = DisambiguatedResourceListUtil.buildResourceList(resourceManager.disambiguate(alerts, true, RESOURCE_ID_EXTRACTOR)
+ , alerts.getTotalSize(), alerts.getPageControl(), true);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.debug("Dashboard Portlet [CriticalAlerts] experienced an error: " + e.getMessage(), e);
@@ -74,7 +87,7 @@ public class ViewAction extends TilesAction {
log.error("Dashboard Portlet [CriticalAlerts] experienced an error: " + e.getMessage());
}
} finally {
- context.putAttribute("criticalAlerts", alerts);
+ context.putAttribute("criticalAlerts", disambiguatedAlerts);
}
return null;
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
index 2893eb1..3c46731 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
+++ b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
@@ -877,6 +877,8 @@ dash.settings.SelectedResources=Selected Resources
dash.settings.Resources=Resources
dash.settings.AddToList=Add To List
dash.settings.ListHeader.Resource=Resource
+dash.settings.ListHeader.Type=Resource Type
+dash.settings.ListHeader.Location=Location
dash.settings.ListHeader.ResourceChart=Resource Chart
dash.settings.FormLabel.FilterBy=Filter List By Type:
dash.settings.FormLabel.NameContains=Name Contains:
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp
index 4ca4d79..35e9965 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/addresources/AddResourcesForm.jsp
@@ -364,20 +364,24 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
<display:table cellpadding="0" cellspacing="0" border="0" width="100%"
action="${selfPaAction}"
items="${AvailableResources}"
- var="resource"
+ var="item"
padRows="true"
rightSidebar="true"
styleId="fromTable"
postfix="a" >
- <display:column width="1%" property="id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"fromToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
+ <display:column width="1%" property="original.id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"fromToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="availableResources" onclick="ToggleSelection(this, widgetProperties)" styleClass="availableListMember"/>
</display:column>
- <display:column property="name" title="common.header.ResourceName"
- width="40%"
+ <display:column property="original.name" title="common.header.ResourceName"
+ width="30%"
sortAttr="res.name" />
- <display:column property="description" title="common.header.Description"
- width="59%"
- sortAttr="res.resourceType.description" />
+ <display:column property="original.resourceType.name" title="resource.group.inventory.TypeTH"
+ width="39%"
+ sortAttr="res.resourceType.name" >
+ </display:column>
+ <display:column property="lineage" title="resource.group.inventory.ParentTH"
+ width="30%" />
+
</display:table>
</div>
<!-- / -->
@@ -416,15 +420,18 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
leftSidebar="true"
styleId="toTable"
postfix="p" >
- <display:column width="1%" property="id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"toToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
+ <display:column width="1%" property="original.id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"toToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="pendingResources" onclick="ToggleSelection(this, widgetProperties)" styleClass="pendingListMember"/>
</display:column>
- <display:column property="name" title="common.header.ResourceName"
- width="40%"
+ <display:column property="original.name" title="common.header.ResourceName"
+ width="30%"
sortAttr="res.name" />
- <display:column property="description" title="common.header.Description"
- width="59%"
- sortAttr="res.resourceType.description" />
+ <display:column property="original.resourceType.name" title="resource.group.inventory.TypeTH"
+ width="39%"
+ sortAttr="res.resourceType.name" >
+ </display:column>
+ <display:column property="lineage" title="resource.group.inventory.ParentTH"
+ width="30%" />
</display:table>
</div>
<!-- / -->
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp
index 59c062e..4221584 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/Properties.jsp
@@ -99,8 +99,10 @@ var help = '<hq:help/>';
<display:checkboxdecorator name="ids" onclick="ToggleSelection(this, widgetProperties, true)" styleClass="listMember"/>
</display:column>
- <display:column width="50%" property="name" sortAttr="res.name" title="dash.settings.ListHeader.Resource" />
- <display:column width="50%" property="description" sortAttr="res.description" title="common.header.Description" />
+ <display:column width="25%" property="original.name" sortAttr="res.name" title="dash.settings.ListHeader.Resource" />
+ <display:column width="25%" property="original.resourceType.name" title="dash.settings.ListHeader.Type" />
+ <display:column width="25%" property="lineage" title="dash.settings.ListHeader.Location" />
+ <display:column width="25%" property="original.description" sortAttr="res.description" title="common.header.Description" />
</display:table>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
index 23357b0..7e0205e 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/criticalAlerts/View.jsp
@@ -32,24 +32,30 @@
<c:when test="${not empty criticalAlerts}">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td width="60%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.ResourceName"/><html:img page="/images/tb_sortup_inactive.gif" width="9" height="9" border="0"/></td>
+ <td width="20%" class="ListHeaderInactiveSorted"><fmt:message key="dash.home.TableHeader.ResourceName"/><html:img page="/images/tb_sortup_inactive.gif" width="9" height="9" border="0"/></td>
+ <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Type"/></td>
+ <td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.Location"/></td>
<td width="20%" class="ListHeaderInactive"><fmt:message key="dash.home.TableHeader.AlertName"/></td>
<td width="20%" class="ListHeaderInactiveCenter"><fmt:message key="dash.home.TableHeader.DateTime"/></td>
</tr>
- <c:forEach items="${criticalAlerts}" var="alert">
+ <c:forEach items="${criticalAlerts}" var="item">
<tr class="ListRow">
- <td class="ListCell">
<c:choose>
- <c:when test="{alert.resource eq null}">
- <fmt:message key="dash.home.removed.resource"/>
+ <c:when test="{item.original.alertDefinition.resource eq null}">
+ <td class="ListCell" colspan="3">
+ <fmt:message key="dash.home.removed.resource"/>
+ </td>
</c:when>
<c:otherwise>
- <html:link page="/rhq/resource/summary/overview.xhtml?id=${alert.alertDefinition.resource.id}"><c:out value="${alert.alertDefinition.resource.name}"/> </html:link>
+ <td class="ListCell">
+ <html:link page="/rhq/resource/summary/overview.xhtml?id=${item.original.alertDefinition.resource.id}"><c:out value="${item.original.alertDefinition.resource.name}"/> </html:link>
+ </td>
+ <td class="ListCell"><c:out value="${item.original.alertDefinition.resource.resourceType.name}" /></td>
+ <td class="ListCell"><c:out value="${item.lineage}" /> </td>
</c:otherwise>
</c:choose>
- </td>
- <td class="ListCell"><html:link page="/alerts/Alerts.do?mode=viewAlert&id=${alert.alertDefinition.resource.id}&a=${alert.id}"><c:out value="${alert.alertDefinition.name}"/> </html:link></td>
- <td class="ListCell" align="center"><hq:dateFormatter value="${alert.ctime}"/> </td>
+ <td class="ListCell"><html:link page="/alerts/Alerts.do?mode=viewAlert&id=${item.original.alertDefinition.resource.id}&a=${item.original.id}"><c:out value="${item.original.alertDefinition.name}"/> </html:link></td>
+ <td class="ListCell" align="center"><hq:dateFormatter value="${item.original.ctime}"/> </td>
</tr>
</c:forEach>
</table>
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp
index 4240d33..2b6c3cc 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp
@@ -400,7 +400,7 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
rightSidebar="true"
styleId="fromTable"
postfix="a" >
- <display:column width="1%" property="id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"fromToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
+ <display:column width="1%" property="original.id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"fromToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="availableResource" onclick="ToggleSelection(this, widgetProperties)" styleClass="availableListMember" />
</display:column>
<display:column property="original.name" title="resource.group.inventory.NameTH"
@@ -453,7 +453,7 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
leftSidebar="true"
styleId="toTable"
postfix="p" >
- <display:column width="1%" property="id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"toToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
+ <display:column width="1%" property="original.id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"toToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="pendingResource" onclick="ToggleSelection(this, widgetProperties)" styleClass="pendingListMember" />
</display:column>
<display:column property="original.name" title="resource.group.inventory.NameTH"
commit f3cf404cff2166bf04d639f39d3cea44df48afdd
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 3 18:02:06 2010 +0200
BZ 580919 - This makes the group member addition page in line with the way the resources are disambiguated in the rest of the UI.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
index 808f331..589b54c 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/group/inventory/AddGroupResourcesFormPrepareAction.java
@@ -48,6 +48,7 @@ import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageComponent;
import org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageRenderer;
import org.rhq.enterprise.gui.legacy.Constants;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.RequestUtils;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
@@ -124,10 +125,11 @@ public class AddGroupResourcesFormPrepareAction extends Action {
ResourceNamesDisambiguationResult<Resource> pendingResourcesDisambiguation =
resourceManager.disambiguate(pendingResources, true, RESOURCE_ID_EXTRACTOR);
- pendingResources = buildResourceList(pendingResourcesDisambiguation, pendingResources.getTotalSize(), pendingResources.getPageControl());
+ PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedpeningResources =
+ DisambiguatedResourceListUtil.buildResourceList(pendingResourcesDisambiguation, pendingResources.getTotalSize(), pendingResources.getPageControl(), false);
- request.setAttribute(Constants.PENDING_RESOURCES_ATTR, pendingResources);
- request.setAttribute(Constants.NUM_PENDING_RESOURCES_ATTR, pendingResources.size());
+ request.setAttribute(Constants.PENDING_RESOURCES_ATTR, disambiguatedpeningResources);
+ request.setAttribute(Constants.NUM_PENDING_RESOURCES_ATTR, disambiguatedpeningResources.size());
/*
* available resources are all resources in the system that are not associated with the user and are not pending
@@ -155,10 +157,11 @@ public class AddGroupResourcesFormPrepareAction extends Action {
ResourceNamesDisambiguationResult<Resource> availableResourcesDisambiguation =
resourceManager.disambiguate(availableResources, true, RESOURCE_ID_EXTRACTOR);
- availableResources = buildResourceList(availableResourcesDisambiguation, availableResources.getTotalSize(), availableResources.getPageControl());
+ PageList<DisambiguatedResourceListUtil.Record<Resource>> disambiguatedAvailResources =
+ DisambiguatedResourceListUtil.buildResourceList(availableResourcesDisambiguation, availableResources.getTotalSize(), availableResources.getPageControl(), false);
- request.setAttribute(Constants.AVAIL_RESOURCES_ATTR, availableResources);
- request.setAttribute(Constants.NUM_AVAIL_RESOURCES_ATTR, availableResources.size());
+ request.setAttribute(Constants.AVAIL_RESOURCES_ATTR, disambiguatedAvailResources);
+ request.setAttribute(Constants.NUM_AVAIL_RESOURCES_ATTR, disambiguatedAvailResources.size());
return null;
}
@@ -186,44 +189,5 @@ public class AddGroupResourcesFormPrepareAction extends Action {
}
return resourceCategoryTypes;
- }
-
- //
- // These two methods are to support the resource names disambiguation in the above code.
- // Hopefully this page gets rewritten in JSF so that we don't have to employ this kind of
- // nasties.
- //
-
- private static PageList<Resource> buildResourceList(ResourceNamesDisambiguationResult<Resource> results, int totalSize, PageControl pageControl) {
- ArrayList<Resource> convertedResults = new ArrayList<Resource>(results.getResolution().size());
-
- for(DisambiguationReport<Resource> dr : results.getResolution()) {
- Resource resource = dr.getOriginal();
-
- Resource parent = resource.getParentResource();
- //platforms don't have parents, need to check for null here
- if (parent != null) {
- parent.setName(buildLineage(dr.getParents()));
- }
-
- convertedResults.add(resource);
- }
- return new PageList<Resource>(convertedResults, totalSize, pageControl);
- }
-
- private static String buildLineage(List<ResourceParentFlyweight> parents) {
- if (parents == null || parents.size() == 0) {
- return "";
- }
-
- Iterator<ResourceParentFlyweight> it = parents.iterator();
-
- StringBuilder bld = new StringBuilder(it.next().getParentName());
-
- while (it.hasNext()) {
- bld.append(ResourcePartialLineageComponent.DEFAULT_SEPARATOR).append(it.next().getParentName());
- }
-
- return bld.toString();
- }
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java
index a3deb88..aa6a17b 100755
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/RSSAction.java
@@ -29,7 +29,9 @@ import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceHealthComposite;
+import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.common.tag.FunctionTagLibrary;
@@ -39,6 +41,7 @@ import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.FavoriteResourcePortletPreferences;
import org.rhq.enterprise.gui.legacy.portlet.BaseRSSAction;
import org.rhq.enterprise.gui.legacy.portlet.RSSFeed;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -66,22 +69,29 @@ public class RSSAction extends BaseRSSAction {
favoriteResourcePreferences.asArray(), PageControl.getUnlimitedInstance());
if ((results != null) && (results.size() > 0)) {
- for (ResourceHealthComposite summary : results) {
+ ResourceNamesDisambiguationResult<ResourceHealthComposite> disambiguatedLResults = manager.disambiguate(results, true, ViewAction.RESOURCE_ID_EXTRACTOR);
+
+ PageList<DisambiguatedResourceListUtil.Record<ResourceHealthComposite>> list = DisambiguatedResourceListUtil.buildResourceList(disambiguatedLResults, results.getTotalSize(), results.getPageControl(), false);
+
+ for (DisambiguatedResourceListUtil.Record<ResourceHealthComposite> summary : list) {
String link = feed.getBaseUrl() + FunctionTagLibrary.getDefaultResourceTabURL() + "?id="
- + summary.getId();
+ + summary.getOriginal().getId();
String availText = res.getMessage("dash.home.ResourceHealth.rss.item.availability", summary
- .getAvailabilityType().toString());
+ .getOriginal().getAvailabilityType().toString());
String alertsText = res.getMessage("dash.home.ResourceHealth.rss.item.alerts", Long.valueOf(summary
- .getAlerts()));
+ .getOriginal().getAlerts()));
String typeText = res.getMessage("dash.home.ResourceHealth.rss.item.resourceType", summary
- .getTypeName());
-
+ .getOriginal().getTypeName());
+ String parentsText = res.getMessage("dash.home.ResourceHealth.rss.item.resourceParents", summary.getLineage());
+
long now = System.currentTimeMillis();
StringBuffer desc = new StringBuffer();
desc.append("<table><tr><td align=\"left\">").append(typeText).append("</td></tr>");
+ desc.append("<tr><td align=\"left\">").append(parentsText).append("</td></tr>");
+
if (favoriteResourcePreferences.showAvailability) {
desc.append("<tr><td align=\"left\">").append(availText).append("</td></tr>");
}
@@ -92,7 +102,7 @@ public class RSSAction extends BaseRSSAction {
desc.append("</table>");
- feed.addItem(summary.getName(), link, desc.toString(), now);
+ feed.addItem(summary.getOriginal().getName(), link, desc.toString(), now);
}
}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
index 6afe922..7db8562 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
@@ -48,7 +48,7 @@ public class ViewAction extends TilesAction {
private static final Log log = LogFactory.getLog(ViewAction.class);
- private static final IntExtractor<ResourceHealthComposite> RESOURCE_ID_EXTRACTOR = new IntExtractor<ResourceHealthComposite>() {
+ static final IntExtractor<ResourceHealthComposite> RESOURCE_ID_EXTRACTOR = new IntExtractor<ResourceHealthComposite>() {
public int extract(ResourceHealthComposite object) {
return object.getId();
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
index a4b54ff..2893eb1 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
+++ b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
@@ -710,6 +710,7 @@ dash.home.ResourceHealth=Favorite Resources
dash.home.ResourceHealth.rss.item.availability=Current Availability: {0}
dash.home.ResourceHealth.rss.item.alerts=Number of Alerts: {0}
dash.home.ResourceHealth.rss.item.resourceType=Resource Type: {0}
+dash.home.ResourceHealth.rss.item.resourceParents=Resource Parents: {0}
dash.home.RecentlyApproved=Recently Added Resources
dash.home.CriticalAlerts=Recent Alerts
dash.home.Inventory=Recent Inventory Changes
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp
index 0c0dbfe..4240d33 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/resource/group/inventory/AddResourcesForm.jsp
@@ -403,15 +403,15 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
<display:column width="1%" property="id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"fromToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="availableResource" onclick="ToggleSelection(this, widgetProperties)" styleClass="availableListMember" />
</display:column>
- <display:column property="name" title="resource.group.inventory.NameTH"
+ <display:column property="original.name" title="resource.group.inventory.NameTH"
width="30%"
sortAttr="res.name" />
- <display:column property="parentResource.name" title="resource.group.inventory.ParentTH"
- width="30%" />
- <display:column property="resourceType.name" title="resource.group.inventory.TypeTH"
+ <display:column property="original.resourceType.name" title="resource.group.inventory.TypeTH"
width="39%"
sortAttr="res.resourceType.name" >
</display:column>
+ <display:column property="lineage" title="resource.group.inventory.ParentTH"
+ width="30%" />
</display:table>
</div>
@@ -456,17 +456,16 @@ widgetProperties = getWidgetProperties('<c:out value="${widgetInstanceName}"/>')
<display:column width="1%" property="id" title="<input type=\"checkbox\" onclick=\"ToggleAll(this, widgetProperties)\" name=\"toToggleAll\">" isLocalizedTitle="false" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox">
<display:checkboxdecorator name="pendingResource" onclick="ToggleSelection(this, widgetProperties)" styleClass="pendingListMember" />
</display:column>
- <display:column property="name" title="resource.group.inventory.NameTH"
+ <display:column property="original.name" title="resource.group.inventory.NameTH"
width="30%"
sortAttr="res.name" />
- <display:column property="parentResource.name" title="resource.group.inventory.ParentTH"
- width="30%"
- sortAttr="parent.name" />
- <display:column property="resourceType.name" title="resource.group.inventory.TypeTH"
+ <display:column property="original.resourceType.name" title="resource.group.inventory.TypeTH"
width="39%"
sortAttr="res.resourceType.name" >
<%-- TODO GH: I don't see this doing anything at all? <display:resourcedecorator resource="${resource}" type="true" />--%>
</display:column>
+ <display:column property="lineage" title="resource.group.inventory.ParentTH"
+ width="30%" />
</display:table>
</div>
commit 2ebbc4cf78ed504cd49c3a846176665425a0cc41
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 3 16:21:55 2010 +0200
BZ 580919 - favorite resources (aka resource health) portlet shows disambiguated names.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
index bda2130..6afe922 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/portlet/resourcehealth/ViewAction.java
@@ -29,12 +29,16 @@ import org.apache.struts.action.ActionMapping;
import org.apache.struts.tiles.ComponentContext;
import org.apache.struts.tiles.actions.TilesAction;
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
import org.rhq.core.domain.resource.composite.ResourceHealthComposite;
+import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
+import org.rhq.core.util.IntExtractor;
import org.rhq.enterprise.gui.legacy.WebUser;
import org.rhq.enterprise.gui.legacy.WebUserPreferences;
import org.rhq.enterprise.gui.legacy.WebUserPreferences.FavoriteResourcePortletPreferences;
+import org.rhq.enterprise.gui.legacy.util.DisambiguatedResourceListUtil;
import org.rhq.enterprise.gui.legacy.util.SessionUtils;
import org.rhq.enterprise.gui.util.WebUtility;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
@@ -44,11 +48,18 @@ public class ViewAction extends TilesAction {
private static final Log log = LogFactory.getLog(ViewAction.class);
+ private static final IntExtractor<ResourceHealthComposite> RESOURCE_ID_EXTRACTOR = new IntExtractor<ResourceHealthComposite>() {
+
+ public int extract(ResourceHealthComposite object) {
+ return object.getId();
+ }
+ };
+
@Override
public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
- PageList<ResourceHealthComposite> list = new PageList<ResourceHealthComposite>();
+ PageList<DisambiguatedResourceListUtil.Record<ResourceHealthComposite>> list = new PageList<DisambiguatedResourceListUtil.Record<ResourceHealthComposite>>();
boolean showAvailability = true;
boolean showAlerts = true;
try {
@@ -65,7 +76,12 @@ public class ViewAction extends TilesAction {
.getFavoriteResourcePortletPreferences();
ResourceManagerLocal manager = LookupUtil.getResourceManager();
- list = manager.findResourceHealth(user.getSubject(), favoriteResourcePreferences.asArray(), pc);
+ PageList<ResourceHealthComposite> lst = manager.findResourceHealth(user.getSubject(), favoriteResourcePreferences.asArray(), pc);
+
+ ResourceNamesDisambiguationResult<ResourceHealthComposite> disambiguatedList = manager.disambiguate(lst, true, RESOURCE_ID_EXTRACTOR);
+
+ list = DisambiguatedResourceListUtil.buildResourceList(disambiguatedList, lst.getTotalSize(), lst.getPageControl(), true);
+
showAvailability = favoriteResourcePreferences.showAvailability;
showAlerts = favoriteResourcePreferences.showAlerts;
} catch (Exception e) {
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
new file mode 100644
index 0000000..e0c3b5b
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/util/DisambiguatedResourceListUtil.java
@@ -0,0 +1,110 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.enterprise.gui.legacy.util;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.rhq.core.domain.resource.composite.DisambiguationReport;
+import org.rhq.core.domain.resource.composite.ResourceNamesDisambiguationResult;
+import org.rhq.core.domain.resource.composite.ResourceParentFlyweight;
+import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.inventory.resource.ResourcePartialLineageComponent;
+
+/**
+ * A utility class to provide page lists of disambiguated resource lists for the
+ * Struts legacy UI.
+ *
+ * @author Lukas Krejci
+ */
+public class DisambiguatedResourceListUtil {
+
+ private static final String RESOURCE_URL = "/rhq/resource/summary/overview.xhtml";
+
+ private DisambiguatedResourceListUtil() {
+
+ }
+
+ public static class Record<T> {
+
+ private T original;
+ private String lineage;
+
+ public Record(T original, String lineage) {
+ this.original = original;
+ this.lineage = lineage;
+ }
+
+ public T getOriginal() {
+ return original;
+ }
+
+ public String getLineage() {
+ return lineage;
+ }
+ }
+
+ public static <T> PageList<Record<T>> buildResourceList(ResourceNamesDisambiguationResult<T> results, int totalSize, PageControl pageControl, boolean renderLinks) {
+ ArrayList<Record<T>> convertedResults = new ArrayList<Record<T>>(results.getResolution().size());
+
+ for(DisambiguationReport<T> dr : results.getResolution()) {
+ convertedResults.add(new Record<T>(dr.getOriginal(), buildLineage(dr.getParents(), renderLinks)));
+ }
+ return new PageList<Record<T>>(convertedResults, totalSize, pageControl);
+ }
+
+ private static String buildLineage(List<ResourceParentFlyweight> parents, boolean renderLinks) {
+ if (parents == null || parents.size() == 0) {
+ return "";
+ }
+
+ Iterator<ResourceParentFlyweight> it = parents.iterator();
+
+ StringBuilder bld = new StringBuilder();
+
+ appendParentName(bld, it.next(), renderLinks);
+
+ while (it.hasNext()) {
+ bld.append(ResourcePartialLineageComponent.DEFAULT_SEPARATOR);
+ appendParentName(bld, it.next(), renderLinks);
+ }
+
+ return bld.toString();
+ }
+
+ private static void appendParentName(StringBuilder bld, ResourceParentFlyweight parent, boolean renderLinks) {
+ if (renderLinks) {
+ bld.append("<a href=\"").append(RESOURCE_URL).append("?id=").append(parent.getParentId())
+ .append("\">");
+ }
+
+ bld.append(parent.getParentName());
+
+ if (renderLinks) {
+ bld.append("</a>");
+ }
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
index ca4439f..a4b54ff 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
+++ b/modules/enterprise/gui/portal-war/src/main/webapp-filtered/WEB-INF/classes/ApplicationResources.properties
@@ -823,6 +823,7 @@ dash.home.TableHeader.Title=Title
dash.home.TableHeader.Product=Product
dash.home.TableHeader.SoftwareType=Type
dash.home.TableHeader.SoftwareSource=Source
+dash.home.TableHeader.Location=Location
dash.home.DisplayCategory.PlatformTotal=Platform Total
dash.home.DisplayCategory.ServerTotal=Server Total
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
index ef8ba0c..a347bb3 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/resourceHealth/View.jsp
@@ -27,15 +27,16 @@
<c:when test="${not empty resourceHealth}">
<display:table cellspacing="0" cellpadding="0" width="100%" action="/Dashboard.do"
- var="resource" items="${resourceHealth}" >
+ var="item" items="${resourceHealth}" >
- <display:column width="50%" href="/rhq/resource/summary/overview.xhtml?id=${resource.id}" property="name" sortAttr="res.name" title="dash.home.TableHeader.ResourceName"/>
- <display:column width="25%" property="typeName" title="dash.home.TableHeader.Type"/>
+ <display:column width="25%" href="/rhq/resource/summary/overview.xhtml?id=${item.original.id}" property="original.name" sortAttr="res.name" title="dash.home.TableHeader.ResourceName"/>
+ <display:column width="25%" property="original.typeName" title="dash.home.TableHeader.Type"/>
+ <display:column width="25%" property="lineage" title="dash.home.TableHeader.Location"/>
<c:if test="${alerts}">
- <display:column width="10%" property="alerts" title="dash.home.TableHeader.Alerts" align="center"/>
+ <display:column width="10%" property="original.alerts" title="dash.home.TableHeader.Alerts" align="center"/>
</c:if>
<c:if test="${availability}">
- <display:column width="15%" property="availabilityType" title="resource.common.monitor.visibility.AvailabilityTH" align="center"
+ <display:column width="15%" property="original.availabilityType" title="resource.common.monitor.visibility.AvailabilityTH" align="center"
sortAttr="avail.availabilityType" styleClass="ListCellCheckbox" headerStyleClass="ListHeaderCheckbox" valign="middle">
<display:availabilitydecorator/>
</display:column>
commit 7b20873d50bbe2bbf2d7d3605ed5c54252ceddc9
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Mon May 3 16:04:01 2010 +0200
BZ 580919 - recently added resources portlet now shows the type name.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index 72521d4..f7b2381 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -182,27 +182,27 @@ import org.rhq.core.domain.util.Summary;
+ " FROM Resource res " //
+ " WHERE res.parentResource = :parent "),
@NamedQuery(name = Resource.QUERY_RECENTLY_ADDED_PLATFORMS, query = "" //
- + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.itime) "
+ + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.resourceType.name, res.itime) "
+ " FROM Resource res JOIN res.childResources child JOIN res.implicitGroups g JOIN g.roles r JOIN r.subjects s "
+ " WHERE (res.itime >= :oldestEpochTime OR ((child.itime >= :oldestEpochTime) AND (child.inventoryStatus = 'COMMITTED'))) "
+ " AND res.resourceType.category = 'PLATFORM' "
+ " AND res.inventoryStatus = 'COMMITTED' "
+ " AND s = :subject " + "ORDER BY res.itime DESC "),
@NamedQuery(name = Resource.QUERY_RECENTLY_ADDED_PLATFORMS_ADMIN, query = "" //
- + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.itime) "
+ + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.resourceType.name, res.itime) "
+ " FROM Resource res JOIN res.childResources child "
+ " WHERE ((res.itime >= :oldestEpochTime) OR ((child.itime >= :oldestEpochTime) AND (child.inventoryStatus = 'COMMITTED'))) "
+ " AND res.resourceType.category = 'PLATFORM' "
+ " AND res.inventoryStatus = 'COMMITTED' "
+ "ORDER BY res.itime DESC "),
@NamedQuery(name = Resource.QUERY_RECENTLY_ADDED_SERVERS, query = ""
- + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.itime) "
+ + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.resourceType.name, res.itime) "
+ " FROM Resource res JOIN res.implicitGroups g JOIN g.roles r JOIN r.subjects s "
+ " WHERE res.itime >= :oldestEpochTime " + " AND res.resourceType.category = 'SERVER' "
+ " AND res.inventoryStatus = 'COMMITTED' " + " AND res.parentResource.id = :platformId "
+ " AND s = :subject " + "ORDER BY res.itime DESC "),
@NamedQuery(name = Resource.QUERY_RECENTLY_ADDED_SERVERS_ADMIN, query = ""
- + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.itime) "
+ + " SELECT DISTINCT new org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite(res.id, res.name, res.resourceType.name, res.itime) "
+ " FROM Resource res " + " WHERE res.itime >= :oldestEpochTime "
+ " AND res.resourceType.category = 'SERVER' " + " AND res.inventoryStatus = 'COMMITTED' "
+ " AND res.parentResource.id = :platformId " + "ORDER BY res.itime DESC "),
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/RecentlyAddedResourceComposite.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/RecentlyAddedResourceComposite.java
index 0018621..f34e28d 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/RecentlyAddedResourceComposite.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/composite/RecentlyAddedResourceComposite.java
@@ -36,13 +36,15 @@ public class RecentlyAddedResourceComposite implements Serializable {
private long ctime;
private boolean showChildren;
private List<RecentlyAddedResourceComposite> children;
-
- public RecentlyAddedResourceComposite() {
+ private String resourceTypeName;
+
+ public RecentlyAddedResourceComposite() {
}
-
- public RecentlyAddedResourceComposite(int id, String name, long ctime) {
+
+ public RecentlyAddedResourceComposite(int id, String name, String resourceTypeName, long ctime) {
this.id = id;
this.name = name;
+ this.resourceTypeName = resourceTypeName;
this.ctime = ctime;
}
@@ -58,6 +60,10 @@ public class RecentlyAddedResourceComposite implements Serializable {
return name;
}
+ public String getResourceTypeName() {
+ return resourceTypeName;
+ }
+
public long getCtime() {
return ctime;
}
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
index 824857c..4970c00 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/portlet/recentlyApproved/View.jsp
@@ -24,7 +24,8 @@
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="3%" class="ListHeaderInactive"> </td>
- <td width="67%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
+ <td width="37%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.ResourceName"/></td>
+ <td width="30%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.Type"/></td>
<td width="30%" class="ListHeaderInactive" align="left"><fmt:message key="dash.home.TableHeader.DateTime"/></td>
</tr>
<c:forEach items="${recentlyApproved}" var="platform">
@@ -48,6 +49,7 @@
</c:choose>
</td>
<td class="ListCell" align="left"><html:link page="/rhq/resource/summary/overview.xhtml?id=${platform.id}"><c:out value="${platform.name}"/> </html:link></td>
+ <td class="ListCell" align="left"><c:out value="${platform.resourceTypeName}"/></td>
<td class="ListCell" align="left"><hq:dateFormatter value="${platform.ctime}"/> </td>
</tr>
<c:if test="${platform.showChildren}">
@@ -56,6 +58,7 @@
<tr class="ListRow">
<td class="ListCell"></td>
<td class="ListCell" align="left"><html:link page="/rhq/resource/summary/overview.xhtml?id=${server.id}"><c:out value="${server.name}"/> </html:link></td>
+ <td class="ListCell" align="left"><c:out value="${server.resourceTypeName}"/></td>
<td class="ListCell" align="left"><hq:dateFormatter value="${server.ctime}"/> </td>
</tr>
</c:forEach> <!-- For each server -->
commit 1fe024068b6aaa61068382cf3cbc099a638e3200
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Mon May 24 11:05:19 2010 -0400
improve testMoveResourceType() so that it verifies that when a ResourceType X is moved, that Resources of type X are also moved
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java
index bda11e9..0d70634 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java
@@ -19,10 +19,17 @@
package org.rhq.enterprise.server.resource.metadata.test;
import java.util.Set;
+import java.util.UUID;
import javax.persistence.EntityManager;
import javax.transaction.Status;
+import org.jetbrains.annotations.NotNull;
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.criteria.ResourceCriteria;
+import org.rhq.core.domain.resource.InventoryStatus;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.enterprise.server.util.LookupUtil;
import org.testng.annotations.Test;
import org.rhq.core.domain.measurement.DisplayType;
@@ -126,25 +133,36 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
System.out.println("testMoveResourceType --- start");
try {
registerPlugin("update2-v1_0.xml");
+
ResourceType platform1 = getResourceType("myPlatform");
+ Resource platformResource = createResource("foo-myPlatform", "foo-myPlatform", platform1);
+ ResourceType service1 = getResourceType("service1");
+ Resource service1Resource = createResource("foo-service1", "foo-service1", service1);
+ platformResource.addChildResource(service1Resource);
+ ResourceType nestedOne = getResourceType("nestedOne");
+ Resource nestedOneResource = createResource("foo-nestedOne", "foo-nestedOne", nestedOne);
+ service1Resource.addChildResource(nestedOneResource);
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+ resourceManager.createResource(overlord, platformResource, -1);
+
getTransactionManager().begin();
- EntityManager em = getEntityManager();
+ EntityManager em = getEntityManager();
platform1 = em.find(ResourceType.class, platform1.getId());
assert platform1 != null : "I did not find myPlatform";
Set<MeasurementDefinition> defs = platform1.getMetricDefinitions();
- assert defs.size() == 1 : "I was expecting 1 definition at platform level in v1";
+ assert defs.size() == 1 : "I was expecting 1 metric definition at platform level in v1";
assert DisplayType.DETAIL == defs.iterator().next().getDisplayType() : "Display type should be DETAIL in v1";
// one child service in v1
Set<ResourceType> platformChildren = platform1.getChildResourceTypes();
assert platformChildren.size() == 1 : "Expected 1 direct child service of platform in v1";
- ResourceType service1 = platformChildren.iterator().next();
+ service1 = platformChildren.iterator().next();
assert service1.getName().equals("service1") : "Expected 'service1' as name of direct platform child in v1";
assert service1.getMetricDefinitions().size() == 1 : "Expected 1 metric for 'service1' in v1";
- Set<ResourceType> nestedService = service1.getChildResourceTypes();
- assert nestedService.size() == 1 : "Expected 1 nested service of 'service1' in v1";
- Set<MeasurementDefinition> nestedDefs = nestedService.iterator().next().getMetricDefinitions();
+ Set<ResourceType> nestedServices = service1.getChildResourceTypes();
+ assert nestedServices.size() == 1 : "Expected 1 nested service of 'service1' in v1";
+ Set<MeasurementDefinition> nestedDefs = nestedServices.iterator().next().getMetricDefinitions();
assert nestedDefs.size() == 1 : "Expected 1 definition within 'nestedService' in v1";
MeasurementDefinition defThree = nestedDefs.iterator().next();
int definitionId = defThree.getId(); // get the id of the definition "Three" and save it for later use
@@ -166,9 +184,28 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
assert defs2.size() == 1 : "I was expecting 1 definition at platform level in v2";
assert DisplayType.SUMMARY == defs2.iterator().next().getDisplayType() : "Display type should be SUMMARY in v2";
+ ResourceCriteria resourceCriteria = new ResourceCriteria();
+ resourceCriteria.setStrict(true);
+ resourceCriteria.addFilterResourceKey("foo-myPlatform");
+ resourceCriteria.fetchChildResources(true);
+ Resource platform2Resource = getResource(resourceCriteria);
+ assert platform2Resource != null : "Expected to find platform Resource in db.";
+
// two children in v2
Set<ResourceType> platformChildren2 = platform2.getChildResourceTypes();
- assert platformChildren2.size() == 2 : "Expected 2 direct child services of platform in v2";
+ assert platformChildren2.size() == 2 : "Expected 2 direct child service types of platform in v2";
+
+ Set<Resource> platform2ChildResources = platform2Resource.getChildResources();
+ assert platform2ChildResources.size() == 2 : "Expected 2 direct child services of platform in v2";
+ boolean foundMovedResource = false;
+ for (Resource childResource : platform2ChildResources) {
+ assert childResource.getChildResources().isEmpty() : "Expected child Resource " + childResource + " to have no children";
+ if (childResource.getResourceKey().equals("foo-nestedOne")) {
+ foundMovedResource = true;
+ }
+ }
+ assert foundMovedResource : "Expected 'foo-nestedOne' Resource to have been moved directly under platform Resource";
+
for (ResourceType type : platformChildren2) {
String typeName = type.getName();
assert type.getMetricDefinitions().size() == 1 : "Expected one definition for " + typeName + " in v2";
@@ -186,7 +223,7 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
* latter is a different story. We probably should cascade that anyway.
*/
assert three.getId() == definitionId : "Expected the id of 'Three' to be " + definitionId
- + " but it was " + three.getId() + " in v2";
+ + ", but it was " + three.getId() + " in v2";
} else if (typeName.equals("service1")) {
// check that the nested service is gone
Set<ResourceType> childrenOfService = type.getChildResourceTypes();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
index 6b5c627..205108d 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateSubsytemTestBase.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -22,6 +22,7 @@ import java.io.FileNotFoundException;
import java.net.URL;
import java.util.List;
import java.util.Set;
+import java.util.UUID;
import javax.ejb.EJB;
import javax.persistence.EntityManager;
@@ -82,12 +83,14 @@ public class UpdateSubsytemTestBase extends AbstractEJB3Test {
protected static ResourceMetadataManagerLocal metadataManager;
protected static ResourceTypeManagerLocal resourceTypeManager;
+ protected static ResourceManagerLocal resourceManager;
@BeforeSuite
protected void init() {
try {
metadataManager = LookupUtil.getResourceMetadataManager();
resourceTypeManager = LookupUtil.getResourceTypeManager();
+ resourceManager = LookupUtil.getResourceManager();
} catch (Throwable t) {
// Catch RuntimeExceptions and Errors and dump their stack trace, because Surefire will completely swallow them
// and throw a cryptic NPE (see http://jira.codehaus.org/browse/SUREFIRE-157)!
@@ -146,6 +149,28 @@ public class UpdateSubsytemTestBase extends AbstractEJB3Test {
}
}
+ protected Resource createResource(String resourceKey, String name, ResourceType type) {
+ Resource resource = new Resource(resourceKey, name, type);
+ resource.setUuid(UUID.randomUUID().toString());
+ resource.setInventoryStatus(InventoryStatus.COMMITTED);
+ return resource;
+ }
+
+ protected Resource getResource(ResourceCriteria resourceCriteria) {
+ Subject overlord = LookupUtil.getSubjectManager().getOverlord();
+
+ PageList<Resource> results = resourceManager
+ .findResourcesByCriteria(overlord, resourceCriteria);
+ if (results.size() == 0) {
+ return null;
+ } else if (results.size() == 1) {
+ return results.get(0);
+ } else {
+ throw new IllegalStateException("Found more than one Resource with criteria " + resourceCriteria
+ + ".");
+ }
+ }
+
protected String getSubsystemDirectory() {
return ".";
}
commit fd9f8cd10e12584a6e3650036b65692ff27ba6b2
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Fri May 21 17:36:11 2010 -0400
fix description for use-try-lock resource config prop on datasource resource types (https://bugzilla.redhat.com/show_bug.cgi?id=594864)
diff --git a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
index b6bfdd9..7d822ca 100644
--- a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
@@ -485,10 +485,10 @@
</c:description>
</c:simple-property>
- <c:simple-property name="use-try-lock" type="long" required="false" defaultValue="0">
+ <c:simple-property name="use-try-lock" type="long" required="false">
<c:description>
- Any configured timeout, in milliseconds, for internal locks on the resource adapter objects. A value of 0
- means no timeout. The default is 0.
+ Any configured timeout, in seconds, for internal locks on the resource adapter objects. A value of 0
+ means no timeout. The default is 60.
</c:description>
</c:simple-property>
commit b71faa29cafc4e4737184f7b8a348091748bd29f
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Fri May 21 16:46:58 2010 -0400
oops, forgot to update current schema version in pom to 2.87
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index b2b0b7e..eb5d6ea 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -22,7 +22,7 @@
<properties>
<scm.module.path>modules/core/dbutils/</scm.module.path>
- <db.schema.version>2.85</db.schema.version>
+ <db.schema.version>2.87</db.schema.version>
</properties>
<dependencies>
commit 10d7bf099a310e9be9d93637299d67265e29aa2f
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Fri May 21 16:45:43 2010 -0400
use schema version 2.87, rather than 2.86, for adding unique constraint to rhq_resource_type name+plugin index, since Mazz has already claimed 2.86; fix compile errors in JBossCacheComponent and JBossCacheDetailComponent caused by my previous checkin; turn down logging verbosity in ResourceMetadataManagerBean
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index 31a7b40..6ec7660 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2920,7 +2920,8 @@
</schema-directSQL>
</schemaSpec>
- <schemaSpec version="2.86">
+
+ <schemaSpec version="2.87">
<schema-directSQL>
<statement desc="Make RHQ_RES_TYPE_IDX_PLG_NAME index unique">
DROP INDEX RHQ_RES_TYPE_IDX_PLG_NAME ;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
index cbd364b..b4b7d55 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java
@@ -65,7 +65,9 @@ public interface SubjectManagerLocal {
Subject getOverlord();
/**
- * @see SubjectManagerRemote#findAllSubjects
+ * Returns a paged list of all Subjects.
+ *
+ * @param pageControl the page control that specifies which page of the result set to return and how sort it
*/
PageList<Subject> findAllSubjects(PageControl pageControl);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index fa31afe..e49c8f3 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@ -92,6 +92,7 @@ import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
* @author Greg Hinkle
* @author Heiko W. Rupp
* @author John Mazzitelli
+ * @author Ian Springer
*/
@Stateless
@javax.annotation.Resource(name = "RHQ_DS", mappedName = RHQConstants.DATASOURCE_JNDI_NAME)
@@ -312,14 +313,14 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
if (existingPlugin != null) {
Plugin obsolete = AgentPluginDescriptorUtil.determineObsoletePlugin(plugin, existingPlugin);
- if (obsolete == existingPlugin) { // yes use == for reference equality
+ if (obsolete == existingPlugin) { // yes, use == for reference equality
newOrUpdated = true;
}
plugin.setId(existingPlugin.getId());
plugin.setEnabled(existingPlugin.isEnabled());
}
- // If this is a brand new plugin, it gets "updated" too - which ends up being a simple persist.
+ // If this is a brand new plugin, it gets "updated" too.
if (newOrUpdated) {
if (plugin.getDisplayName() == null) {
plugin.setDisplayName(plugin.getName());
@@ -347,7 +348,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
// TODO GH: JBNADM-1310/JBNADM-1630 - Push updated plugins to running agents and have them reboot their PCs
// We probably want to be smart about this - perhaps have the agents periodically poll their server to see
- // if there are new plugins and if so download them - this of course would be configurable/disablable
+ // if there are new plugins and if so download them - this of course would be configurable/disableable
return typesUpdated;
}
@@ -392,7 +393,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
* @param id the id of the plugin whose content is being updated
* @param file the plugin file whose content will be streamed to the database
*
- * @throws Exception
+ * @throws Exception on failure to update the plugin's content
*/
private void streamPluginFileContentToDatabase(int id, File file) throws Exception {
Connection conn = null;
@@ -424,7 +425,8 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
private void updateTypes(Set<ResourceType> rootResourceTypes) throws Exception {
// Iterate the resource types breadth-first, so all platform types get added before any server types or platform
// service types. This way, we'll be able to set all of the platform types as parents of the server types and
- // platform service types.
+ // platform service types. It's also helpful for other types with multiple "runs-inside" parent types (e.g
+ // Hibernate Entities), since it ensures the parent types will get persisted prior to the child types.
for (ResourceType rootResourceType : rootResourceTypes) {
updateType(rootResourceType);
}
@@ -544,7 +546,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
private void mergeExistingType(ResourceType resourceType, ResourceType existingType) {
- log.info("Merging type [" + resourceType + "] + into existing type [" + existingType + "]...");
+ log.debug("Merging type [" + resourceType + "] + into existing type [" + existingType + "]...");
// Make sure to first add/update any subcategories on the parent before trying to update children.
// Otherwise, the children may try to save themselves with subcategories which wouldn't exist yet.
@@ -648,7 +650,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
private void updateParentResourceTypes(ResourceType newType, ResourceType existingType) {
Set<ResourceType> newParentTypes = newType.getParentResourceTypes();
- log.info("Setting parent types on type: " + ((existingType != null) ? existingType : newType )
+ log.debug("Setting parent types on type: " + ((existingType != null) ? existingType : newType )
+ " to [" + newParentTypes + "]...");
newType.setParentResourceTypes(new HashSet<ResourceType>());
Set<ResourceType> originalExistingParentTypes = new HashSet<ResourceType>();
@@ -663,7 +665,8 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
ResourceType.QUERY_FIND_BY_NAME_AND_PLUGIN).setParameter("name", newParentType.getName())
.setParameter("plugin", newParentType.getPlugin()).getSingleResult();
ResourceType type = (existingType != null) ? existingType : newType;
- log.info("Adding type [" + type + "] as child of type [" + realParentType + "]...");
+ log.info("Adding type [" + toConciseString(type) + "] as child of type ["
+ + toConciseString(realParentType) + "]...");
realParentType.addChildResourceType(type);
}
} catch (NoResultException nre) {
@@ -673,7 +676,8 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
for (ResourceType obsoleteParentType : originalExistingParentTypes) {
- log.info("Removing type [" + existingType + "] from parent type [" + obsoleteParentType + "]...");
+ log.info("Removing type [" + toConciseString(existingType) + "] from parent type ["
+ + toConciseString(obsoleteParentType) + "]...");
obsoleteParentType.removeChildResourceType(existingType);
moveResourcesToNewParent(existingType, obsoleteParentType, newParentTypes);
}
@@ -681,6 +685,10 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
entityManager.flush();
}
+ private static String toConciseString(ResourceType type) {
+ return (type != null) ? (type.getPlugin() + ":" + type.getName() + "(id=" + type.getId() + ")") : "null";
+ }
+
private void moveResourcesToNewParent(ResourceType existingType, ResourceType obsoleteParentType, Set<ResourceType> newParentTypes) {
Subject overlord = subjectManager.getOverlord();
ResourceCriteria criteria = new ResourceCriteria();
@@ -703,6 +711,8 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
for (Resource childResource : resource.getChildResources()) {
if (childResource.getResourceType().equals(newParentType)) {
// We found a child to be the new parent of our orphaned Resource.
+ // TODO: Check if there are are multiple children of the new parent type. If so,
+ // log an error and don't move the resource.
newParent = childResource;
break newParentTypes;
}
@@ -714,7 +724,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
newParent.addChildResource(resource);
} else {
- log.warn("We were unable to move " + resource + " from invalid parent " + resource.getParentResource()
+ log.debug("We were unable to move " + resource + " from invalid parent " + resource.getParentResource()
+ " to a new valid parent with one of the following types: " + newParentTypes);
}
}
@@ -735,7 +745,6 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
private List<ResourceSubCategory> getAllSubcategories(ResourceSubCategory cat) {
-
List<ResourceSubCategory> result = new ArrayList<ResourceSubCategory>();
if (cat.getChildSubCategories() != null) {
@@ -750,7 +759,6 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
/** Update the <event> tags */
private void updateEventDefinitions(ResourceType newType, ResourceType existingType) {
-
Set<EventDefinition> newEventDefs = newType.getEventDefinitions();
// Loop over the newEventDefs and set the resourceTypeId, so equals() will work
for (EventDefinition def : newEventDefs) {
@@ -1284,7 +1292,6 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
existingType.setPackageExtraPropertiesDefinition(null);
}
}
-
}
/**
diff --git a/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheComponent.java b/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheComponent.java
index 24b3acc..17a2b1e 100644
--- a/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheComponent.java
+++ b/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheComponent.java
@@ -25,6 +25,7 @@ package org.rhq.plugins.jbosscache3;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jetbrains.annotations.NotNull;
import org.mc4j.ems.connection.EmsConnection;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.measurement.AvailabilityType;
@@ -49,9 +50,12 @@ public class JBossCacheComponent implements
private String beanName;
- public void start(ResourceContext<ProfileServiceComponent> context)
+ private ResourceContext<ProfileServiceComponent> resourceContext;
+
+ public void start(ResourceContext<ProfileServiceComponent> context)
throws InvalidPluginConfigurationException, Exception {
+ resourceContext = context;
parentComp = context.getParentResourceComponent();
Configuration configuration = context.getPluginConfiguration();
@@ -80,4 +84,9 @@ public class JBossCacheComponent implements
public EmsConnection getEmsConnection() {
return parentComp.getEmsConnection();
}
+
+ @NotNull
+ public ResourceContext<ProfileServiceComponent> getResourceContext() {
+ return resourceContext;
+ }
}
diff --git a/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheDetailComponent.java b/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheDetailComponent.java
index b23e404..844da14 100644
--- a/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheDetailComponent.java
+++ b/modules/plugins/jboss-cache-v3/src/main/java/org/rhq/plugins/jbosscache3/JBossCacheDetailComponent.java
@@ -26,6 +26,7 @@ import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jetbrains.annotations.NotNull;
import org.mc4j.ems.connection.EmsConnection;
import org.mc4j.ems.connection.bean.EmsBean;
import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
@@ -59,10 +60,12 @@ public class JBossCacheDetailComponent implements MeasurementFacet,
public ProfileServiceComponent parentComponent;
private String beanName;
private final Log log = LogFactory.getLog(this.getClass());
+ private ResourceContext<ProfileServiceComponent> resourceContext;
- public void start(ResourceContext<ProfileServiceComponent> context)
+ public void start(ResourceContext<ProfileServiceComponent> context)
throws InvalidPluginConfigurationException, Exception {
+ resourceContext = context;
parentComponent = context.getParentResourceComponent();
EmsConnection connection = getEmsConnection();
@@ -100,7 +103,12 @@ public class JBossCacheDetailComponent implements MeasurementFacet,
return parentComponent.getConnection();
}
- public void getValues(MeasurementReport report,
+ @NotNull
+ public ResourceContext<ProfileServiceComponent> getResourceContext() {
+ return resourceContext;
+ }
+
+ public void getValues(MeasurementReport report,
Set<MeasurementScheduleRequest> metrics) throws Exception {
EmsConnection connection = getEmsConnection();
@@ -125,7 +133,7 @@ public class JBossCacheDetailComponent implements MeasurementFacet,
.toString()));
}
} catch (Exception e) {
- log.error(" Failure to collect measurement data for metric "
+ log.error("Failure to collect measurement data for metric "
+ metricName + " from bean "
+ detailComponent.getBeanName(), e);
}
@@ -151,7 +159,7 @@ public class JBossCacheDetailComponent implements MeasurementFacet,
new PropertySimple(OperationResult.SIMPLE_OPERATION_RESULT_NAME, String.valueOf(obj)));
}
} catch (Exception e) {
- log.error(" Failure to invoke operation " + name + " on bean "
+ log.error("Failure to invoke operation " + name + " on bean "
+ beanName, e);
}
return result;
commit 2e1a8be116717c33c91114cb0dd9ac9f254acf10
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Fri May 21 11:56:20 2010 -0400
* add support for moving resourcetypes to new locations in the type hierarchy, as well as moving any existing resources of those types (https://bugzilla.redhat.com/show_bug.cgi?id=577055)
* in jboss-as-5 plugin, add new JBoss Messaging singleton type and move existing Topic and Queue types under that type (https://jira.jboss.org/browse/EMBJOPR-303)
* turn off PERSIST and MERGE cascading on ResourceType.childResources to give metadata update code a greater level of control
* refactor metadata updateTypes() code
** iterate types breadth-first, rather than depth-first
** explicitly update child resources of new resources, since PERSIST cascading is now disabled
** stop using exceptions for code flow
* add unique constraint to name+plugin index on RHQ_RESOURCE_TYPE table in dbsetup and dbupgrade scripts
* remove bogus Hibernate hints on named query in ResourceType entity
diff --git a/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml b/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml
index 964c975..7c51ef7 100644
--- a/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml
+++ b/modules/core/dbutils/src/main/scripts/dbsetup/inventory-schema.xml
@@ -25,7 +25,7 @@
<column name="PLUGIN_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
<column name="RES_CONFIG_DEF_ID" type="INTEGER" references="RHQ_CONFIG_DEF(ID)"/>
- <index name="RHQ_RES_TYPE_IDX_PLG_NAME">
+ <index name="RHQ_RES_TYPE_IDX_PLG_NAME" unique="true">
<field ref="NAME"/>
<field ref="PLUGIN"/>
</index>
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index fe8720c..31a7b40 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2920,6 +2920,15 @@
</schema-directSQL>
</schemaSpec>
+ <schemaSpec version="2.86">
+ <schema-directSQL>
+ <statement desc="Make RHQ_RES_TYPE_IDX_PLG_NAME index unique">
+ DROP INDEX RHQ_RES_TYPE_IDX_PLG_NAME ;
+ CREATE UNIQUE INDEX RHQ_RES_TYPE_IDX_PLG_NAME ON RHQ_RESOURCE_TYPE (name, plugin)
+ </statement>
+ </schema-directSQL>
+ </schemaSpec>
+
</dbupgrade>
</target>
</project>
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
index d27a7e5..8f2b158 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/ResourceCriteria.java
@@ -30,6 +30,7 @@ import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceCategory;
+import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.domain.util.PageOrdering;
import java.util.Arrays;
@@ -56,6 +57,7 @@ public class ResourceCriteria extends Criteria {
private String filterPluginName; // needs overrides
private Integer filterParentResourceId; // needs overrides
private String filterParentResourceName; // needs overrides
+ private Integer filterParentResourceTypeId; // needs overrides
private String filterAgentName; // needs overrides
private AvailabilityType filterCurrentAvailability; // needs overrides
private Long filterStartItime;
@@ -104,6 +106,7 @@ public class ResourceCriteria extends Criteria {
filterOverrides.put("pluginName", "resourceType.plugin like ?");
filterOverrides.put("parentResourceId", "parentResource.id = ?");
filterOverrides.put("parentResourceName", "parentResource.name like ?");
+ filterOverrides.put("parentResourceTypeId", "parentResource.resourceType.id = ?");
filterOverrides.put("agentName", "agent.name like ?");
filterOverrides.put("currentAvailability", "currentAvailability.availabilityType = ?");
filterOverrides.put("startItime", "itime >= ?");
@@ -171,6 +174,10 @@ public class ResourceCriteria extends Criteria {
this.filterParentResourceName = filterParentResourceName;
}
+ public void addFilterParentResourceTypeId(int filterParentResourceTypeId) {
+ this.filterParentResourceTypeId = filterParentResourceTypeId;
+ }
+
public void addFilterAgentName(String filterAgentName) {
this.filterAgentName = filterAgentName;
}
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index 510a729..150266f 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -356,7 +356,7 @@ import org.rhq.core.domain.util.Summary;
@NamedQuery(name = Resource.QUERY_FIND_BY_PARENT_AND_KEY, hints = { @QueryHint(name = "cacheable", value = "true") }, query = "" //
+ "SELECT r " //
+ " FROM Resource AS r " //
- + " WHERE (:parent = r.parentResource OR :parent IS NULL) " //
+ + " WHERE (:parent = r.parentResource OR (:parent IS NULL AND r.parentResource IS NULL)) " //
+ " AND r.resourceKey = :key " //
+ " AND r.resourceType.plugin = :plugin " //
+ " AND r.resourceType.name = :typeName"),
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java
index 9a779ba..06cbc47 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/ResourceType.java
@@ -22,10 +22,6 @@
*/
package org.rhq.core.domain.resource;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
@@ -87,8 +83,7 @@ import org.rhq.core.domain.util.Summary;
query = "SELECT rt FROM ResourceType AS rt WHERE LOWER(rt.name) = LOWER(:name)"),
@NamedQuery(name = ResourceType.QUERY_FIND_BY_PLUGIN, query = "SELECT rt FROM ResourceType AS rt WHERE rt.plugin = :plugin"),
@NamedQuery(name = ResourceType.QUERY_FIND_BY_NAME_AND_PLUGIN, // TODO: QUERY: names are case-sensitive
- hints = { @QueryHint(name = "org.hibernate.able", value = "true"),
- @QueryHint(name = "org.hibernate.Region", value = "metadata") }, query = "SELECT rt FROM ResourceType AS rt WHERE LOWER(rt.name) = LOWER(:name) AND rt.plugin = :plugin"),
+ query = "SELECT rt FROM ResourceType AS rt WHERE LOWER(rt.name) = LOWER(:name) AND rt.plugin = :plugin"),
@NamedQuery(name = ResourceType.QUERY_FIND_ALL, query = "SELECT rt FROM ResourceType AS rt"),
@NamedQuery(name = ResourceType.QUERY_FIND_BY_PARENT_AND_NAME, // TODO: QUERY: Not looking up by the full key, get rid of this query
query = "SELECT rt FROM ResourceType AS rt WHERE :parent MEMBER OF rt.parentResourceTypes AND rt.name = :name"),
@@ -319,14 +314,15 @@ public class ResourceType implements Serializable, Comparable<ResourceType> {
@Column(name = "MTIME")
private Long mtime;
- @ManyToMany(mappedBy = "parentResourceTypes", cascade = CascadeType.ALL)
+ @ManyToMany(mappedBy = "parentResourceTypes", cascade = { CascadeType.REFRESH, CascadeType.REMOVE })
@OrderBy
//@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
private Set<ResourceType> childResourceTypes;
@ManyToMany(cascade = CascadeType.PERSIST)
// persist so self-injecting plugins work
- @JoinTable(name = "RHQ_RESOURCE_TYPE_PARENTS", joinColumns = { @JoinColumn(name = "RESOURCE_TYPE_ID") }, inverseJoinColumns = { @JoinColumn(name = "PARENT_RESOURCE_TYPE_ID") })
+ @JoinTable(name = "RHQ_RESOURCE_TYPE_PARENTS", joinColumns = { @JoinColumn(name = "RESOURCE_TYPE_ID") },
+ inverseJoinColumns = { @JoinColumn(name = "PARENT_RESOURCE_TYPE_ID") })
@OrderBy
//@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
private Set<ResourceType> parentResourceTypes;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
index 4e2ce11..c2c3ccd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentManagerBean.java
@@ -142,8 +142,8 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
// For performance tracking
long start = System.currentTimeMillis();
- log.info("Merging packages for resource ID [" + resourceId + "]. Package count ["
- + report.getDeployedPackages().size() + "]");
+ log.debug("Merging [" + report.getDeployedPackages().size() + "] packages for Resource with id ["
+ + resourceId + "]...");
// Load the resource and its installed packages
Resource resource = entityManager.find(Resource.class, resourceId);
@@ -322,7 +322,7 @@ public class ContentManagerBean implements ContentManagerLocal, ContentManagerRe
}
}
- log.info("Finished merging " + report.getDeployedPackages().size() + " packages in "
+ log.debug("Finished merging [" + report.getDeployedPackages().size() + "] packages in "
+ (System.currentTimeMillis() - start) + "ms");
}
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 9c90dcb..cded63b 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
@@ -143,7 +143,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
mergeResource(root, Resource.ROOT, knownAgent);
}
- // do NOT delete this flush/clear - it greatly improves performance
+ // Do NOT delete this flush+clear - it greatly improves performance.
entityManager.flush();
entityManager.clear();
@@ -558,14 +558,19 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
* or if the agent didn't know about it to begin with (id was 0).
*/
ResourceType resourceType = resource.getResourceType();
- existingResource = resourceManager.getResourceByParentAndKey(subjectManager.getOverlord(), resource
- .getParentResource(), resource.getResourceKey(), resourceType.getPlugin(), resourceType.getName());
+ Resource parent = resource;
+ while (parent != null && existingResource == null) {
+ parent = parent.getParentResource();
+ existingResource = resourceManager.getResourceByParentAndKey(subjectManager.getOverlord(), parent,
+ resource.getResourceKey(), resourceType.getPlugin(), resourceType.getName());
+ }
+
if (existingResource != null) {
- // we found it, reset the id to what it should be
+ // We found it - reset the id to what it should be.
resource.setId(existingResource.getId());
log.debug(idLogMsg + ": Found resource already in inventory with specified business key");
} else {
- log.debug(idLogMsg + ": Unable to find the agent-reported resource by id and business key.");
+ log.debug(idLogMsg + ": Unable to find the agent-reported resource by id or business key.");
if (resource.getId() != 0) {
// existingResource is still null at this point, the resource does not exist in inventory.
@@ -588,6 +593,34 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
private void updatePreviouslyInventoriedResource(Resource resource, Resource existingResource,
Resource parentResource) throws InvalidInventoryReportException {
assert (parentResource == null) || (parentResource.getId() != 0);
+
+ ResourceType existingResourceParentType = (existingResource.getParentResource() != null)
+ ? existingResource.getParentResource().getResourceType() : null;
+ ResourceType resourceParentType = (resource.getParentResource() != null)
+ ? resource.getParentResource().getResourceType() : null;
+ Set<ResourceType> validParentTypes = existingResource.getResourceType().getParentResourceTypes();
+ if (validParentTypes != null && !validParentTypes.isEmpty() &&
+ !validParentTypes.contains(existingResourceParentType)) {
+ // The existing Resource has an invalid parent ResourceType. This may be because its ResourceType was moved
+ // to a new parent ResourceType, but its new parent was not yet discovered at the time of the type move. See
+ // if the Resource reported by the Agent has a valid parent type, and, if so, update the existing Resource's
+ // parent to that type.
+
+ if (validParentTypes.contains(resourceParentType)) {
+ if (existingResource.getParentResource() != null) {
+ existingResource.getParentResource().removeChildResource(existingResource);
+ }
+ if (resource.getParentResource() != null) {
+ parentResource = getExistingResource(resource.getParentResource());
+ parentResource.addChildResource(existingResource);
+ }
+ existingResource.setParentResource(resource.getParentResource());
+ } else {
+ log.debug("Existing Resource " + existingResource + " has invalid parent type ("
+ + existingResourceParentType + ") and so does plugin-reported Resource " + resource + " ("
+ + resourceParentType + ") - valid parent types are [" + validParentTypes + "].");
+ }
+ }
// The below block is for Resources that were created via the RHQ GUI, whose descriptions will be null.
if (existingResource.getDescription() == null && resource.getDescription() != null) {
@@ -620,8 +653,14 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
private boolean initResourceTypes(Resource resource) {
ResourceType resourceType;
- resourceType = this.resourceTypeManager.getResourceTypeByNameAndPlugin(subjectManager.getOverlord(), resource
- .getResourceType().getName(), resource.getResourceType().getPlugin());
+ try {
+ resourceType = this.resourceTypeManager.getResourceTypeByNameAndPlugin(subjectManager.getOverlord(), resource
+ .getResourceType().getName(), resource.getResourceType().getPlugin());
+ } catch (RuntimeException e) {
+ log.error("Failed to lookup Resource type [" + resource.getResourceType() + "] for reported Resource ["
+ + resource + "] - this should not have happened.");
+ return false;
+ }
if (resourceType == null) {
log.error("Reported resource [" + resource + "] has an unknown type [" + resource.getResourceType()
+ "]. The Agent most likely has a plugin named '" + resource.getResourceType().getPlugin()
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index ddb5a54..fa31afe 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -83,6 +83,7 @@ import org.rhq.enterprise.server.event.EventManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
import org.rhq.enterprise.server.resource.ResourceManagerLocal;
+import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal;
/**
* This class manages the metadata for resources. Plugins are registered against this bean so that their metadata can be
@@ -121,6 +122,9 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
private ResourceManagerLocal resourceManager;
@EJB
+ private ResourceTypeManagerLocal resourceTypeManager;
+
+ @EJB
private EventManagerLocal eventManager;
@EJB
@@ -336,7 +340,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
if (newOrUpdated || forceUpdate) {
// Only merge the plugin's ResourceTypes into the DB if the plugin is new or updated or we were forced to
- updateTypes(plugin.getName(), rootResourceTypes);
+ updateTypes(rootResourceTypes);
typesUpdated = true;
}
}
@@ -385,7 +389,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
* This will assume the MD5 in the database is already correct, so this
* method will not take the time to calculate the MD5 again.
*
- * @param name the name of the plugin whose content is being updated
+ * @param id the id of the plugin whose content is being updated
* @param file the plugin file whose content will be streamed to the database
*
* @throws Exception
@@ -398,7 +402,6 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
FileInputStream fis = new FileInputStream(file);
try {
-
conn = this.dataSource.getConnection();
ps = conn.prepareStatement("UPDATE " + Plugin.TABLE_NAME + " SET CONTENT = ? WHERE ID = ?");
ps.setBinaryStream(1, new BufferedInputStream(fis), (int) file.length());
@@ -418,10 +421,16 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
return;
}
- private void updateTypes(String pluginName, Set<ResourceType> rootResourceTypes) throws Exception {
+ private void updateTypes(Set<ResourceType> rootResourceTypes) throws Exception {
+ // Iterate the resource types breadth-first, so all platform types get added before any server types or platform
+ // service types. This way, we'll be able to set all of the platform types as parents of the server types and
+ // platform service types.
for (ResourceType rootResourceType : rootResourceTypes) {
updateType(rootResourceType);
}
+ for (ResourceType rootResourceType : rootResourceTypes) {
+ updateTypes(rootResourceType.getChildResourceTypes());
+ }
}
@SuppressWarnings("unchecked")
@@ -493,6 +502,7 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
}
}
+
private void removeFromParents(ResourceType typeToBeRemoved) {
// Wrap in new HashSet to avoid ConcurrentModificationExceptions.
Set<ResourceType> parents = new HashSet<ResourceType>(typeToBeRemoved.getParentResourceTypes());
@@ -503,187 +513,209 @@ public class ResourceMetadataManagerBean implements ResourceMetadataManagerLocal
@SuppressWarnings("unchecked")
private void updateType(ResourceType resourceType) {
+ entityManager.flush();
+
+ // see if there is already an existing type that we need to update
+ if (log.isDebugEnabled()) {
+ log.debug("Updating resource type [" + resourceType.getName() + "] from plugin ["
+ + resourceType.getPlugin() + "]...");
+ }
+
+ ResourceType existingType;
try {
- entityManager.flush();
+ existingType = resourceTypeManager.getResourceTypeByNameAndPlugin(resourceType.getName(),
+ resourceType.getPlugin());
+ } catch (NonUniqueResultException nure) {
+ log.debug("Found more than one existing ResourceType for " + resourceType);
+ // TODO: Delete the redundant ResourceTypes to get the DB into a valid state.
+ throw new IllegalStateException(nure);
+ }
- // see if there is already an existing type that we need to update
- if (log.isDebugEnabled()) {
- log.debug("Updating resource type [" + resourceType.getName() + "] from plugin ["
- + resourceType.getPlugin() + "]...");
- }
+ // Connect the parent types if they exist, which they should.
+ // We'll do this no matter if the resourceType exists or not - but we use existing vs. resourceType appropriately
+ // This is to support the case when an existing type gets a new parent resource type in <runs-inside>
+ updateParentResourceTypes(resourceType, existingType);
- Query q = entityManager.createNamedQuery(ResourceType.QUERY_FIND_BY_NAME_AND_PLUGIN);
- q.setParameter("name", resourceType.getName()).setParameter("plugin", resourceType.getPlugin());
- List<ResourceType> findTypeByNameAndPlugin = q.getResultList();
+ if (existingType == null) {
+ persistNewType(resourceType);
+ } else {
+ mergeExistingType(resourceType, existingType);
+ }
+ }
- ResourceType existingType = null;
- if (findTypeByNameAndPlugin.size() == 1) {
- existingType = findTypeByNameAndPlugin.get(0);
- }
+ private void mergeExistingType(ResourceType resourceType, ResourceType existingType) {
+ log.info("Merging type [" + resourceType + "] + into existing type [" + existingType + "]...");
- // Connect the parent types if they exist which they should
- // We'll do this no matter if the resourceType exists or not - but we use existing vs. resourceType appropriately
- // This is to support the case when an existing type gets a new parent resource type in <runs-inside>
- updateParentResourceTypes(resourceType, existingType);
+ // Make sure to first add/update any subcategories on the parent before trying to update children.
+ // Otherwise, the children may try to save themselves with subcategories which wouldn't exist yet.
+ updateChildSubCategories(resourceType, existingType);
- if (findTypeByNameAndPlugin.size() == 0) {
- throw new NoResultException(); // falls into the catch block down below. TODO refactor this stuff
- }
+ entityManager.flush();
- // XXX: I do not think the code in this if-block is valid - see RHQ-1086 - I think it should be removed
- // see what we have. Default is 0 or 1. When hot deploying and moving a RT 2 can happen
- if (findTypeByNameAndPlugin.size() > 1) {
- // No Unique result. List what we have and bail out if more than 2 results
- if (log.isDebugEnabled()) {
- for (ResourceType rType : findTypeByNameAndPlugin) {
- log.debug("updateType: found: " + rType);
- }
- }
+ // even though we've updated our child types to use new subcategory references, its still
+ // not safe to delete the old sub categories yet, because we haven't yet deleted all of the old
+ // child types which may still be referencing these sub categories
- if (findTypeByNameAndPlugin.size() != 2) {
- throw new IllegalArgumentException("We only expected two results here, but got "
- + findTypeByNameAndPlugin.size());
- }
+ // Update the rest of these related resources
+ updatePluginConfiguration(resourceType, existingType);
+ entityManager.flush();
- // two results - see if one is us, then the other must be the existing type that we are looking for
- Iterator<ResourceType> iter = findTypeByNameAndPlugin.iterator();
- ResourceType rt1 = iter.next();
- ResourceType rt2 = iter.next();
- if (rt1.equals(resourceType)) {
- existingType = rt2;
- } else if (rt2.equals(resourceType)) {
- existingType = rt1;
- } else {
- throw new IllegalArgumentException("Existing ResourceType not found for " + resourceType);
- }
- }
+ updateResourceConfiguration(resourceType, existingType);
- // Type exists now, (if it didn't exist we'd fall through to the NSRE catch block and cascade persist everything
+ updateMeasurementDefinitions(resourceType, existingType);
- // first add/update any subcategories on the parent before trying to update children
- // if we didn't do this the children may try to save themselves with subcategories which
- // wouldn't exist yet
- updateChildSubCategories(resourceType, existingType);
+ updateContentDefinitions(resourceType, existingType);
- // update children next
- for (ResourceType childType : resourceType.getChildResourceTypes()) {
- updateType(childType);
- }
- entityManager.flush();
-
- // even though we've updated our child types to use new subcategory references, its still
- // not safe to delete the old sub categories yet, because we haven't yet deleted all of the old
- // child types which may still be referencing these sub categories
-
- // Update the rest of these related resources
- updatePluginConfiguration(resourceType, existingType);
- entityManager.flush();
-
- updateResourceConfiguration(resourceType, existingType);
-
- updateMeasurementDefinitions(resourceType, existingType);
-
- updateContentDefinitions(resourceType, existingType);
-
- updateOperationDefinitions(resourceType, existingType);
-
- updateProcessScans(resourceType, existingType);
-
- updateEventDefinitions(resourceType, existingType);
-
- // Update the type itself
- existingType.setDescription(resourceType.getDescription());
- existingType.setCreateDeletePolicy(resourceType.getCreateDeletePolicy());
- existingType.setCreationDataType(resourceType.getCreationDataType());
- existingType.setSingleton(resourceType.isSingleton());
- existingType.setSupportsManualAdd(resourceType.isSupportsManualAdd());
-
- /*
- * We need to be careful updating the subcategory. If it is not null and the same ("equals")
- * to the new one, we need to copy over the attributes, as the existing will be kept and
- * the new one not persisted. Otherwise, we can just use the new one.
- */
- ResourceSubCategory oldSubCat = existingType.getSubCategory();
- ResourceSubCategory newSubCat = resourceType.getSubCategory();
- if (oldSubCat != null && oldSubCat.equals(newSubCat)) {
- // Subcategory hasn't changed - nothing to do (call to addAndUpdateChildSubCategories()
- // above already took care of any modifications to the ResourceSubCategorys themselves).
- } else if (newSubCat == null) {
- if (oldSubCat != null) {
- log.debug("Metadata update: Subcategory of ResourceType [" + resourceType.getName()
- + "] changed from " + oldSubCat + " to " + newSubCat);
- existingType.setSubCategory(null);
- }
- } else {
- // New subcategory is non-null and not equal to the old subcategory.
- ResourceSubCategory existingSubCat = SubCategoriesMetadataParser.findSubCategoryOnResourceTypeAncestor(
- existingType, newSubCat.getName());
- if (existingSubCat == null)
- throw new IllegalStateException("Resource type [" + resourceType.getName() + "] in plugin ["
- + resourceType.getPlugin() + "] has a subcategory (" + newSubCat.getName()
- + ") which was not defined as a child subcategory of one of its ancestor resource types.");
- log.debug("Metadata update: Subcategory of ResourceType [" + resourceType.getName() + "] changed from "
- + oldSubCat + " to " + existingSubCat);
- existingType.setSubCategory(existingSubCat);
- }
+ updateOperationDefinitions(resourceType, existingType);
- existingType = entityManager.merge(existingType);
- entityManager.flush();
- } catch (NoResultException nre) {
- /*
- * If the type didn't exist then we'll persist here which will cascade through
- * all child types as well as plugin and resource configs and their delegate types and
- * metric and operation definitions and their dependent types
- *
- * But first do some validity checking
- */
-
- // Check if the subcategories as children of resourceType are valid
- // Those are the subtacegories we offer for children of us
- checkForValidSubcategories(resourceType.getChildSubCategories());
-
- // Check if we have a subcategory attached that needs to be linked to one of the parents
- // This is a subcategory of our parent where we are supposed to be grouped in.
- linkSubCategoryToParents(resourceType);
-
- if (log.isDebugEnabled())
- log.debug("Persisting new ResourceType: " + resourceType);
- entityManager.persist(resourceType);
- } catch (NonUniqueResultException nure) {
- log.debug("Found more than one existing ResourceType for " + resourceType);
- throw new IllegalStateException(nure);
+ updateProcessScans(resourceType, existingType);
+
+ updateEventDefinitions(resourceType, existingType);
+
+ // Update the type itself
+ existingType.setDescription(resourceType.getDescription());
+ existingType.setCreateDeletePolicy(resourceType.getCreateDeletePolicy());
+ existingType.setCreationDataType(resourceType.getCreationDataType());
+ existingType.setSingleton(resourceType.isSingleton());
+ existingType.setSupportsManualAdd(resourceType.isSupportsManualAdd());
+
+ // We need to be careful updating the subcategory. If it is not null and the same ("equals")
+ // to the new one, we need to copy over the attributes, as the existing will be kept and
+ // the new one not persisted. Otherwise, we can just use the new one.
+ ResourceSubCategory oldSubCat = existingType.getSubCategory();
+ ResourceSubCategory newSubCat = resourceType.getSubCategory();
+ if (oldSubCat != null && oldSubCat.equals(newSubCat)) {
+ // Subcategory hasn't changed - nothing to do (call to addAndUpdateChildSubCategories()
+ // above already took care of any modifications to the ResourceSubCategories themselves).
+ } else if (newSubCat == null) {
+ if (oldSubCat != null) {
+ log.debug("Metadata update: Subcategory of ResourceType [" + resourceType.getName()
+ + "] changed from " + oldSubCat + " to " + newSubCat);
+ existingType.setSubCategory(null);
+ }
+ } else {
+ // New subcategory is non-null and not equal to the old subcategory.
+ ResourceSubCategory existingSubCat = SubCategoriesMetadataParser.findSubCategoryOnResourceTypeAncestor(
+ existingType, newSubCat.getName());
+ if (existingSubCat == null)
+ throw new IllegalStateException("Resource type [" + resourceType.getName() + "] in plugin ["
+ + resourceType.getPlugin() + "] has a subcategory (" + newSubCat.getName()
+ + ") which was not defined as a child subcategory of one of its ancestor resource types.");
+ log.debug("Metadata update: Subcategory of ResourceType [" + resourceType.getName() + "] changed from "
+ + oldSubCat + " to " + existingSubCat);
+ existingType.setSubCategory(existingSubCat);
}
+
+ existingType = entityManager.merge(existingType);
+ entityManager.flush();
}
- private void linkSubCategoryToParents(ResourceType resourceType) {
+ private void persistNewType(ResourceType resourceType) {
+ log.info("Persisting new type [" + resourceType + "]...");
+ // If the type didn't exist then we'll persist here which will cascade through
+ // all child types as well as plugin and resource configs and their delegate types and
+ // metric and operation definitions and their dependent types,
+ // but first do some validity checking.
+
+ // Check if the subcategories as children of resourceType are valid
+ // Those are the subcategories we offer for children of us
+ checkForValidSubcategories(resourceType.getChildSubCategories());
- if (resourceType.getSubCategory() == null)
+ // Check if we have a subcategory attached that needs to be linked to one of the parents
+ // This is a subcategory of our parent where we are supposed to be grouped in.
+ linkSubCategoryToParents(resourceType);
+
+ entityManager.persist(resourceType);
+ entityManager.flush();
+ }
+
+ private void linkSubCategoryToParents(ResourceType resourceType) {
+ if (resourceType.getSubCategory() == null) {
return; // Nothing to do
+ }
ResourceSubCategory mySubCategory = resourceType.getSubCategory();
ResourceSubCategory existingCat = SubCategoriesMetadataParser.findSubCategoryOnResourceTypeAncestor(
resourceType, mySubCategory.getName());
- if (existingCat != null)
+ if (existingCat != null) {
resourceType.setSubCategory(existingCat);
- else
+ } else {
throw new IllegalStateException("Subcategory " + mySubCategory.getName() + " defined on resource type "
+ resourceType.getName() + " in plugin " + resourceType.getPlugin()
+ " is not defined in a parent type");
-
+ }
}
- private void updateParentResourceTypes(ResourceType resourceType, ResourceType existingType) {
- Set<ResourceType> types = new HashSet<ResourceType>(resourceType.getParentResourceTypes());
- resourceType.setParentResourceTypes(new HashSet<ResourceType>());
- for (ResourceType resourceTypeParent : types) {
+ private void updateParentResourceTypes(ResourceType newType, ResourceType existingType) {
+ Set<ResourceType> newParentTypes = newType.getParentResourceTypes();
+ log.info("Setting parent types on type: " + ((existingType != null) ? existingType : newType )
+ + " to [" + newParentTypes + "]...");
+ newType.setParentResourceTypes(new HashSet<ResourceType>());
+ Set<ResourceType> originalExistingParentTypes = new HashSet<ResourceType>();
+ if (existingType != null) {
+ originalExistingParentTypes.addAll(existingType.getParentResourceTypes());
+ }
+ for (ResourceType newParentType : newParentTypes) {
try {
- ResourceType realParentType = (ResourceType) entityManager.createNamedQuery(
- ResourceType.QUERY_FIND_BY_NAME_AND_PLUGIN).setParameter("name", resourceTypeParent.getName())
- .setParameter("plugin", resourceTypeParent.getPlugin()).getSingleResult();
- realParentType.addChildResourceType(existingType != null ? existingType : resourceType);
+ boolean parentNew = existingType == null || !originalExistingParentTypes.remove(newParentType) ;
+ if (parentNew) {
+ ResourceType realParentType = (ResourceType) entityManager.createNamedQuery(
+ ResourceType.QUERY_FIND_BY_NAME_AND_PLUGIN).setParameter("name", newParentType.getName())
+ .setParameter("plugin", newParentType.getPlugin()).getSingleResult();
+ ResourceType type = (existingType != null) ? existingType : newType;
+ log.info("Adding type [" + type + "] as child of type [" + realParentType + "]...");
+ realParentType.addChildResourceType(type);
+ }
} catch (NoResultException nre) {
- throw new RuntimeException("Couldn't persist type [" + resourceType
- + "] because parent wasn't already persisted [" + resourceTypeParent + "]");
+ throw new RuntimeException("Couldn't persist type [" + newType
+ + "] because parent [" + newParentType + "] wasn't already persisted.");
+ }
+ }
+
+ for (ResourceType obsoleteParentType : originalExistingParentTypes) {
+ log.info("Removing type [" + existingType + "] from parent type [" + obsoleteParentType + "]...");
+ obsoleteParentType.removeChildResourceType(existingType);
+ moveResourcesToNewParent(existingType, obsoleteParentType, newParentTypes);
+ }
+
+ entityManager.flush();
+ }
+
+ private void moveResourcesToNewParent(ResourceType existingType, ResourceType obsoleteParentType, Set<ResourceType> newParentTypes) {
+ Subject overlord = subjectManager.getOverlord();
+ ResourceCriteria criteria = new ResourceCriteria();
+ criteria.addFilterResourceTypeId(existingType.getId());
+ criteria.addFilterParentResourceTypeId(obsoleteParentType.getId());
+ List<Resource> resources = resourceManager.findResourcesByCriteria(overlord, criteria);
+ for (Resource resource : resources) {
+ Resource newParent = null;
+ newParentTypes:
+ for (ResourceType newParentType : newParentTypes) {
+ Resource ancestorResource = resource.getParentResource();
+ while (ancestorResource != null) {
+ if (ancestorResource.getResourceType().equals(newParentType)) {
+ // We found an ancestor to be the new parent of our orphaned Resource.
+ newParent = ancestorResource;
+ break newParentTypes;
+ }
+ ancestorResource = ancestorResource.getParentResource();
+ }
+ for (Resource childResource : resource.getChildResources()) {
+ if (childResource.getResourceType().equals(newParentType)) {
+ // We found a child to be the new parent of our orphaned Resource.
+ newParent = childResource;
+ break newParentTypes;
+ }
+ }
+ }
+ if (newParent != null) {
+ if (resource.getParentResource() != null) {
+ resource.getParentResource().removeChildResource(resource);
+ }
+ newParent.addChildResource(resource);
+ } else {
+ log.warn("We were unable to move " + resource + " from invalid parent " + resource.getParentResource()
+ + " to a new valid parent with one of the following types: " + newParentTypes);
}
}
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java
index 646c661..bda11e9 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/metadata/test/UpdateResourceTypeSubsystemTest.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2010 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,6 @@
*/
package org.rhq.enterprise.server.resource.metadata.test;
-import java.util.Iterator;
import java.util.Set;
import javax.persistence.EntityManager;
@@ -31,7 +30,7 @@ import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.resource.ResourceType;
/**
- * Note, plugins are registered in new transactions. for tests, this means
+ * Note, plugins are registered in new transactions. For tests, this means
* you can't do everything in a trans and roll back at the end. You must clean up manually.
*/
public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
@@ -44,7 +43,7 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
/**
* See if deletion of a resource type just works
*
- * @throws Exception
+ * @throws Exception on error
*/
@Test
public void testResourceTypeDeletion() throws Exception {
@@ -113,16 +112,18 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
try {
cleanupTest();
} catch (Exception e) {
- System.out.println("CANNNOT CLEAN UP TEST: " + this.getClass().getSimpleName()
+ System.out.println("CANNOT CLEAN UP TEST: " + this.getClass().getSimpleName()
+ ".testResourceTypeDeletion");
}
}
}
- // TODO: Fix ResourceType move in the code and then re-enable this test.
- //@Test
- public void testMoveResoureType() throws Exception {
- System.out.println("testUpdatePlugin2 --- start");
+ @Test
+ /**
+ * Tests moving a resource type to a new parent resource type.
+ */
+ public void testMoveResourceType() throws Exception {
+ System.out.println("testMoveResourceType --- start");
try {
registerPlugin("update2-v1_0.xml");
ResourceType platform1 = getResourceType("myPlatform");
@@ -149,7 +150,7 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
int definitionId = defThree.getId(); // get the id of the definition "Three" and save it for later use
getTransactionManager().rollback();
- System.out.println("testUpdatePlugin2 -- done with the first plugin version");
+ System.out.println("testMoveResourceType -- done with the first plugin version");
/*
* The nested service got pulled out and put under platform
@@ -168,9 +169,7 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
// two children in v2
Set<ResourceType> platformChildren2 = platform2.getChildResourceTypes();
assert platformChildren2.size() == 2 : "Expected 2 direct child services of platform in v2";
- Iterator<ResourceType> iter = platformChildren2.iterator();
- while (iter.hasNext()) {
- ResourceType type = iter.next();
+ for (ResourceType type : platformChildren2) {
String typeName = type.getName();
assert type.getMetricDefinitions().size() == 1 : "Expected one definition for " + typeName + " in v2";
if (typeName.equals("nestedOne")) // The moved one
@@ -178,23 +177,21 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
Set<MeasurementDefinition> defs3 = type.getMetricDefinitions();
MeasurementDefinition three = defs3.iterator().next();
assert three.getDisplayName().equals("Three") : "Expected the nestedOne to have a metric withDisplayName Three in v2, but it was "
- + three.getDisplayName();
+ + three.getDisplayName();
assert three.getDisplayType() == DisplayType.SUMMARY : "Expected three to be SUMMARY in v2";
/*
* TODO check here if the Definition is the one from above which got moved. this should be the case.
- * Else we would loose all measurment schedules (and disociate them from measurement data. But the
- * later is a different story. We probably should cascade that anyway.
+ * Else we would loose all measurement schedules (and disassociate them from measurement data. But the
+ * latter is a different story. We probably should cascade that anyway.
*/
- System.out.println("Expected the id of 'Three' to be " + definitionId + " but it was "
- + three.getId() + " in v2");
assert three.getId() == definitionId : "Expected the id of 'Three' to be " + definitionId
- + " but it was " + three.getId() + " in v2";
+ + " but it was " + three.getId() + " in v2";
} else if (typeName.equals("service1")) {
// check that the nested service is gone
Set<ResourceType> childrenOfService = type.getChildResourceTypes();
assert childrenOfService.size() == 0 : "No children of 'service1' expected in v2, but found: "
- + childrenOfService.size();
+ + childrenOfService.size();
} else {
assert true == false : "We found an unknown type with name " + typeName;
}
@@ -209,23 +206,23 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
cleanupTest();
} catch (Exception e) {
System.out
- .println("CANNNOT CLEAN UP TEST: " + this.getClass().getSimpleName() + ".testMoveResoureType");
+ .println("CANNOT CLEAN UP TEST: " + this.getClass().getSimpleName() + ".testMoveResourceType");
}
}
- System.out.println("testUpdatePlugin2 --- end");
+ System.out.println("testMoveResourceType --- end");
}
@Test
public void testDuplicateResourceType() throws Exception {
System.out.println("= testDuplicateResourceType");
try {
- System.out.println(" A stack trace coming out of this is expected");
+ System.out.println("NOTE: A stack trace coming out of this is expected.");
registerPlugin("duplicateResourceType.xml");
getResourceType("ops");
assert false : "We should not have hit this line";
} catch (Exception e) {
- ; // We expect an exception to come out of the ResourceMetadataManager
+ // ignore - We expect an exception to come out of the ResourceMetadataManager
} finally {
if (Status.STATUS_NO_TRANSACTION != getTransactionManager().getStatus()) {
getTransactionManager().rollback();
@@ -233,7 +230,7 @@ public class UpdateResourceTypeSubsystemTest extends UpdateSubsytemTestBase {
try {
cleanupTest();
} catch (Exception e) {
- System.out.println("CANNNOT CLEAN UP TEST: " + this.getClass().getSimpleName()
+ System.out.println("CANNOT CLEAN UP TEST: " + this.getClass().getSimpleName()
+ ".testDuplicateResourceType");
}
}
diff --git a/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml b/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
index 559e38d..143984d 100644
--- a/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
+++ b/modules/jopr/tools/jbas5-plugin-descriptor-gen/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>3.0.0.B04</version>
+ <version>3.0.0-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
@@ -24,7 +24,7 @@
<developerConnection>scm:git:ssh://git.fedorahosted.org/git/rhq.git/modules/jopr/tools/jbas5-p...</developerConnection>
</scm>
- <properties>
+ <properties>
<jbossas.version>6.0.0.M1</jbossas.version>
</properties>
@@ -58,15 +58,30 @@
<dependency>
<groupId>${rhq.groupId}</groupId>
<artifactId>rhq-core-domain</artifactId>
- <version>${rhq.version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${rhq.groupId}</groupId>
<artifactId>rhq-core-client-api</artifactId>
- <version>${rhq.version}</version>
+ <version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate-annotations</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagemen
+t section. -->
+ <scope>provided</scope> <!-- by JBossAS -->
+ </dependency>
+
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
diff --git a/modules/jopr/tools/jbas5-plugin-descriptor-gen/src/main/java/org/jboss/jopr/tool/jbas5/PluginDescriptorGenerator.java b/modules/jopr/tools/jbas5-plugin-descriptor-gen/src/main/java/org/jboss/jopr/tool/jbas5/PluginDescriptorGenerator.java
index a4df7ba..7551e42 100644
--- a/modules/jopr/tools/jbas5-plugin-descriptor-gen/src/main/java/org/jboss/jopr/tool/jbas5/PluginDescriptorGenerator.java
+++ b/modules/jopr/tools/jbas5-plugin-descriptor-gen/src/main/java/org/jboss/jopr/tool/jbas5/PluginDescriptorGenerator.java
@@ -105,8 +105,8 @@ public class PluginDescriptorGenerator
public static void main(String[] args) throws Exception
{
String namingURL = "jnp://127.0.0.1:1099/";
- String principal = null;
- String credentials = null;
+ String principal = "admin";
+ String credentials = "admin";
ProfileServiceConnectionProvider connectionProvider =
new RemoteProfileServiceConnectionProvider(namingURL, principal, credentials);
ProfileServiceConnection connection = connectionProvider.connect();
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/AbstractManagedComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/AbstractManagedComponent.java
index b436302..bde5b37 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/AbstractManagedComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/AbstractManagedComponent.java
@@ -47,7 +47,7 @@ public abstract class AbstractManagedComponent implements ProfileServiceComponen
return;
}
- protected ResourceContext<ProfileServiceComponent> getResourceContext()
+ public ResourceContext<ProfileServiceComponent> getResourceContext()
{
return this.resourceContext;
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
index 739d833..e4a0ec9 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerComponent.java
@@ -102,6 +102,7 @@ import org.rhq.plugins.jbossas5.connection.RemoteProfileServiceConnectionProvide
import org.rhq.plugins.jbossas5.deploy.Deployer;
import org.rhq.plugins.jbossas5.deploy.LocalDeployer;
import org.rhq.plugins.jbossas5.deploy.RemoteDeployer;
+import org.rhq.plugins.jbossas5.helper.CreateChildResourceFacetDelegate;
import org.rhq.plugins.jbossas5.helper.JBossAS5ConnectionTypeDescriptor;
import org.rhq.plugins.jbossas5.helper.JmxConnectionHelper;
import org.rhq.plugins.jbossas5.helper.InPluginControlActionFacade;
@@ -122,8 +123,6 @@ import com.jboss.jbossnetwork.product.jbpm.handlers.ControlActionFacade;
public class ApplicationServerComponent implements ResourceComponent, ProfileServiceComponent,
CreateChildResourceFacet, MeasurementFacet, ConfigurationFacet, ProgressListener, ContentFacet, OperationFacet {
- private static final String MANAGED_PROPERTY_GROUP = "managedPropertyGroup";
-
private static final Pattern METRIC_NAME_PATTERN = Pattern.compile("(.*)\\|(.*)\\|(.*)\\|(.*)");
public static final Map<String, String> NEW_PROPERTY_NAMES = new HashMap<String, String>();
@@ -142,6 +141,7 @@ public class ApplicationServerComponent implements ResourceComponent, ProfileSer
private ApplicationServerContentFacetDelegate contentFacetDelegate;
private ApplicationServerOperationsDelegate operationDelegate;
private LogFileEventResourceComponentHelper logFileEventDelegate;
+ private CreateChildResourceFacetDelegate createChildResourceDelegate;
private AvailabilityCollectorRunnable availCollector;
@@ -205,6 +205,8 @@ public class ApplicationServerComponent implements ResourceComponent, ProfileSer
this.contentFacetDelegate = new ApplicationServerContentFacetDelegate(workflowManager, configPath,
resourceContext.getContentContext());
+ this.createChildResourceDelegate = new CreateChildResourceFacetDelegate(this);
+
// prepare to perform async avail checking
Configuration pc = resourceContext.getPluginConfiguration();
String availCheckPeriodProp = pc.getSimpleValue(ApplicationServerPluginConfigurationProperties.AVAIL_CHECK_PERIOD_CONFIG_PROP, null);
@@ -330,13 +332,7 @@ public class ApplicationServerComponent implements ResourceComponent, ProfileSer
// CreateChildResourceFacet --------------------------------------------
public CreateResourceReport createResource(CreateResourceReport createResourceReport) {
- // ProfileServiceFactory.refreshCurrentProfileView();
- ResourceType resourceType = createResourceReport.getResourceType();
- if (resourceType.getCreationDataType() == ResourceCreationDataType.CONTENT)
- createContentBasedResource(createResourceReport, resourceType);
- else
- createConfigurationBasedResource(createResourceReport, resourceType);
- return createResourceReport;
+ return this.createChildResourceDelegate.createResource(createResourceReport);
}
// ProgressListener --------------------------------------------
@@ -426,117 +422,6 @@ public class ApplicationServerComponent implements ResourceComponent, ProfileSer
}
}
- private void handleMiscManagedProperties(Collection<PropertyDefinition> managedPropertyGroup,
- Map<String, ManagedProperty> managedProperties, Configuration pluginConfiguration) {
- for (PropertyDefinition propertyDefinition : managedPropertyGroup) {
- String propertyKey = propertyDefinition.getName();
- Property property = pluginConfiguration.get(propertyKey);
- ManagedProperty managedProperty = managedProperties.get(propertyKey);
- if (managedProperty != null && property != null) {
- PropertyAdapter propertyAdapter = PropertyAdapterFactory.getPropertyAdapter(managedProperty
- .getMetaType());
- propertyAdapter.populateMetaValueFromProperty(property, managedProperty.getValue(), propertyDefinition);
- }
- }
- }
-
- private static String getComponentName(Configuration pluginConfig, Configuration resourceConfig) {
- PropertySimple componentNameProp =
- pluginConfig.getSimple(ManagedComponentComponent.Config.COMPONENT_NAME_PROPERTY);
- if (componentNameProp == null || componentNameProp.getStringValue() == null) {
- throw new IllegalStateException("Property [" + ManagedComponentComponent.Config.COMPONENT_NAME_PROPERTY
- + "] is not defined in the default plugin configuration.");
- }
- String componentNamePropName = componentNameProp.getStringValue();
- PropertySimple propToUseAsComponentName = resourceConfig.getSimple(componentNamePropName);
- if (propToUseAsComponentName == null) {
- throw new IllegalStateException("Property [" + componentNamePropName
- + "] is not defined in user-specified initial Resource configuration.");
- }
- return propToUseAsComponentName.getStringValue();
- }
-
- private void createConfigurationBasedResource(CreateResourceReport createResourceReport, ResourceType resourceType) {
- Configuration defaultPluginConfig = getDefaultPluginConfiguration(resourceType);
- Configuration resourceConfig = createResourceReport.getResourceConfiguration();
- String componentName = getComponentName(defaultPluginConfig, resourceConfig);
- ComponentType componentType = ConversionUtils.getComponentType(resourceType);
- ManagementView managementView = getConnection().getManagementView();
- if (ManagedComponentUtils.isManagedComponent(managementView, componentName, componentType)) {
- createResourceReport.setStatus(CreateResourceStatus.FAILURE);
- createResourceReport.setErrorMessage("A " + resourceType.getName() + " named '" + componentName
- + "' already exists.");
- return;
- }
-
- // The PC doesn't use the Resource name or key for anything, but set them anyway to make it happy.
- createResourceReport.setResourceName(componentName);
- createResourceReport.setResourceKey(componentName);
-
- PropertySimple templateNameProperty = defaultPluginConfig
- .getSimple(ManagedComponentComponent.Config.TEMPLATE_NAME);
- String templateName = templateNameProperty.getStringValue();
-
- DeploymentTemplateInfo template;
- try {
- template = managementView.getTemplate(templateName);
- Map<String, ManagedProperty> managedProperties = template.getProperties();
- Map<String, PropertySimple> customProps = ResourceComponentUtils.getCustomProperties(defaultPluginConfig);
-
- if (log.isDebugEnabled())
- log.debug("BEFORE CREATE:\n" + DebugUtils.convertPropertiesToString(template));
- ConversionUtils.convertConfigurationToManagedProperties(managedProperties, resourceConfig, resourceType,
- customProps);
- if (log.isDebugEnabled())
- log.debug("AFTER CREATE:\n" + DebugUtils.convertPropertiesToString(template));
-
- ConfigurationDefinition pluginConfigDef = resourceType.getPluginConfigurationDefinition();
- Collection<PropertyDefinition> managedPropertyGroup = pluginConfigDef
- .getPropertiesInGroup(MANAGED_PROPERTY_GROUP);
- handleMiscManagedProperties(managedPropertyGroup, managedProperties, defaultPluginConfig);
- log.debug("Applying template [" + templateName + "] to create ManagedComponent of type [" + componentType
- + "]...");
- try {
- managementView.applyTemplate(componentName, template);
- managementView.process();
- createResourceReport.setStatus(CreateResourceStatus.SUCCESS);
- } catch (Exception e) {
- log.error("Unable to apply template [" + templateName + "] to create ManagedComponent of type "
- + componentType + ".", e);
- createResourceReport.setStatus(CreateResourceStatus.FAILURE);
- createResourceReport.setException(e);
- }
- } catch (NoSuchDeploymentException e) {
- log.error("Unable to find template [" + templateName + "].", e);
- createResourceReport.setStatus(CreateResourceStatus.FAILURE);
- createResourceReport.setException(e);
- } catch (Exception e) {
- log.error("Unable to process create request", e);
- createResourceReport.setStatus(CreateResourceStatus.FAILURE);
- createResourceReport.setException(e);
- }
- }
-
- private void createContentBasedResource(CreateResourceReport createResourceReport, ResourceType resourceType) {
- getDeployer().deploy(createResourceReport, resourceType);
- }
-
- private Deployer getDeployer() {
- ProfileServiceConnection profileServiceConnection = getConnection();
- if (runningEmbedded()) {
- return new LocalDeployer(profileServiceConnection);
- } else {
- return new RemoteDeployer(profileServiceConnection, this.resourceContext);
- }
- }
-
- private static Configuration getDefaultPluginConfiguration(ResourceType resourceType) {
- ConfigurationTemplate pluginConfigDefaultTemplate = resourceType.getPluginConfigurationDefinition()
- .getDefaultTemplate();
- return (pluginConfigDefaultTemplate != null) ? pluginConfigDefaultTemplate.createConfiguration()
- : new Configuration();
- }
-
@NotNull
private JBossASPaths getJBossASPaths() {
Configuration pluginConfiguration = this.resourceContext.getPluginConfiguration();
@@ -594,6 +479,7 @@ public class ApplicationServerComponent implements ResourceComponent, ProfileSer
return propValue;
}
+ @NotNull
public ResourceContext getResourceContext() {
return this.resourceContext;
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerDiscoveryComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerDiscoveryComponent.java
index 4174283..39b1387 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerDiscoveryComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerDiscoveryComponent.java
@@ -102,8 +102,8 @@ public class ApplicationServerDiscoveryComponent implements ResourceDiscoveryCom
"lib/jboss-metatype.jar",
"lib/jboss-dependency.jar",
// The below jars are required for JBoss AS 6.0 M1, M2, and M3.
- "lib/jboss-classpool.jar",
- "lib/jboss-classpool-scoped.jar"
+ //"lib/jboss-classpool.jar",
+ //"lib/jboss-classpool-scoped.jar"
};
private final Log log = LogFactory.getLog(this.getClass());
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerPluginConfigurationProperties.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerPluginConfigurationProperties.java
index c1bf979..c87a82f 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerPluginConfigurationProperties.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ApplicationServerPluginConfigurationProperties.java
@@ -26,21 +26,21 @@ package org.rhq.plugins.jbossas5;
* @author Ian Springer
*/
public class ApplicationServerPluginConfigurationProperties {
- static final String SERVER_NAME = "serverName";
- static final String NAMING_URL = "namingURL";
- static final String PRINCIPAL = "principal";
- static final String CREDENTIALS = "credentials";
- static final String HOME_DIR = "homeDir";
- static final String SERVER_HOME_DIR = "serverHomeDir";
- static final String JAVA_HOME = "javaHome";
- static final String BIND_ADDRESS = "bindAddress";
- static final String START_SCRIPT_CONFIG_PROP = "startScript";
- static final String SHUTDOWN_SCRIPT_CONFIG_PROP = "shutdownScript";
- static final String SHUTDOWN_MBEAN_CONFIG_PROP = "shutdownMBeanName";
- static final String SHUTDOWN_MBEAN_OPERATION_CONFIG_PROP = "shutdownMBeanOperation";
- static final String SHUTDOWN_METHOD_CONFIG_PROP = "shutdownMethod";
- static final String SCRIPT_PREFIX_CONFIG_PROP = "scriptPrefix";
- static final String AVAIL_CHECK_PERIOD_CONFIG_PROP = "availabilityCheckPeriod";
+ public static final String SERVER_NAME = "serverName";
+ public static final String NAMING_URL = "namingURL";
+ public static final String PRINCIPAL = "principal";
+ public static final String CREDENTIALS = "credentials";
+ public static final String HOME_DIR = "homeDir";
+ public static final String SERVER_HOME_DIR = "serverHomeDir";
+ public static final String JAVA_HOME = "javaHome";
+ public static final String BIND_ADDRESS = "bindAddress";
+ public static final String START_SCRIPT_CONFIG_PROP = "startScript";
+ public static final String SHUTDOWN_SCRIPT_CONFIG_PROP = "shutdownScript";
+ public static final String SHUTDOWN_MBEAN_CONFIG_PROP = "shutdownMBeanName";
+ public static final String SHUTDOWN_MBEAN_OPERATION_CONFIG_PROP = "shutdownMBeanOperation";
+ public static final String SHUTDOWN_METHOD_CONFIG_PROP = "shutdownMethod";
+ public static final String SCRIPT_PREFIX_CONFIG_PROP = "scriptPrefix";
+ public static final String AVAIL_CHECK_PERIOD_CONFIG_PROP = "availabilityCheckPeriod";
private ApplicationServerPluginConfigurationProperties() {
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossMessagingComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossMessagingComponent.java
new file mode 100644
index 0000000..af47587
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossMessagingComponent.java
@@ -0,0 +1,70 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.plugins.jbossas5;
+
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.pluginapi.inventory.CreateChildResourceFacet;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.plugins.jbossas5.helper.CreateChildResourceFacetDelegate;
+
+import java.util.Set;
+
+/**
+ * The ResourceComponent for the singleton JBoss Messaging ResourceType, which supports creation of two child
+ * ResourceTypes - Queue and Topic.
+ *
+ * @author Ian Springer
+ */
+public class JBossMessagingComponent extends ManagedComponentComponent
+ implements CreateChildResourceFacet, MeasurementFacet {
+ private CreateChildResourceFacetDelegate createChildResourceDelegate;
+
+ public AvailabilityType getAvailability() {
+ return super.getAvailability();
+ }
+
+ public void start(ResourceContext resourceContext) throws Exception {
+ super.start(resourceContext);
+ this.createChildResourceDelegate = new CreateChildResourceFacetDelegate(this);
+ }
+
+ public void stop() {
+ super.stop();
+ }
+
+ // MeasurementFacet ---------------------------------------------------
+
+ public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> requests) throws Exception {
+ super.getValues(report, requests);
+ }
+
+ // CreateChildResourceFacet --------------------------------------------
+
+ public CreateResourceReport createResource(CreateResourceReport createResourceReport) {
+ return this.createChildResourceDelegate.createResource(createResourceReport);
+ }
+}
\ No newline at end of file
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossMessagingDiscoveryComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossMessagingDiscoveryComponent.java
new file mode 100644
index 0000000..a88ac44
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossMessagingDiscoveryComponent.java
@@ -0,0 +1,55 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2010 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, version 2, as
+ * published by the Free Software Foundation, and/or the GNU Lesser
+ * General Public License, version 2.1, also as published by the Free
+ * Software Foundation.
+ *
+ * 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 and the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * and the GNU Lesser 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.plugins.jbossas5;
+
+import org.jboss.managed.api.ManagedComponent;
+import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.plugins.jbossas5.util.ManagedComponentUtils;
+
+import java.util.Set;
+
+/**
+ * The ResourceDiscoveryComponent for the singleton JBoss Messaging ResourceType.
+ *
+ * @author Ian Springer
+ */
+public class JBossMessagingDiscoveryComponent extends ManagedComponentDiscoveryComponent<ApplicationServerComponent> {
+ private static final String DEFAULT_RESOURCE_NAME = "JBoss Messaging";
+
+ @Override
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<ApplicationServerComponent> discoveryContext)
+ throws Exception {
+ return super.discoverResources(discoveryContext);
+ }
+
+ @Override
+ protected String getResourceName(ManagedComponent component) {
+ return DEFAULT_RESOURCE_NAME;
+ }
+
+ @Override
+ protected String getResourceVersion(ManagedComponent component) {
+ return (String)ManagedComponentUtils.getSimplePropertyValue(component, "providerVersion");
+ }
+}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossWebComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossWebComponent.java
index 6aec8be..9ac7274 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossWebComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/JBossWebComponent.java
@@ -22,6 +22,7 @@
*/
package org.rhq.plugins.jbossas5;
+import org.jetbrains.annotations.NotNull;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.plugins.jbossas5.connection.ProfileServiceConnection;
@@ -51,6 +52,11 @@ public class JBossWebComponent implements ProfileServiceComponent<ProfileService
return AvailabilityType.UP;
}
+ @NotNull
+ public ResourceContext<ProfileServiceComponent> getResourceContext() {
+ return this.resourceContext;
+ }
+
public ProfileServiceConnection getConnection()
{
return this.resourceContext.getParentResourceComponent().getConnection();
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ManagedComponentDiscoveryComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ManagedComponentDiscoveryComponent.java
index 4ee766f..a0a62ea 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ManagedComponentDiscoveryComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ManagedComponentDiscoveryComponent.java
@@ -1,150 +1,169 @@
-/*
-* Jopr Management Platform
-* Copyright (C) 2005-2009 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, version 2, as
-* published by the Free Software Foundation, and/or the GNU Lesser
-* General Public License, version 2.1, also as published by the Free
-* Software Foundation.
-*
-* 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 and the GNU Lesser General Public License
-* for more details.
-*
-* You should have received a copy of the GNU General Public License
-* and the GNU Lesser 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.plugins.jbossas5;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jboss.deployers.spi.management.ManagementView;
-import org.jboss.managed.api.ComponentType;
-import org.jboss.managed.api.ManagedComponent;
-import org.rhq.core.domain.configuration.PropertySimple;
-import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
-import org.rhq.plugins.jbossas5.util.ConversionUtils;
-
-/**
- * Discovery component for ManagedComponents exposed by the JBoss AS 5.x Profile Service that will be represented as
- * child Resources of the JBoss AS Resource.
- *
- * @author Jason Dobies
- * @author Mark Spritzer
- * @author Ian Springer
- */
-public class ManagedComponentDiscoveryComponent<P extends ProfileServiceComponent> implements
- ResourceDiscoveryComponent<P> {
- private final Log log = LogFactory.getLog(this.getClass());
-
- public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<P> discoveryContext)
- throws Exception {
- ResourceType resourceType = discoveryContext.getResourceType();
- log.trace("Discovering " + resourceType.getName() + " Resources...");
-
- ManagementView managementView = discoveryContext.getParentResourceComponent().getConnection()
- .getManagementView();
- // TODO (ips): Only refresh the ManagementView *once* per runtime discovery scan, rather than every time this
- // method is called. Do this by providing a runtime scan id in the ResourceDiscoveryContext.
- managementView.load();
-
- ComponentType componentType = getComponentType(discoveryContext);
- Set<ManagedComponent> components;
- try {
- components = managementView.getComponentsForType(componentType);
- } catch (Exception e) {
- throw new IllegalStateException("Failed to get component types for " + resourceType + ".", e);
- }
-
- Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>(components.size());
- /* Create a resource for each managed component found. We know all managed components will be of a
- type we're interested in, so we can just add them all. There may be need for multiple iterations
- over lists retrieved from different component types, but that is possible through the current API.
- */
- for (ManagedComponent component : components) {
- if (accept(discoveryContext, component)) {
- String resourceName = getResourceName(component);
- if (resourceName == null) {
- resourceName = component.getName();
- }
- String resourceKey = getResourceKey(component);
- if (resourceKey == null) {
- resourceKey = component.getName();
- }
- String version = null; // (ips) I don't think there's anything generic we can do here.
-
- DiscoveredResourceDetails resource = new DiscoveredResourceDetails(resourceType, resourceKey,
- resourceName, version, resourceType.getDescription(), discoveryContext
- .getDefaultPluginConfiguration(), null);
-
- resource.getPluginConfiguration().put(
- new PropertySimple(ManagedComponentComponent.Config.COMPONENT_NAME, resourceKey));
-
- discoveredResources.add(resource);
- }
- }
-
- log.trace("Discovered " + discoveredResources.size() + " " + resourceType.getName() + " Resources.");
- return discoveredResources;
- }
-
- protected ComponentType getComponentType(ResourceDiscoveryContext<P> discoveryContext) {
- ResourceType resourceType = discoveryContext.getResourceType();
- return ConversionUtils.getComponentType(resourceType);
- }
-
- /**
- * Subclasses can override this method if they don't want to use the ManagedComponent name as the initial
- * Resource name.
- *
- * @param component the ManagedComponent being discovered
- * @return the name to be assigned to the corresponding Resource
- */
- protected String getResourceName(ManagedComponent component) {
- return component.getName();
- }
-
- /**
- * Return the unique resource key for the component.
- * If you override this method, make sure to override
- * {@link ManagedComponentComponent#getManagedComponent()} method as well
- * because the return value of this method is used as the component name
- * ({@link ManagedComponentComponent#getComponentName()}).
- *
- * @param component the component to uniquely identify
- * @return the unique identifier for the component
- */
- protected String getResourceKey(ManagedComponent component) {
- return component.getName();
- }
-
- /**
- * This method is called during {@link #discoverResources(ResourceDiscoveryContext)} to determine
- * whether given component that has been found in the management view by this component's configured
- * component type is applicable in the discovery context.
- * <p>
- * Because the Profile Service doesn't always provide the components in a hierarchy we present the resources
- * we need this method to filter the components into their appropriate places.
- * <p>
- * This default implementation always returns true.
- *
- * @param discoveryContext the current discovery context
- * @param component the discovered component
- * @return true if the component logically belongs in the context, false otherwise.
- */
- protected boolean accept(ResourceDiscoveryContext<P> discoveryContext, ManagedComponent component) {
- return true;
- }
-}
+/*
+* Jopr Management Platform
+* Copyright (C) 2005-2010 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, version 2, as
+* published by the Free Software Foundation, and/or the GNU Lesser
+* General Public License, version 2.1, also as published by the Free
+* Software Foundation.
+*
+* 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 and the GNU Lesser General Public License
+* for more details.
+*
+* You should have received a copy of the GNU General Public License
+* and the GNU Lesser 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.plugins.jbossas5;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.managed.api.ComponentType;
+import org.jboss.managed.api.ManagedComponent;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.plugins.jbossas5.util.ConversionUtils;
+
+/**
+ * Discovery component for ManagedComponents exposed by the JBoss AS 5.x Profile Service that will be represented as
+ * child Resources of the JBoss AS Resource.
+ *
+ * @author Jason Dobies
+ * @author Mark Spritzer
+ * @author Ian Springer
+ */
+public class ManagedComponentDiscoveryComponent<P extends ProfileServiceComponent> implements
+ ResourceDiscoveryComponent<P> {
+ private final Log log = LogFactory.getLog(this.getClass());
+
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<P> discoveryContext)
+ throws Exception {
+ ResourceType resourceType = discoveryContext.getResourceType();
+ log.trace("Discovering " + resourceType.getName() + " Resources...");
+
+ ManagementView managementView = discoveryContext.getParentResourceComponent().getConnection()
+ .getManagementView();
+ // TODO (ips): Only refresh the ManagementView *once* per runtime discovery scan, rather than every time this
+ // method is called. Do this by providing a runtime scan id in the ResourceDiscoveryContext.
+ managementView.load();
+
+ ComponentType componentType = getComponentType(discoveryContext);
+ Set<ManagedComponent> components;
+ try {
+ components = managementView.getComponentsForType(componentType);
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to get component types for " + resourceType + ".", e);
+ }
+ if (resourceType.isSingleton() && components.size() > 1) {
+ throw new IllegalStateException("Discovered multiple [" + componentType
+ + "] managed components during [" + resourceType
+ + "] discovery, but expected to find no more than one - components were: " + components);
+ }
+
+ Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>(components.size());
+ /* Create a resource for each managed component found. We know all managed components will be of a
+ type we're interested in, so we can just add them all. There may be need for multiple iterations
+ over lists retrieved from different component types, but that is possible through the current API.
+ */
+ for (ManagedComponent component : components) {
+ if (accept(discoveryContext, component)) {
+ String resourceName = getResourceName(component);
+ if (resourceName == null) {
+ resourceName = component.getName();
+ }
+ String resourceKey = getResourceKey(component);
+ if (resourceKey == null) {
+ resourceKey = component.getName();
+ }
+
+ String version = getResourceVersion(component);
+
+ DiscoveredResourceDetails resource = new DiscoveredResourceDetails(resourceType, resourceKey,
+ resourceName, version, resourceType.getDescription(), discoveryContext
+ .getDefaultPluginConfiguration(), null);
+
+ resource.getPluginConfiguration().put(
+ new PropertySimple(ManagedComponentComponent.Config.COMPONENT_NAME, resourceKey));
+
+ discoveredResources.add(resource);
+ }
+ }
+
+ log.trace("Discovered " + discoveredResources.size() + " " + resourceType.getName() + " Resources.");
+ return discoveredResources;
+ }
+
+ protected ComponentType getComponentType(ResourceDiscoveryContext<P> discoveryContext) {
+ ResourceType resourceType = discoveryContext.getResourceType();
+ return ConversionUtils.getComponentType(resourceType);
+ }
+
+ /**
+ * Subclasses can override this method if they don't want to use the ManagedComponent name as the initial
+ * Resource name.
+ *
+ * @param component the ManagedComponent being discovered
+ *
+ * @return the name to be assigned to the corresponding Resource
+ */
+ protected String getResourceName(ManagedComponent component) {
+ return component.getName();
+ }
+
+ /**
+ * Return the unique resource key for the component.
+ * If you override this method, make sure to override
+ * {@link ManagedComponentComponent#getManagedComponent()} method as well
+ * because the return value of this method is used as the component name
+ * ({@link ManagedComponentComponent#getComponentName()}).
+ *
+ * @param component the component to uniquely identify
+ *
+ * @return the unique identifier for the component
+ */
+ protected String getResourceKey(ManagedComponent component) {
+ return component.getName();
+ }
+
+ /**
+ * Subclasses can override this method if they want the discovered ManagedComponent to have a version.
+ *
+ * @param component the ManagedComponent being discovered
+ *
+ * @return the version to be assigned to the corresponding Resource
+ */
+ protected String getResourceVersion(ManagedComponent component) {
+ return null;
+ }
+
+ /**
+ * This method is called during {@link #discoverResources(ResourceDiscoveryContext)} to determine
+ * whether given component that has been found in the management view by this component's configured
+ * component type is applicable in the discovery context.
+ * <p>
+ * Because the Profile Service doesn't always provide the components in a hierarchy we present the resources
+ * we need this method to filter the components into their appropriate places.
+ * <p>
+ * This default implementation always returns true.
+ *
+ * @param discoveryContext the current discovery context
+ * @param component the discovered component
+ * @return true if the component logically belongs in the context, false otherwise.
+ */
+ protected boolean accept(ResourceDiscoveryContext<P> discoveryContext, ManagedComponent component) {
+ return true;
+ }
+}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/PlatformComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/PlatformComponent.java
index 1560520..2c8e6d9 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/PlatformComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/PlatformComponent.java
@@ -16,6 +16,7 @@ import org.jboss.managed.api.ManagedProperty;
import org.jboss.metatype.api.types.MetaType;
import org.jboss.metatype.api.values.MetaValue;
import org.jboss.profileservice.spi.NoSuchDeploymentException;
+import org.jetbrains.annotations.NotNull;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.measurement.DataType;
@@ -44,7 +45,6 @@ import org.mc4j.ems.connection.EmsConnection;
public class PlatformComponent implements
ProfileServiceComponent<ProfileServiceComponent>, MeasurementFacet,
OperationFacet, ConfigurationFacet {
-
private final Log log = LogFactory.getLog(this.getClass());
private ResourceContext<ProfileServiceComponent> context;
private String deployName;
@@ -59,11 +59,15 @@ public class PlatformComponent implements
}
public void stop() {
- // TODO Auto-generated method stub
-
+ return;
}
- public ProfileServiceConnection getConnection() {
+ @NotNull
+ public ResourceContext<ProfileServiceComponent> getResourceContext() {
+ return this.context;
+ }
+
+ public ProfileServiceConnection getConnection() {
ApplicationServerComponent component = (ApplicationServerComponent) context
.getParentResourceComponent();
return component.getConnection();
@@ -272,5 +276,4 @@ public class PlatformComponent implements
}
return null;
}
-
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ProfileServiceComponent.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ProfileServiceComponent.java
index f08f143..4e13a96 100644
--- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ProfileServiceComponent.java
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/ProfileServiceComponent.java
@@ -22,9 +22,11 @@
*/
package org.rhq.plugins.jbossas5;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
import org.rhq.plugins.jbossas5.connection.ProfileServiceConnection;
import org.rhq.plugins.jmx.JMXComponent;
@@ -34,4 +36,7 @@ import org.rhq.plugins.jmx.JMXComponent;
public interface ProfileServiceComponent<T extends ResourceComponent> extends ResourceComponent<T>, JMXComponent<T> {
@Nullable
ProfileServiceConnection getConnection();
+
+ @NotNull
+ ResourceContext<T> getResourceContext();
}
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/helper/CreateChildResourceFacetDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/helper/CreateChildResourceFacetDelegate.java
new file mode 100644
index 0000000..c03b435
--- /dev/null
+++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/helper/CreateChildResourceFacetDelegate.java
@@ -0,0 +1,180 @@
+package org.rhq.plugins.jbossas5.helper;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.managed.api.ComponentType;
+import org.jboss.managed.api.DeploymentTemplateInfo;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.profileservice.spi.NoSuchDeploymentException;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.Property;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.configuration.definition.ConfigurationTemplate;
+import org.rhq.core.domain.configuration.definition.PropertyDefinition;
+import org.rhq.core.domain.resource.CreateResourceStatus;
+import org.rhq.core.domain.resource.ResourceCreationDataType;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.pluginapi.inventory.CreateChildResourceFacet;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.plugins.jbossas5.ApplicationServerPluginConfigurationProperties;
+import org.rhq.plugins.jbossas5.ManagedComponentComponent;
+import org.rhq.plugins.jbossas5.ProfileServiceComponent;
+import org.rhq.plugins.jbossas5.adapter.api.PropertyAdapter;
+import org.rhq.plugins.jbossas5.adapter.api.PropertyAdapterFactory;
+import org.rhq.plugins.jbossas5.connection.ProfileServiceConnection;
+import org.rhq.plugins.jbossas5.deploy.Deployer;
+import org.rhq.plugins.jbossas5.deploy.LocalDeployer;
+import org.rhq.plugins.jbossas5.deploy.RemoteDeployer;
+import org.rhq.plugins.jbossas5.util.ConversionUtils;
+import org.rhq.plugins.jbossas5.util.DebugUtils;
+import org.rhq.plugins.jbossas5.util.ManagedComponentUtils;
+import org.rhq.plugins.jbossas5.util.ResourceComponentUtils;
+
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * @author Ian Springer
+ */
+public class CreateChildResourceFacetDelegate implements CreateChildResourceFacet {
+ private static final String MANAGED_PROPERTY_GROUP = "managedPropertyGroup";
+
+ private final Log log = LogFactory.getLog(this.getClass());
+
+ private ProfileServiceComponent component;
+
+ public CreateChildResourceFacetDelegate(ProfileServiceComponent component) {
+ this.component = component;
+ }
+
+ public CreateResourceReport createResource(CreateResourceReport createResourceReport) {
+ // ProfileServiceFactory.refreshCurrentProfileView();
+ ResourceType resourceType = createResourceReport.getResourceType();
+ if (resourceType.getCreationDataType() == ResourceCreationDataType.CONTENT)
+ createContentBasedResource(createResourceReport, resourceType);
+ else
+ createConfigurationBasedResource(createResourceReport, resourceType);
+ return createResourceReport;
+ }
+
+ void createConfigurationBasedResource(CreateResourceReport createResourceReport, ResourceType resourceType) {
+ Configuration defaultPluginConfig = getDefaultPluginConfiguration(resourceType);
+ Configuration resourceConfig = createResourceReport.getResourceConfiguration();
+ String componentName = getComponentName(defaultPluginConfig, resourceConfig);
+ ComponentType componentType = ConversionUtils.getComponentType(resourceType);
+ ManagementView managementView = this.component.getConnection().getManagementView();
+ if (ManagedComponentUtils.isManagedComponent(managementView, componentName, componentType)) {
+ createResourceReport.setStatus(CreateResourceStatus.FAILURE);
+ createResourceReport.setErrorMessage("A " + resourceType.getName() + " named '" + componentName
+ + "' already exists.");
+ return;
+ }
+
+ // The PC doesn't use the Resource name or key for anything, but set them anyway to make it happy.
+ createResourceReport.setResourceName(componentName);
+ createResourceReport.setResourceKey(componentName);
+
+ PropertySimple templateNameProperty = defaultPluginConfig
+ .getSimple(ManagedComponentComponent.Config.TEMPLATE_NAME);
+ String templateName = templateNameProperty.getStringValue();
+
+ DeploymentTemplateInfo template;
+ try {
+ template = managementView.getTemplate(templateName);
+ Map<String, ManagedProperty> managedProperties = template.getProperties();
+ Map<String, PropertySimple> customProps = ResourceComponentUtils.getCustomProperties(defaultPluginConfig);
+
+ if (log.isDebugEnabled())
+ log.debug("BEFORE CREATE:\n" + DebugUtils.convertPropertiesToString(template));
+ ConversionUtils.convertConfigurationToManagedProperties(managedProperties, resourceConfig, resourceType,
+ customProps);
+ if (log.isDebugEnabled())
+ log.debug("AFTER CREATE:\n" + DebugUtils.convertPropertiesToString(template));
+
+ ConfigurationDefinition pluginConfigDef = resourceType.getPluginConfigurationDefinition();
+ Collection<PropertyDefinition> managedPropertyGroup = pluginConfigDef
+ .getPropertiesInGroup(MANAGED_PROPERTY_GROUP);
+ handleMiscManagedProperties(managedPropertyGroup, managedProperties, defaultPluginConfig);
+ log.debug("Applying template [" + templateName + "] to create ManagedComponent of type [" + componentType
+ + "]...");
+ try {
+ managementView.applyTemplate(componentName, template);
+ managementView.process();
+ createResourceReport.setStatus(CreateResourceStatus.SUCCESS);
+ } catch (Exception e) {
+ log.error("Unable to apply template [" + templateName + "] to create ManagedComponent of type "
+ + componentType + ".", e);
+ createResourceReport.setStatus(CreateResourceStatus.FAILURE);
+ createResourceReport.setException(e);
+ }
+ } catch (NoSuchDeploymentException e) {
+ log.error("Unable to find template [" + templateName + "].", e);
+ createResourceReport.setStatus(CreateResourceStatus.FAILURE);
+ createResourceReport.setException(e);
+ } catch (Exception e) {
+ log.error("Unable to process create request", e);
+ createResourceReport.setStatus(CreateResourceStatus.FAILURE);
+ createResourceReport.setException(e);
+ }
+ }
+
+ private void createContentBasedResource(CreateResourceReport createResourceReport, ResourceType resourceType) {
+ getDeployer().deploy(createResourceReport, resourceType);
+ }
+
+ private static String getComponentName(Configuration pluginConfig, Configuration resourceConfig) {
+ PropertySimple componentNameProp =
+ pluginConfig.getSimple(ManagedComponentComponent.Config.COMPONENT_NAME_PROPERTY);
+ if (componentNameProp == null || componentNameProp.getStringValue() == null) {
+ throw new IllegalStateException("Property [" + ManagedComponentComponent.Config.COMPONENT_NAME_PROPERTY
+ + "] is not defined in the default plugin configuration.");
+ }
+ String componentNamePropName = componentNameProp.getStringValue();
+ PropertySimple propToUseAsComponentName = resourceConfig.getSimple(componentNamePropName);
+ if (propToUseAsComponentName == null) {
+ throw new IllegalStateException("Property [" + componentNamePropName
+ + "] is not defined in user-specified initial Resource configuration.");
+ }
+ return propToUseAsComponentName.getStringValue();
+ }
+
+
+ private Deployer getDeployer() {
+ ProfileServiceConnection profileServiceConnection = this.component.getConnection();
+ if (runningEmbedded()) {
+ return new LocalDeployer(profileServiceConnection);
+ } else {
+ return new RemoteDeployer(profileServiceConnection, this.component.getResourceContext());
+ }
+ }
+
+ private boolean runningEmbedded() {
+ Configuration pluginConfiguration = this.component.getResourceContext().getPluginConfiguration();
+ String namingUrl = pluginConfiguration.getSimpleValue(ApplicationServerPluginConfigurationProperties.NAMING_URL,
+ null);
+ return namingUrl == null;
+ }
+
+ private static Configuration getDefaultPluginConfiguration(ResourceType resourceType) {
+ ConfigurationTemplate pluginConfigDefaultTemplate = resourceType.getPluginConfigurationDefinition()
+ .getDefaultTemplate();
+ return (pluginConfigDefaultTemplate != null) ? pluginConfigDefaultTemplate.createConfiguration()
+ : new Configuration();
+ }
+
+ private void handleMiscManagedProperties(Collection<PropertyDefinition> managedPropertyGroup,
+ Map<String, ManagedProperty> managedProperties, Configuration pluginConfiguration) {
+ for (PropertyDefinition propertyDefinition : managedPropertyGroup) {
+ String propertyKey = propertyDefinition.getName();
+ Property property = pluginConfiguration.get(propertyKey);
+ ManagedProperty managedProperty = managedProperties.get(propertyKey);
+ if (managedProperty != null && property != null) {
+ PropertyAdapter propertyAdapter = PropertyAdapterFactory.getPropertyAdapter(managedProperty
+ .getMetaType());
+ propertyAdapter.populateMetaValueFromProperty(property, managedProperty.getValue(), propertyDefinition);
+ }
+ }
+ }
+}
diff --git a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
index 27d2b76..b6bfdd9 100644
--- a/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-5/src/main/resources/META-INF/rhq-plugin.xml
@@ -1600,653 +1600,670 @@
</service>
- <service name="Queue"
- class="JmsDestinationComponent"
- createDeletePolicy="both"
- subCategory="JMS Destinations"
- discovery="JmsDestinationDiscoveryComponent">
- <plugin-configuration>
- <c:simple-property name="componentType" default="JMSDestination" readOnly="true"/>
- <c:simple-property name="componentSubtype" default="Queue" readOnly="true"/>
+ <service name="JBoss Messaging"
+ class="JBossMessagingComponent"
+ subCategory="Resources"
+ discovery="JBossMessagingDiscoveryComponent"
+ description="the JBoss Messaging JMS provider"
+ singleton="true">
+
+ <plugin-configuration>
+ <c:simple-property name="componentType" default="JMS" readOnly="true"/>
+ <c:simple-property name="componentSubtype" default="ServerPeer" readOnly="true"/>
<c:simple-property name="componentName" readOnly="true"/>
- <c:simple-property name="templateName" default="QueueTemplate" readOnly="true"/>
- <c:simple-property name="componentNameProperty" default="JNDIName" readOnly="true">
- <c:description>
- The name of the Resource configuration property whose value should be used as the
- underlying ManagedComponent name when creating a new Resource of this type.
- </c:description>
- </c:simple-property>
- <c:group name="managedPropertyGroup" displayName="managedPropertyGroup" hiddenByDefault="true">
- <c:simple-property name="jms-type" default="queue"/>
- <c:map-property name="customProperties"
- description="Maps a list of custom property names to the the fully qualified class names of the org.rhq.plugins.jbossas5.adapter.api.PropertyAdapter implementations that should be used for those properties.">
- <c:simple-property name="securityConfig"
- default="org.rhq.plugins.jbossas5.adapter.impl.configuration.custom.JMSSecurityConfigAdapter"/>
- </c:map-property>
- </c:group>
- </plugin-configuration>
+ </plugin-configuration>
- &destinationOperations;
-
- <operation name="listAllMessages" displayName="List All Messages" description="List all messages for the specified selector">
- <parameters>
- <c:simple-property required="false" name="arg#0" displayName="selector"/>
- </parameters>
- <results>
- <c:notes>List all messages with selector</c:notes>
- <c:list-property name="result">
- <c:map-property required="false" name="element">
- <c:simple-property required="false" name="JMSCorrelationID"/>
- <c:simple-property required="false" name="JMSMessageID"/>
- <c:simple-property type="long" required="false" name="JMSTimestamp"/>
- </c:map-property>
- </c:list-property>
- </results>
- </operation>
-
- <operation name="listDurableMessages" displayName="List Durable Messages" description="List all durable messages for the specified selector">
- <parameters>
- <c:simple-property required="false" name="arg#0" displayName="selector"/>
- </parameters>
- <results>
- <c:notes>List all durable messages using a selector</c:notes>
- <c:list-property name="result">
- <c:map-property required="false" name="element">
- <c:simple-property required="false" name="JMSCorrelationID"/>
- <c:simple-property required="false" name="JMSMessageID"/>
- <c:simple-property type="long" required="false" name="JMSTimestamp"/>
- </c:map-property>
- </c:list-property>
- </results>
- </operation>
-
- <operation name="listNonDurableMessages" displayName="List Non Durable Messages" description="List all non durable messages for the specified selector">
- <parameters>
- <c:simple-property required="false" name="arg#0" displayName="selector"/>
- </parameters>
- <results>
- <c:notes>List all non durable messages using a selector</c:notes>
- <c:list-property name="result">
- <c:map-property required="false" name="element">
- <c:simple-property required="false" name="JMSCorrelationID"/>
- <c:simple-property required="false" name="JMSMessageID"/>
- <c:simple-property type="long" required="false" name="JMSTimestamp"/>
- </c:map-property>
- </c:list-property>
- </results>
- </operation>
-
- <operation name="listMessageCounterAsHTML" displayName="List Message Counter As HTML" description="Get the message counter as HTML">
- <results>
- <c:notes>Get the message counter as HTML</c:notes>
- <c:simple-property name="result" type="longString"/>
- </results>
- </operation>
-
- <operation name="listMessageCounterHistoryAsHTML" displayName="List Message Counter History As HTML" description="Get the message counter history as HTML">
- <results>
- <c:notes>Get the message counter history as HTML</c:notes>
- <c:simple-property name="result" type="longString"/>
- </results>
- </operation>
-
- <operation name="resetMessageCounter" displayName="Reset Message Counter" description="Reset the message counter"/>
-
- <operation name="resetMessageCounterHistory" displayName="Reset Message Counter History" description="Reset the message counter history"/>
+ <service name="Queue"
+ class="JmsDestinationComponent"
+ createDeletePolicy="both"
+ discovery="JmsDestinationDiscoveryComponent"
+ description="a JMS queue">
- &managedObjectMetrics;
+ <plugin-configuration>
+ <c:simple-property name="componentType" default="JMSDestination" readOnly="true"/>
+ <c:simple-property name="componentSubtype" default="Queue" readOnly="true"/>
+ <c:simple-property name="componentName" readOnly="true"/>
+ <c:simple-property name="templateName" default="QueueTemplate" readOnly="true"/>
+ <c:simple-property name="componentNameProperty" default="JNDIName" readOnly="true">
+ <c:description>
+ The name of the Resource configuration property whose value should be used as the
+ underlying ManagedComponent name when creating a new Resource of this type.
+ </c:description>
+ </c:simple-property>
+ <c:group name="managedPropertyGroup" displayName="managedPropertyGroup" hiddenByDefault="true">
+ <c:simple-property name="jms-type" default="queue"/>
+ <c:map-property name="customProperties"
+ description="Maps a list of custom property names to the the fully qualified class names of the org.rhq.plugins.jbossas5.adapter.api.PropertyAdapter implementations that should be used for those properties.">
+ <c:simple-property name="securityConfig"
+ default="org.rhq.plugins.jbossas5.adapter.impl.configuration.custom.JMSSecurityConfigAdapter"/>
+ </c:map-property>
+ </c:group>
+ </plugin-configuration>
- <!-- Traits -->
+ &destinationOperations;
- <metric property="createdProgrammatically" displayType="summary"
- defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
- description="Was this queue created programmatically? If Yes, the queue will not survive a restart of the application server. If No, the queue was created via a deployment XML file."/>
+ <operation name="listAllMessages" displayName="List All Messages" description="List all messages for the specified selector">
+ <parameters>
+ <c:simple-property required="false" name="arg#0" displayName="selector"/>
+ </parameters>
+ <results>
+ <c:notes>List all messages with selector</c:notes>
+ <c:list-property name="result">
+ <c:map-property required="false" name="element">
+ <c:simple-property required="false" name="JMSCorrelationID"/>
+ <c:simple-property required="false" name="JMSMessageID"/>
+ <c:simple-property type="long" required="false" name="JMSTimestamp"/>
+ </c:map-property>
+ </c:list-property>
+ </results>
+ </operation>
- <!-- NOTE: We have to make this a trait rather than a resource config prop due to a bug in JBMESSAGING
- (see https://jira.jboss.org/jira/browse/JBAS-6721). -->
- <metric property="messageCounterHistoryDayLimit"
- defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
- description="This queue's message counter history day limit - <0: unlimited, =0: history disabled, >0: maximum day count"/>
+ <operation name="listDurableMessages" displayName="List Durable Messages" description="List all durable messages for the specified selector">
+ <parameters>
+ <c:simple-property required="false" name="arg#0" displayName="selector"/>
+ </parameters>
+ <results>
+ <c:notes>List all durable messages using a selector</c:notes>
+ <c:list-property name="result">
+ <c:map-property required="false" name="element">
+ <c:simple-property required="false" name="JMSCorrelationID"/>
+ <c:simple-property required="false" name="JMSMessageID"/>
+ <c:simple-property type="long" required="false" name="JMSTimestamp"/>
+ </c:map-property>
+ </c:list-property>
+ </results>
+ </operation>
- <!-- Numerics -->
+ <operation name="listNonDurableMessages" displayName="List Non Durable Messages" description="List all non durable messages for the specified selector">
+ <parameters>
+ <c:simple-property required="false" name="arg#0" displayName="selector"/>
+ </parameters>
+ <results>
+ <c:notes>List all non durable messages using a selector</c:notes>
+ <c:list-property name="result">
+ <c:map-property required="false" name="element">
+ <c:simple-property required="false" name="JMSCorrelationID"/>
+ <c:simple-property required="false" name="JMSMessageID"/>
+ <c:simple-property type="long" required="false" name="JMSTimestamp"/>
+ </c:map-property>
+ </c:list-property>
+ </results>
+ </operation>
- <metric property="consumerCount" measurementType="dynamic" displayType="summary" displayName="Consumer Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The number of consumers on the queue"/>
+ <operation name="listMessageCounterAsHTML" displayName="List Message Counter As HTML" description="Get the message counter as HTML">
+ <results>
+ <c:notes>Get the message counter as HTML</c:notes>
+ <c:simple-property name="result" type="longString"/>
+ </results>
+ </operation>
- <metric property="deliveringCount" measurementType="dynamic" displayType="detail" displayName="Delivering Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The number of messages currently being delivered"/>
+ <operation name="listMessageCounterHistoryAsHTML" displayName="List Message Counter History As HTML" description="Get the message counter history as HTML">
+ <results>
+ <c:notes>Get the message counter history as HTML</c:notes>
+ <c:simple-property name="result" type="longString"/>
+ </results>
+ </operation>
- <metric property="messageCount" measurementType="dynamic" displayType="summary" displayName="Message Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The number of messages in the queue"/>
+ <operation name="resetMessageCounter" displayName="Reset Message Counter" description="Reset the message counter"/>
- <metric property="scheduledMessageCount" measurementType="dynamic" displayType="detail" displayName="Scheduled Message Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The number of scheduled messages in the queue"/>
+ <operation name="resetMessageCounterHistory" displayName="Reset Message Counter History" description="Reset the message counter history"/>
- <metric property="messageStatistics.count" measurementType="dynamic" displayType="detail" displayName="Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
- description="The total message count since startup or last counter reset"/>
+ &managedObjectMetrics;
- <metric property="messageStatistics.countDelta" measurementType="dynamic" displayType="detail" displayName="Count Delta"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
- description="The message count delta since last method call"/>
+ <!-- Traits -->
- <metric property="messageStatistics.depth" measurementType="dynamic" displayType="detail" displayName="Depth"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
- description="The current message count of pending messages within the queue waiting for dispatch"/>
+ <metric property="createdProgrammatically" displayType="summary"
+ defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
+ description="Was this queue created programmatically? If Yes, the queue will not survive a restart of the application server. If No, the queue was created via a deployment XML file."/>
- <metric property="messageStatistics.depthDelta" measurementType="dynamic" displayType="detail" displayName="Depth Delta"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
- description="The message count delta of pending messages since last method call"/>
+ <!-- NOTE: We have to make this a trait rather than a resource config prop due to a bug in JBMESSAGING
+ (see https://jira.jboss.org/jira/browse/JBAS-6721). -->
+ <metric property="messageCounterHistoryDayLimit"
+ defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
+ description="This queue's message counter history day limit - <0: unlimited, =0: history disabled, >0: maximum day count"/>
- <metric property="messageStatistics.timeLastUpdate" measurementType="dynamic" displayType="detail" displayName="Time Last Update"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
- description="The timestamp of the last message add"/>
+ <!-- Numerics -->
- <resource-configuration>
+ <metric property="consumerCount" measurementType="dynamic" displayType="summary" displayName="Consumer Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The number of consumers on the queue"/>
- <!-- See: https://anonsvn.jboss.org/repos/jbossas/trunk/messaging/src/main/org/jbos... -->
+ <metric property="deliveringCount" measurementType="dynamic" displayType="detail" displayName="Delivering Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The number of messages currently being delivered"/>
- <c:simple-property required="true" name="name" readOnly="true"
- description="The name of this queue (e.g. 'MyQueue')."/>
+ <metric property="messageCount" measurementType="dynamic" displayType="summary" displayName="Message Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The number of messages in the queue"/>
- <c:simple-property required="true" name="JNDIName" readOnly="true"
- description="This queue's JNDI name (e.g. '/queue/MyQueue')."/>
+ <metric property="scheduledMessageCount" measurementType="dynamic" displayType="detail" displayName="Scheduled Message Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The number of scheduled messages in the queue"/>
- <c:simple-property type="boolean" required="false" name="clustered" readOnly="true" defaultValue="false">
- <c:description>
- Is this queue clustered? For an existing queue, this property is read-only. If not specified
- when creating a new queue, the default value is false.
- </c:description>
- </c:simple-property>
+ <metric property="messageStatistics.count" measurementType="dynamic" displayType="detail" displayName="Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
+ description="The total message count since startup or last counter reset"/>
- <c:simple-property type="integer" required="false" name="downCacheSize" defaultValue="2000">
- <c:description>
- When paging messages to storage from a subscription, they first go into a "Down Cache" before
- being written to storage. This enables the write to occur as a single operation, thus aiding
- performance. This setting determines the maximum number of messages that the Down Cache will hold
- before they are flushed to storage.
- Updates to this property will not go into effect until the queue has been restarted.
- The default value is 2000.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="1"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="messageStatistics.countDelta" measurementType="dynamic" displayType="detail" displayName="Count Delta"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
+ description="The message count delta since last method call"/>
- <c:simple-property type="integer" required="false" name="fullSize" defaultValue="200000">
- <c:description>
- The maximum number of messages for the queue held in memory at any one time.
- The actual queue can hold many more messages than this, but these are paged to and from
- storage as necessary, as messages are added or consumed.
- Updates to this property will not go into effect until the queue has been restarted.
- The default value is 200000.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="1"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="messageStatistics.depth" measurementType="dynamic" displayType="detail" displayName="Depth"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
+ description="The current message count of pending messages within the queue waiting for dispatch"/>
- <c:simple-property type="integer" required="false" name="maxDeliveryAttempts" defaultValue="-1">
- <c:description>
- The number of delivery attempts before a message to a subscriber of this queue is moved to the
- DLQ. The default value is 10. A value of -1 indicates the default value should be used.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="-1"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="messageStatistics.depthDelta" measurementType="dynamic" displayType="detail" displayName="Depth Delta"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
+ description="The message count delta of pending messages since last method call"/>
- <c:simple-property type="integer" required="false" name="maxSize" defaultValue="-1">
- <c:description>
- The maximum number of messages this queue can hold before they are dropped.
- A value of -1 means there is no maximum. The default value is -1.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="-1"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="messageStatistics.timeLastUpdate" measurementType="dynamic" displayType="detail" displayName="Time Last Update"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="utilization"
+ description="The timestamp of the last message add"/>
- <c:simple-property type="integer" required="false" name="pageSize" defaultValue="2000">
- <c:description>
- When loading messages from a subscription, this is the maximum number of messages to
- pre-load in one operation. Must be less than Full Size and greater than or equal to Down Cache Size.
- Updates to this property will not go into effect until the queue has been restarted.
- The default value is 2000.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="1"/>
- </c:constraint>
- </c:simple-property>
+ <resource-configuration>
- <c:simple-property type="long" required="false" name="redeliveryDelay" units="milliseconds" defaultValue="-1">
- <c:description>
- The delay in milliseconds before a rolled back or recovered message is redelivered.
- Set to 0 to disable redelivery. The default value is 0. A value of -1 indicates the default value should be used.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="-1"/>
- </c:constraint>
- </c:simple-property>
+ <!-- See: https://anonsvn.jboss.org/repos/jbossas/trunk/messaging/src/main/org/jbos... -->
- <c:simple-property required="false" name="DLQ">
- <c:description>
- The JMX ObjectName of the dead letter queue (DLQ) for this queue (e.g.
- "jboss.messaging.destination:service=Queue,name=PrivateDLQ") - overrides the default DLQ on the
- server peer.
- </c:description>
- <c:constraint>
- <c:regex-constraint expression="[^:]+:.+"/>
- </c:constraint>
- </c:simple-property>
+ <c:simple-property required="true" name="name" readOnly="true"
+ description="The name of this queue (e.g. 'MyQueue')."/>
- <c:simple-property required="false" name="expiryQueue">
- <c:description>
- The JMX ObjectName of the expiry queue for this queue (e.g.
- "jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue") - overrides the default
- expiry queue on the server peer.
- </c:description>
- <c:constraint>
- <c:regex-constraint expression="[^:]+:.+"/>
- </c:constraint>
- </c:simple-property>
+ <c:simple-property required="true" name="JNDIName" readOnly="true"
+ description="This queue's JNDI name (e.g. '/queue/MyQueue')."/>
- <c:simple-property required="false" name="serverPeer">
- <c:description>
- The JMX ObjectName of the server peer this queue was deployed on (e.g.
- "jboss.messaging:service=ServerPeer"). Updates to this property will not go into effect until
- the queue has been restarted.
- </c:description>
- <c:constraint>
- <c:regex-constraint expression="[^:]+:.+"/>
- </c:constraint>
- </c:simple-property>
+ <c:simple-property type="boolean" required="false" name="clustered" readOnly="true" defaultValue="false">
+ <c:description>
+ Is this queue clustered? For an existing queue, this property is read-only. If not specified
+ when creating a new queue, the default value is false.
+ </c:description>
+ </c:simple-property>
- <c:list-property name="securityConfig" max="4" min="2"
- displayName="Security Configurations"
- description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
- <c:map-property name="role"
- displayName="Security Configuration Attributes"
- description="These are the attributes that define the role name, and if the role is allowed to read, write or create Messages on this Queue">
- <c:simple-property name="name"
- displayName="Name"
- description="Name of the Security Role. e.g. Guest"
- summary="true"
- required="true"/>
- <c:simple-property name="read"
- displayName="Read"
- description="Is this role allowed to read messages?"
- summary="true"
- required="false"
- type="boolean"/>
- <c:simple-property name="write"
- displayName="Write"
- description="Is this role allowed to write messages?"
- summary="true"
- required="false"
- type="boolean"/>
- <c:simple-property name="create"
- displayName="Create"
- description="Is this role allowed to create messages?"
- summary="true"
- required="false"
- type="boolean"/>
- </c:map-property>
+ <c:simple-property type="integer" required="false" name="downCacheSize" defaultValue="2000">
+ <c:description>
+ When paging messages to storage from a subscription, they first go into a "Down Cache" before
+ being written to storage. This enables the write to occur as a single operation, thus aiding
+ performance. This setting determines the maximum number of messages that the Down Cache will hold
+ before they are flushed to storage.
+ Updates to this property will not go into effect until the queue has been restarted.
+ The default value is 2000.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="1"/>
+ </c:constraint>
+ </c:simple-property>
- </c:list-property>
+ <c:simple-property type="integer" required="false" name="fullSize" defaultValue="200000">
+ <c:description>
+ The maximum number of messages for the queue held in memory at any one time.
+ The actual queue can hold many more messages than this, but these are paged to and from
+ storage as necessary, as messages are added or consumed.
+ Updates to this property will not go into effect until the queue has been restarted.
+ The default value is 200000.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="1"/>
+ </c:constraint>
+ </c:simple-property>
- </resource-configuration>
+ <c:simple-property type="integer" required="false" name="maxDeliveryAttempts" defaultValue="-1">
+ <c:description>
+ The number of delivery attempts before a message to a subscriber of this queue is moved to the
+ DLQ. The default value is 10. A value of -1 indicates the default value should be used.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="-1"/>
+ </c:constraint>
+ </c:simple-property>
- <help>
- <![CDATA[
- <p>The message counter metrics will not be collected by default. In order
- for these metrics to be collected for all Topics and Queues for a given application server instance,
- go to the instance's JMX Console, and invoke the
- <tt>enableMessageCounters</tt> operation on the <tt>jboss.messaging:service=ServerPeer</tt> MBean.
- To ensure the message counters are still enabled when the application server is restarted,
- edit that instance's <tt>deploy/messaging/messaging-service.xml</tt> file and set the
- <tt>EnableMessageCounters</tt> attribute to "true".</p>
- ]]>
- </help>
+ <c:simple-property type="integer" required="false" name="maxSize" defaultValue="-1">
+ <c:description>
+ The maximum number of messages this queue can hold before they are dropped.
+ A value of -1 means there is no maximum. The default value is -1.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="-1"/>
+ </c:constraint>
+ </c:simple-property>
- </service>
+ <c:simple-property type="integer" required="false" name="pageSize" defaultValue="2000">
+ <c:description>
+ When loading messages from a subscription, this is the maximum number of messages to
+ pre-load in one operation. Must be less than Full Size and greater than or equal to Down Cache Size.
+ Updates to this property will not go into effect until the queue has been restarted.
+ The default value is 2000.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="1"/>
+ </c:constraint>
+ </c:simple-property>
- <service name="Topic"
- class="JmsDestinationComponent"
- createDeletePolicy="both"
- subCategory="JMS Destinations"
- discovery="JmsDestinationDiscoveryComponent">
+ <c:simple-property type="long" required="false" name="redeliveryDelay" units="milliseconds" defaultValue="-1">
+ <c:description>
+ The delay in milliseconds before a rolled back or recovered message is redelivered.
+ Set to 0 to disable redelivery. The default value is 0. A value of -1 indicates the default value should be used.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="-1"/>
+ </c:constraint>
+ </c:simple-property>
- <plugin-configuration>
- <c:simple-property name="componentType" default="JMSDestination" readOnly="true"/>
- <c:simple-property name="componentSubtype" default="Topic" readOnly="true"/>
- <c:simple-property name="componentName" readOnly="true"/>
- <c:simple-property name="templateName" default="TopicTemplate" readOnly="true"/>
- <c:simple-property name="componentNameProperty" default="JNDIName" readOnly="true">
- <c:description>
- The name of the Resource configuration property whose value should be used as the
- underlying ManagedComponent name when creating a new Resource of this type.
- </c:description>
- </c:simple-property>
- <c:group name="managedPropertyGroup" displayName="managedPropertyGroup" hiddenByDefault="true">
- <c:simple-property name="jms-type" default="topic"/>
- <c:map-property name="customProperties"
- description="Maps a list of custom property names to the the fully qualified class names of the org.rhq.plugins.jbossas5.adapter.api.PropertyAdapter implementations that should be used for those properties.">
- <c:simple-property name="securityConfig"
- default="org.rhq.plugins.jbossas5.adapter.impl.configuration.custom.JMSSecurityConfigAdapter"/>
- </c:map-property>
- </c:group>
- </plugin-configuration>
+ <c:simple-property required="false" name="DLQ">
+ <c:description>
+ The JMX ObjectName of the dead letter queue (DLQ) for this queue (e.g.
+ "jboss.messaging.destination:service=Queue,name=PrivateDLQ") - overrides the default DLQ on the
+ server peer.
+ </c:description>
+ <c:constraint>
+ <c:regex-constraint expression="[^:]+:.+"/>
+ </c:constraint>
+ </c:simple-property>
- &destinationOperations;
-
- <operation name="listAllMessages" displayName="List All Messages" description="List all messages for the specified subscription with the specified selector">
- <parameters>
- <c:simple-property required="false" name="arg#0" displayName="subscriptionID"/>
- <c:simple-property required="false" name="arg#1" displayName="selector"/>
- </parameters>
- <results>
- <c:notes>List all messages for the specified subscription with the specified selector</c:notes>
- <c:list-property name="result">
- <c:map-property required="false" name="element">
- <c:simple-property required="false" name="JMSCorrelationID"/>
- <c:simple-property required="false" name="JMSMessageID"/>
- <c:simple-property type="long" required="false" name="JMSTimestamp"/>
- </c:map-property>
- </c:list-property>
- </results>
- </operation>
-
- <operation name="listDurableMessages" displayName="List Durable Messages" description="List all durable messages for the specified subscription with the specified selector">
- <parameters>
- <c:simple-property required="false" name="arg#0" displayName="subscriptionID"/>
- <c:simple-property required="false" name="arg#1" displayName="selector"/>
- </parameters>
- <results>
- <c:notes>List all durable messages for the specified subscription with the specified selector</c:notes>
- <c:list-property name="result">
- <c:map-property required="false" name="element">
- <c:simple-property required="false" name="JMSCorrelationID"/>
- <c:simple-property required="false" name="JMSMessageID"/>
- <c:simple-property type="long" required="false" name="JMSTimestamp"/>
- </c:map-property>
- </c:list-property>
- </results>
- </operation>
-
- <operation name="listNonDurableMessages" displayName="List Non Durable Messages" description="List all non durable messages for the specified subscription with the specified selector">
- <parameters>
- <c:simple-property required="false" name="arg#0" displayName="subscriptionID"/>
- <c:simple-property required="false" name="arg#1" displayName="selector"/>
- </parameters>
- <results>
- <c:notes>List all non durable messages for the specified subscription with the specified selector</c:notes>
- <c:list-property name="result">
- <c:map-property required="false" name="element">
- <c:simple-property required="false" name="JMSCorrelationID"/>
- <c:simple-property required="false" name="JMSMessageID"/>
- <c:simple-property type="long" required="false" name="JMSTimestamp"/>
- </c:map-property>
- </c:list-property>
- </results>
- </operation>
-
- <operation name="listAllSubscriptions" displayName="List All Subscriptions"
- description="Return all subscriptions for the topic">
- <results>
- <c:notes>Return all subscriptions for the topic</c:notes>
- &subscriptionsResultProperty;
- </results>
- </operation>
-
- <operation name="listAllSubscriptionsAsHTML" displayName="List All Subscriptions As HTML"
- description="Return all subscriptions for the topic as HTML">
- <results>
- <c:notes>Return all subscriptions for the topic as HTML</c:notes>
- <c:simple-property name="result" type="longString"/>
- </results>
- </operation>
-
- <operation name="listDurableSubscriptions" displayName="List Durable Subscriptions"
- description="Return all durable subscriptions for the topic">
- <results>
- <c:notes>Return all durable subscriptions for the topic</c:notes>
- &subscriptionsResultProperty;
- </results>
- </operation>
-
- <operation name="listDurableSubscriptionsAsHTML" displayName="List Durable Subscriptions As HTML"
- description="Return all durable subscriptions for the topic as HTML">
- <results>
- <c:notes>Return all durable subscriptions for the topic as HTML</c:notes>
- <c:simple-property name="result" type="longString"/>
- </results>
- </operation>
-
- <operation name="listNonDurableSubscriptions" displayName="List Non-Durable Subscriptions"
- description="Return all non-durable subscriptions for the topic">
- <results>
- <c:notes>Return all non-durable subscriptions for the topic</c:notes>
- &subscriptionsResultProperty;
- </results>
- </operation>
-
- <operation name="listNonDurableSubscriptionsAsHTML" displayName="List Non-Durable Subscriptions As HTML"
- description="Return all non-durable subscriptions for the topic as HTML">
- <results>
- <c:notes>Return all non-durable subscriptions for the topic as HTML</c:notes>
- <c:simple-property name="result" type="longString"/>
- </results>
- </operation>
+ <c:simple-property required="false" name="expiryQueue">
+ <c:description>
+ The JMX ObjectName of the expiry queue for this queue (e.g.
+ "jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue") - overrides the default
+ expiry queue on the server peer.
+ </c:description>
+ <c:constraint>
+ <c:regex-constraint expression="[^:]+:.+"/>
+ </c:constraint>
+ </c:simple-property>
- &managedObjectMetrics;
+ <c:simple-property required="false" name="serverPeer">
+ <c:description>
+ The JMX ObjectName of the server peer this queue was deployed on (e.g.
+ "jboss.messaging:service=ServerPeer"). Updates to this property will not go into effect until
+ the queue has been restarted.
+ </c:description>
+ <c:constraint>
+ <c:regex-constraint expression="[^:]+:.+"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:list-property name="securityConfig" max="4" min="2"
+ displayName="Security Configurations"
+ description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
+ <c:map-property name="role"
+ displayName="Security Configuration Attributes"
+ description="These are the attributes that define the role name, and if the role is allowed to read, write or create Messages on this Queue">
+ <c:simple-property name="name"
+ displayName="Name"
+ description="Name of the Security Role. e.g. Guest"
+ summary="true"
+ required="true"/>
+ <c:simple-property name="read"
+ displayName="Read"
+ description="Is this role allowed to read messages?"
+ summary="true"
+ required="false"
+ type="boolean"/>
+ <c:simple-property name="write"
+ displayName="Write"
+ description="Is this role allowed to write messages?"
+ summary="true"
+ required="false"
+ type="boolean"/>
+ <c:simple-property name="create"
+ displayName="Create"
+ description="Is this role allowed to create messages?"
+ summary="true"
+ required="false"
+ type="boolean"/>
+ </c:map-property>
+
+ </c:list-property>
- <!-- Traits -->
+ </resource-configuration>
- <metric property="createdProgrammatically" displayType="summary"
- defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
- description="Was this topic created programmatically? If Yes, the topic will not survive a restart of the application server. If No, the topic was created via a deployment XML file."/>
+ <help>
+ <![CDATA[
+ <p>The message counter metrics will not be collected by default. In order
+ for these metrics to be collected for all Topics and Queues for a given application server instance,
+ go to the instance's JMX Console, and invoke the
+ <tt>enableMessageCounters</tt> operation on the <tt>jboss.messaging:service=ServerPeer</tt> MBean.
+ To ensure the message counters are still enabled when the application server is restarted,
+ edit that instance's <tt>deploy/messaging/messaging-service.xml</tt> file and set the
+ <tt>EnableMessageCounters</tt> attribute to "true".</p>
+ ]]>
+ </help>
- <!-- NOTE: We have to make this a trait rather than a resource config prop due to a bug in JBMESSAGING
- (see https://jira.jboss.org/jira/browse/JBAS-6721). -->
- <metric property="messageCounterHistoryDayLimit"
- defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
- description="This topic's message counter history day limit - <0: unlimited, =0: history disabled, >0: maximum day count"/>
+ </service>
- <!-- Numerics -->
+
+ <service name="Topic"
+ class="JmsDestinationComponent"
+ createDeletePolicy="both"
+ discovery="JmsDestinationDiscoveryComponent"
+ description="a JMS topic">
- <metric property="allMessageCount" measurementType="dynamic" displayType="summary" displayName="All Message Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The count of all messages in all subscriptions to this topic"/>
+ <plugin-configuration>
+ <c:simple-property name="componentType" default="JMSDestination" readOnly="true"/>
+ <c:simple-property name="componentSubtype" default="Topic" readOnly="true"/>
+ <c:simple-property name="componentName" readOnly="true"/>
+ <c:simple-property name="templateName" default="TopicTemplate" readOnly="true"/>
+ <c:simple-property name="componentNameProperty" default="JNDIName" readOnly="true">
+ <c:description>
+ The name of the Resource configuration property whose value should be used as the
+ underlying ManagedComponent name when creating a new Resource of this type.
+ </c:description>
+ </c:simple-property>
+ <c:group name="managedPropertyGroup" displayName="managedPropertyGroup" hiddenByDefault="true">
+ <c:simple-property name="jms-type" default="topic"/>
+ <c:map-property name="customProperties"
+ description="Maps a list of custom property names to the the fully qualified class names of the org.rhq.plugins.jbossas5.adapter.api.PropertyAdapter implementations that should be used for those properties.">
+ <c:simple-property name="securityConfig"
+ default="org.rhq.plugins.jbossas5.adapter.impl.configuration.custom.JMSSecurityConfigAdapter"/>
+ </c:map-property>
+ </c:group>
+ </plugin-configuration>
- <metric property="allSubscriptionsCount" measurementType="dynamic" displayType="summary" displayName="All Subscriptions Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The count of all subscriptions to this topic"/>
+ &destinationOperations;
- <metric property="durableMessageCount" measurementType="dynamic" displayType="detail" displayName="Durable Message Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The count of all messages for all durable subscriptions to this topic"/>
+ <operation name="listAllMessages" displayName="List All Messages" description="List all messages for the specified subscription with the specified selector">
+ <parameters>
+ <c:simple-property required="false" name="arg#0" displayName="subscriptionID"/>
+ <c:simple-property required="false" name="arg#1" displayName="selector"/>
+ </parameters>
+ <results>
+ <c:notes>List all messages for the specified subscription with the specified selector</c:notes>
+ <c:list-property name="result">
+ <c:map-property required="false" name="element">
+ <c:simple-property required="false" name="JMSCorrelationID"/>
+ <c:simple-property required="false" name="JMSMessageID"/>
+ <c:simple-property type="long" required="false" name="JMSTimestamp"/>
+ </c:map-property>
+ </c:list-property>
+ </results>
+ </operation>
- <metric property="durableSubscriptionsCount" measurementType="dynamic" displayType="detail" displayName="Durable Subscriptions Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The count of all durable subscriptions to this topic"/>
+ <operation name="listDurableMessages" displayName="List Durable Messages" description="List all durable messages for the specified subscription with the specified selector">
+ <parameters>
+ <c:simple-property required="false" name="arg#0" displayName="subscriptionID"/>
+ <c:simple-property required="false" name="arg#1" displayName="selector"/>
+ </parameters>
+ <results>
+ <c:notes>List all durable messages for the specified subscription with the specified selector</c:notes>
+ <c:list-property name="result">
+ <c:map-property required="false" name="element">
+ <c:simple-property required="false" name="JMSCorrelationID"/>
+ <c:simple-property required="false" name="JMSMessageID"/>
+ <c:simple-property type="long" required="false" name="JMSTimestamp"/>
+ </c:map-property>
+ </c:list-property>
+ </results>
+ </operation>
- <metric property="nonDurableMessageCount" measurementType="dynamic" displayType="detail" displayName="Non Durable Message Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The count of all messages in all non durable subscriptions to this topic"/>
+ <operation name="listNonDurableMessages" displayName="List Non Durable Messages" description="List all non durable messages for the specified subscription with the specified selector">
+ <parameters>
+ <c:simple-property required="false" name="arg#0" displayName="subscriptionID"/>
+ <c:simple-property required="false" name="arg#1" displayName="selector"/>
+ </parameters>
+ <results>
+ <c:notes>List all non durable messages for the specified subscription with the specified selector</c:notes>
+ <c:list-property name="result">
+ <c:map-property required="false" name="element">
+ <c:simple-property required="false" name="JMSCorrelationID"/>
+ <c:simple-property required="false" name="JMSMessageID"/>
+ <c:simple-property type="long" required="false" name="JMSTimestamp"/>
+ </c:map-property>
+ </c:list-property>
+ </results>
+ </operation>
- <metric property="nonDurableSubscriptionsCount" measurementType="dynamic" displayType="detail" displayName="Non Durable Subscriptions Count"
- defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
- description="The count of all non durable subscriptions to this topic"/>
+ <operation name="listAllSubscriptions" displayName="List All Subscriptions"
+ description="Return all subscriptions for the topic">
+ <results>
+ <c:notes>Return all subscriptions for the topic</c:notes>
+ &subscriptionsResultProperty;
+ </results>
+ </operation>
- <resource-configuration>
+ <operation name="listAllSubscriptionsAsHTML" displayName="List All Subscriptions As HTML"
+ description="Return all subscriptions for the topic as HTML">
+ <results>
+ <c:notes>Return all subscriptions for the topic as HTML</c:notes>
+ <c:simple-property name="result" type="longString"/>
+ </results>
+ </operation>
- <!-- See: https://anonsvn.jboss.org/repos/jbossas/trunk/messaging/src/main/org/jbos... -->
+ <operation name="listDurableSubscriptions" displayName="List Durable Subscriptions"
+ description="Return all durable subscriptions for the topic">
+ <results>
+ <c:notes>Return all durable subscriptions for the topic</c:notes>
+ &subscriptionsResultProperty;
+ </results>
+ </operation>
- <c:simple-property required="true" name="name" readOnly="true"
- description="The name of this topic (e.g. 'MyTopic')."/>
+ <operation name="listDurableSubscriptionsAsHTML" displayName="List Durable Subscriptions As HTML"
+ description="Return all durable subscriptions for the topic as HTML">
+ <results>
+ <c:notes>Return all durable subscriptions for the topic as HTML</c:notes>
+ <c:simple-property name="result" type="longString"/>
+ </results>
+ </operation>
- <c:simple-property required="true" name="JNDIName" readOnly="true"
- description="This topic's JNDI name (e.g. '/topic/MyTopic')"/>
+ <operation name="listNonDurableSubscriptions" displayName="List Non-Durable Subscriptions"
+ description="Return all non-durable subscriptions for the topic">
+ <results>
+ <c:notes>Return all non-durable subscriptions for the topic</c:notes>
+ &subscriptionsResultProperty;
+ </results>
+ </operation>
- <c:simple-property type="boolean" required="false" name="clustered" readOnly="true" defaultValue="false">
- <c:description>
- Is this topic clustered? For an existing topic, this property is read-only. If not specified
- when creating a new topic, the default value is false.
- </c:description>
- </c:simple-property>
+ <operation name="listNonDurableSubscriptionsAsHTML" displayName="List Non-Durable Subscriptions As HTML"
+ description="Return all non-durable subscriptions for the topic as HTML">
+ <results>
+ <c:notes>Return all non-durable subscriptions for the topic as HTML</c:notes>
+ <c:simple-property name="result" type="longString"/>
+ </results>
+ </operation>
- <c:simple-property type="integer" required="false" name="downCacheSize" defaultValue="2000">
- <c:description>
- When paging messages to storage from a subscription, they first go into a "Down Cache" before
- being written to storage. This enables the write to occur as a single operation, thus aiding
- performance. This setting determines the maximum number of messages that the Down Cache will hold
- before they are flushed to storage.
- Updates to this property will not go into effect until the topic has been restarted.
- The default value is 2000.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="1"/>
- </c:constraint>
- </c:simple-property>
+ &managedObjectMetrics;
- <c:simple-property type="integer" required="false" name="fullSize" defaultValue="200000">
- <c:description>
- The maximum number of messages held by the topic subscriptions in memory at any one time.
- The actual subscription can hold many more messages than this, but these are paged to and from
- storage as necessary, as messages are added or consumed.
- Updates to this property will not go into effect until the topic has been restarted.
- The default value is 200000.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="1"/>
- </c:constraint>
- </c:simple-property>
+ <!-- Traits -->
- <c:simple-property type="integer" required="false" name="maxDeliveryAttempts" defaultValue="-1">
- <c:description>
- The number of delivery attempts before a message to a subscriber of this topic is moved to the
- DLQ. The default value is 10. A value of -1 indicates the default value should be used.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="-1"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="createdProgrammatically" displayType="summary"
+ defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
+ description="Was this topic created programmatically? If Yes, the topic will not survive a restart of the application server. If No, the topic was created via a deployment XML file."/>
- <c:simple-property type="integer" required="false" name="maxSize" defaultValue="-1">
- <c:description>
- The maximum number of messages this topic can hold before they are dropped.
- A value of -1 means there is no maximum. The default value is -1.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="-1"/>
- </c:constraint>
- </c:simple-property>
+ <!-- NOTE: We have to make this a trait rather than a resource config prop due to a bug in JBMESSAGING
+ (see https://jira.jboss.org/jira/browse/JBAS-6721). -->
+ <metric property="messageCounterHistoryDayLimit"
+ defaultOn="true" defaultInterval="600000" dataType="trait" category="performance"
+ description="This topic's message counter history day limit - <0: unlimited, =0: history disabled, >0: maximum day count"/>
- <c:simple-property type="integer" required="false" name="pageSize" defaultValue="2000">
- <c:description>
- When loading messages from a subscription, this is the maximum number of messages to
- pre-load in one operation. Must be less than Full Size and greater than or equal to Down Cache Size.
- Updates to this property will not go into effect until the topic has been restarted.
- The default value is 2000.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="1"/>
- </c:constraint>
- </c:simple-property>
+ <!-- Numerics -->
- <c:simple-property type="long" required="false" name="redeliveryDelay" units="milliseconds" defaultValue="-1">
- <c:description>
- The delay in milliseconds before a rolled back or recovered message is redelivered.
- Set to 0 to disable redelivery. The default value is 0. A value of -1 indicates the default value should be used.
- </c:description>
- <c:constraint>
- <c:integer-constraint minimum="-1"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="allMessageCount" measurementType="dynamic" displayType="summary" displayName="All Message Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The count of all messages in all subscriptions to this topic"/>
- <c:simple-property required="false" name="DLQ">
- <c:description>
- The JMX ObjectName of the dead letter queue (DLQ) for this topic (e.g.
- "jboss.messaging.destination:service=Queue,name=PrivateDLQ") - overrides the default DLQ on the
- server peer.
- </c:description>
- <c:constraint>
- <c:regex-constraint expression="[^:]+:.+"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="allSubscriptionsCount" measurementType="dynamic" displayType="summary" displayName="All Subscriptions Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The count of all subscriptions to this topic"/>
- <c:simple-property required="false" name="expiryQueue">
- <c:description>
- The JMX ObjectName of the expiry queue for this topic (e.g.
- "jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue") - overrides the default
- expiry queue on the server peer.
- </c:description>
- <c:constraint>
- <c:regex-constraint expression="[^:]+:.+"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="durableMessageCount" measurementType="dynamic" displayType="detail" displayName="Durable Message Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The count of all messages for all durable subscriptions to this topic"/>
- <c:simple-property required="false" name="serverPeer">
- <c:description>
- The JMX ObjectName of the server peer this topic was deployed on (e.g.
- "jboss.messaging:service=ServerPeer"). Updates to this property will not go into effect until
- the topic has been restarted.
- </c:description>
- <c:constraint>
- <c:regex-constraint expression="[^:]+:.+"/>
- </c:constraint>
- </c:simple-property>
+ <metric property="durableSubscriptionsCount" measurementType="dynamic" displayType="detail" displayName="Durable Subscriptions Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The count of all durable subscriptions to this topic"/>
- <c:list-property name="securityConfig" max="4" min="2"
- displayName="Security Configurations"
- description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
- <c:map-property name="role"
- displayName="Security Configuration Attributes"
- description="These are the attributes that define the role name, and if the role is allowed to read, write or create Messages on this Queue">
- <c:simple-property name="name"
- displayName="Name"
- description="Name of the Security Role. e.g. Guest"
- summary="true"
- required="true"/>
- <c:simple-property name="read"
- displayName="Read"
- description="Is this role allowed to read messages?"
- summary="true"
- required="false"
- type="boolean"/>
- <c:simple-property name="write"
- displayName="Write"
- description="Is this role allowed to write messages?"
- summary="true"
- required="false"
- type="boolean"/>
- <c:simple-property name="create"
- displayName="Create"
- description="Is this role allowed to create messages?"
- summary="true"
- required="false"
- type="boolean"/>
- </c:map-property>
- </c:list-property>
+ <metric property="nonDurableMessageCount" measurementType="dynamic" displayType="detail" displayName="Non Durable Message Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The count of all messages in all non durable subscriptions to this topic"/>
- </resource-configuration>
+ <metric property="nonDurableSubscriptionsCount" measurementType="dynamic" displayType="detail" displayName="Non Durable Subscriptions Count"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="throughput"
+ description="The count of all non durable subscriptions to this topic"/>
+
+ <resource-configuration>
+
+ <!-- See: https://anonsvn.jboss.org/repos/jbossas/trunk/messaging/src/main/org/jbos... -->
+
+ <c:simple-property required="true" name="name" readOnly="true"
+ description="The name of this topic (e.g. 'MyTopic')."/>
+
+ <c:simple-property required="true" name="JNDIName" readOnly="true"
+ description="This topic's JNDI name (e.g. '/topic/MyTopic')"/>
+
+ <c:simple-property type="boolean" required="false" name="clustered" readOnly="true" defaultValue="false">
+ <c:description>
+ Is this topic clustered? For an existing topic, this property is read-only. If not specified
+ when creating a new topic, the default value is false.
+ </c:description>
+ </c:simple-property>
+
+ <c:simple-property type="integer" required="false" name="downCacheSize" defaultValue="2000">
+ <c:description>
+ When paging messages to storage from a subscription, they first go into a "Down Cache" before
+ being written to storage. This enables the write to occur as a single operation, thus aiding
+ performance. This setting determines the maximum number of messages that the Down Cache will hold
+ before they are flushed to storage.
+ Updates to this property will not go into effect until the topic has been restarted.
+ The default value is 2000.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="1"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:simple-property type="integer" required="false" name="fullSize" defaultValue="200000">
+ <c:description>
+ The maximum number of messages held by the topic subscriptions in memory at any one time.
+ The actual subscription can hold many more messages than this, but these are paged to and from
+ storage as necessary, as messages are added or consumed.
+ Updates to this property will not go into effect until the topic has been restarted.
+ The default value is 200000.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="1"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:simple-property type="integer" required="false" name="maxDeliveryAttempts" defaultValue="-1">
+ <c:description>
+ The number of delivery attempts before a message to a subscriber of this topic is moved to the
+ DLQ. The default value is 10. A value of -1 indicates the default value should be used.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="-1"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:simple-property type="integer" required="false" name="maxSize" defaultValue="-1">
+ <c:description>
+ The maximum number of messages this topic can hold before they are dropped.
+ A value of -1 means there is no maximum. The default value is -1.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="-1"/>
+ </c:constraint>
+ </c:simple-property>
- <help>
- <![CDATA[
- <p>The message counter metrics will not be collected by default. In order
- for these metrics to be collected for all Topics and Queues for a given application server instance,
- go to the instance's JMX Console, and invoke the
- <tt>enableMessageCounters</tt> operation on the <tt>jboss.messaging:service=ServerPeer</tt> MBean.
- To ensure the message counters are still enabled when the application server is restarted,
- edit that instance's <tt>deploy/messaging/messaging-service.xml</tt> file and set the
- <tt>EnableMessageCounters</tt> attribute to "true".</p>
- ]]>
- </help>
+ <c:simple-property type="integer" required="false" name="pageSize" defaultValue="2000">
+ <c:description>
+ When loading messages from a subscription, this is the maximum number of messages to
+ pre-load in one operation. Must be less than Full Size and greater than or equal to Down Cache Size.
+ Updates to this property will not go into effect until the topic has been restarted.
+ The default value is 2000.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="1"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:simple-property type="long" required="false" name="redeliveryDelay" units="milliseconds" defaultValue="-1">
+ <c:description>
+ The delay in milliseconds before a rolled back or recovered message is redelivered.
+ Set to 0 to disable redelivery. The default value is 0. A value of -1 indicates the default value should be used.
+ </c:description>
+ <c:constraint>
+ <c:integer-constraint minimum="-1"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:simple-property required="false" name="DLQ">
+ <c:description>
+ The JMX ObjectName of the dead letter queue (DLQ) for this topic (e.g.
+ "jboss.messaging.destination:service=Queue,name=PrivateDLQ") - overrides the default DLQ on the
+ server peer.
+ </c:description>
+ <c:constraint>
+ <c:regex-constraint expression="[^:]+:.+"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:simple-property required="false" name="expiryQueue">
+ <c:description>
+ The JMX ObjectName of the expiry queue for this topic (e.g.
+ "jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue") - overrides the default
+ expiry queue on the server peer.
+ </c:description>
+ <c:constraint>
+ <c:regex-constraint expression="[^:]+:.+"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:simple-property required="false" name="serverPeer">
+ <c:description>
+ The JMX ObjectName of the server peer this topic was deployed on (e.g.
+ "jboss.messaging:service=ServerPeer"). Updates to this property will not go into effect until
+ the topic has been restarted.
+ </c:description>
+ <c:constraint>
+ <c:regex-constraint expression="[^:]+:.+"/>
+ </c:constraint>
+ </c:simple-property>
+
+ <c:list-property name="securityConfig" max="4" min="2"
+ displayName="Security Configurations"
+ description="This element specifies a XML fragment which describes the access control list to be used by the SecurityManager to authorize client operations against the destination. The content model is the same as for the SecurityManager SecurityConf attribute.">
+ <c:map-property name="role"
+ displayName="Security Configuration Attributes"
+ description="These are the attributes that define the role name, and if the role is allowed to read, write or create Messages on this Queue">
+ <c:simple-property name="name"
+ displayName="Name"
+ description="Name of the Security Role. e.g. Guest"
+ summary="true"
+ required="true"/>
+ <c:simple-property name="read"
+ displayName="Read"
+ description="Is this role allowed to read messages?"
+ summary="true"
+ required="false"
+ type="boolean"/>
+ <c:simple-property name="write"
+ displayName="Write"
+ description="Is this role allowed to write messages?"
+ summary="true"
+ required="false"
+ type="boolean"/>
+ <c:simple-property name="create"
+ displayName="Create"
+ description="Is this role allowed to create messages?"
+ summary="true"
+ required="false"
+ type="boolean"/>
+ </c:map-property>
+ </c:list-property>
+
+ </resource-configuration>
+
+ <help>
+ <![CDATA[
+ <p>The message counter metrics will not be collected by default. In order
+ for these metrics to be collected for all Topics and Queues for a given application server instance,
+ go to the instance's JMX Console, and invoke the
+ <tt>enableMessageCounters</tt> operation on the <tt>jboss.messaging:service=ServerPeer</tt> MBean.
+ To ensure the message counters are still enabled when the application server is restarted,
+ edit that instance's <tt>deploy/messaging/messaging-service.xml</tt> file and set the
+ <tt>EnableMessageCounters</tt> attribute to "true".</p>
+ ]]>
+ </help>
+
+ </service>
</service>
commit a0f0c815a55fdd39b1d0aee91d09ce984e17e781
Merge: 6a9cbfc... 1fa6a52...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Thu May 20 16:41:35 2010 -0400
Merge branch 'bugfixes' of ssh://git.fedorahosted.org/git/rhq/rhq into bugfixes
commit 1fa6a522649d3e06575c32fd76f5bc1130b5f084
Merge: 0224d0f... 794e0d7...
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Thu May 20 21:35:51 2010 +0200
Merge branch 'bugfixes' of ssh://git.fedorahosted.org/git/rhq/rhq into bugfixes
diff --cc modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java
index f827aa0,8601b51..c57932c
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java
@@@ -1993,7 -1816,9 +1993,7 @@@ public class ContentSourceManagerBean i
return outputPackageVersionBitsRangeHelper(resourceId, packageDetailsKey, outputStream, startByte, endByte,
packageVersion.getId());
}
-
+
- @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- @TransactionTimeout(90 * 60)
public boolean downloadPackageBits(int resourceId, PackageDetailsKey packageDetailsKey){
Query query = entityManager.createNamedQuery(PackageVersion.QUERY_FIND_ID_BY_PACKAGE_DETAILS_KEY_AND_RES_ID);
query.setParameter("packageName", packageDetailsKey.getName());
@@@ -2062,11 -1887,10 +2062,11 @@@
// won't affect the time we are in in this method's tx (I hope that's how it works).
// This is because this method itself may take a long time to send the data to the output stream
// and we don't want out tx timing out due to the time it takes downloading.
+ InputStream stream = preloadPackageBits(pvcs);
PackageBits bits = null;
- bits = contentSourceManager.downloadPackageBits(subjectManager.getOverlord(), pvcs);
+ bits = preparePackageBits(subjectManager.getOverlord(),stream, pvcs);
}catch(Exception e){
- return false;
+ return false;
}
}
return true;
commit 0224d0fd1f01be9204d4453c14d25a002292b400
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Thu May 20 20:59:22 2010 +0200
BZ 566235 - fixed the problem with timeouts on streaming.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java
index 755a88f..f827aa0 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/content/ContentSourceManagerBean.java
@@ -19,6 +19,7 @@
package org.rhq.enterprise.server.content;
import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -51,8 +52,6 @@ import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.hibernate.lob.BlobImpl;
-import org.hibernate.lob.SerializableBlob;
import org.jboss.annotation.ejb.TransactionTimeout;
import org.jboss.util.StringPropertyReplacer;
import org.rhq.core.domain.auth.Subject;
@@ -789,7 +788,7 @@ public class ContentSourceManagerBean implements ContentSourceManagerLocal {
throw new RuntimeException(t);
}
}
-
+
@RequiredPermission(Permission.MANAGE_INVENTORY)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@TransactionTimeout(90 * 60)
@@ -948,6 +947,184 @@ public class ContentSourceManagerBean implements ContentSourceManagerLocal {
return packageBits;
}
+ private InputStream preloadPackageBits(PackageVersionContentSource pvcs) throws Exception{
+ PackageVersionContentSourcePK pk = pvcs.getPackageVersionContentSourcePK();
+ int contentSourceId = pk.getContentSource().getId();
+ int packageVersionId = pk.getPackageVersion().getId();
+ String packageVersionLocation = pvcs.getLocation();
+
+ ContentServerPluginContainer pc = ContentManagerHelper.getPluginContainer();
+ InputStream bitsStream = pc.getAdapterManager().loadPackageBits(contentSourceId, packageVersionLocation);
+
+ PackageVersion pv = entityManager.find(PackageVersion.class, packageVersionId);
+
+ switch (pk.getContentSource().getDownloadMode()) {
+ case NEVER: {
+ return null; // no-op, our content source was told to never download package bits
+ }
+
+ case DATABASE: {
+ log.debug("Downloading package bits to DB for package located at [" + packageVersionLocation
+ + "] on content source [" + contentSourceId + "]");
+ File tempFile = File.createTempFile("JonContent", "");
+ tempFile.deleteOnExit();
+ OutputStream tempStream = new BufferedOutputStream(new FileOutputStream(tempFile));
+ StreamUtil.copy(bitsStream, tempStream, true);
+ InputStream inp = new BufferedInputStream(new FileInputStream(tempFile));
+ return inp;
+ }
+
+ case FILESYSTEM: {
+ log.debug("Downloading package bits to filesystem for package located at [" + packageVersionLocation
+ + "] on content source [" + contentSourceId + "]");
+ File outputFile = getPackageBitsLocalFileAndCreateParentDir(pv.getId(), pv.getFileName());
+ log.info("OutPutFile is located at: " + outputFile);
+ boolean download = false;
+
+ if (outputFile.exists()) {
+ // hmmm... it already exists, maybe we already have it?
+ // if the MD5's match, just ignore this download request and continue on
+ // If they are different we re-download
+ String expectedMD5 = (pv.getMD5() != null) ? pv.getMD5() : "<unspecified MD5>";
+ String actualMD5 = MessageDigestGenerator.getDigestString(outputFile);
+ if (!expectedMD5.trim().toLowerCase().equals(actualMD5.toLowerCase())) {
+ log.error("Already have package bits for [" + pv + "] located at [" + outputFile
+ + "] but the MD5 hashcodes do not match. Expected MD5=[" + expectedMD5
+ + "], Actual MD5=[" + actualMD5 + "] - redownloading package");
+ download = true;
+ } else {
+ log.info("Asked to download package bits but we already have it at [" + outputFile
+ + "] with matching MD5 of [" + actualMD5 + "]");
+ download = false;
+ }
+ } else {
+ download = true;
+ }
+ if (download) {
+ StreamUtil.copy(bitsStream, new FileOutputStream(outputFile), true);
+ bitsStream = null;
+ }
+ break;
+ }
+
+ default: {
+ throw new IllegalStateException(" Unknown download mode - this is a bug, please report it: " + pvcs);
+ }
+ }
+
+ return null;
+ }
+
+ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
+ @TransactionTimeout(40 * 60)
+ private PackageBits preparePackageBits(Subject subject,InputStream bitsStream, PackageVersionContentSource pvcs) {
+ PackageVersionContentSourcePK pk = pvcs.getPackageVersionContentSourcePK();
+ int contentSourceId = pk.getContentSource().getId();
+ int packageVersionId = pk.getPackageVersion().getId();
+ String packageVersionLocation = pvcs.getLocation();
+
+ PackageBits packageBits = null;
+
+ try {
+
+ Connection conn = null;
+ PreparedStatement ps = null;
+ PreparedStatement ps2 = null;
+ try {
+ packageBits = new PackageBits();
+
+ entityManager.persist(packageBits);
+
+ PackageVersion pv = entityManager.find(PackageVersion.class, packageVersionId);
+ pv.setPackageBits(packageBits);
+
+ entityManager.flush(); // push the new package bits row to the DB
+
+ if (pk.getContentSource().getDownloadMode() == DownloadMode.DATABASE) {
+ packageBits = entityManager.find(PackageBits.class, packageBits.getId());
+ //we need to save not null value so that we can in next step load the value as a Blob
+ // packageBits.setBits(new String("a").getBytes());
+ packageBits.setBits(new String("a").getBytes());
+ entityManager.merge(packageBits);
+ entityManager.flush();
+
+ conn = dataSource.getConnection();
+ //we are loading the PackageBits saved in the previous step
+ //we need to lock the row which will be updated so we are using FOR UPDATE
+ ps = conn.prepareStatement("SELECT BITS FROM " + PackageBits.TABLE_NAME + " WHERE ID = ? FOR UPDATE");
+ ps.setInt(1, packageBits.getId());
+ ResultSet rs = ps.executeQuery();
+ if (rs != null) {
+ while (rs.next()) {
+
+ //We can not create a blob directly because BlobImpl from Hibernate is not acceptable
+ //for oracle and Connection.createBlob is not working on postgres.
+ //This blob will be not empty because we saved there a bytes from String("a").
+ Blob blb = rs.getBlob(1);
+
+ StreamUtil.copy(bitsStream, blb.setBinaryStream(1), false);
+ bitsStream.close();
+ ps2 = conn.prepareStatement("UPDATE " + PackageBits.TABLE_NAME + " SET bits = ? where id = ?");
+ ps2.setBlob(1, blb);
+ ps2.setInt(2, packageBits.getId());
+ if (ps2.execute()) {
+ throw new Exception("Did not download the package bits to the DB for ");
+ }
+ ps2.close();
+ }
+ }
+ ps.close();
+ conn.close();
+
+ } else {
+ //CONTENT IS ALLREADY LOADED
+ }
+ } finally {
+ if (ps != null) {
+ try {
+ ps.close();
+ } catch (Exception e) {
+ log.warn("Failed to close prepared statement for package bits [" + packageVersionLocation
+ + "] on content source [" + contentSourceId + "]");
+ }
+ }
+
+ if (ps2 != null) {
+ try {
+ ps2.close();
+ } catch (Exception e) {
+ log.warn("Failed to close prepared statement for package bits [" + packageVersionLocation
+ + "] on content source [" + contentSourceId + "]");
+ }
+ }
+
+ if (conn != null) {
+ try {
+ conn.close();
+ } catch (Exception e) {
+ log.warn("Failed to close connection for package bits [" + packageVersionLocation
+ + "] on content source [" + contentSourceId + "]");
+ }
+ }
+ }
+ } catch (Throwable t) {
+ // put the cause in here using ThrowableUtil because it'll dump SQL nextException messages too
+ throw new RuntimeException("Did not download the package bits for [" + pvcs + "]. Cause: "
+ + ThrowableUtil.getAllMessages(t), t);
+ } finally {
+ if (bitsStream != null) {
+ try {
+ bitsStream.close();
+ } catch (Exception e) {
+ log.warn("Failed to close stream to package bits located at [" + packageVersionLocation
+ + "] on content source [" + contentSourceId + "]");
+ }
+ }
+ }
+
+ return packageBits;
+ }
+
@TransactionAttribute(TransactionAttributeType.NEVER)
public boolean internalSynchronizeContentSource(int contentSourceId) throws Exception {
ContentServerPluginContainer pc = ContentManagerHelper.getPluginContainer();
@@ -1817,8 +1994,6 @@ public class ContentSourceManagerBean implements ContentSourceManagerLocal {
packageVersion.getId());
}
- @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- @TransactionTimeout(90 * 60)
public boolean downloadPackageBits(int resourceId, PackageDetailsKey packageDetailsKey){
Query query = entityManager.createNamedQuery(PackageVersion.QUERY_FIND_ID_BY_PACKAGE_DETAILS_KEY_AND_RES_ID);
query.setParameter("packageName", packageDetailsKey.getName());
@@ -1887,8 +2062,9 @@ public class ContentSourceManagerBean implements ContentSourceManagerLocal {
// won't affect the time we are in in this method's tx (I hope that's how it works).
// This is because this method itself may take a long time to send the data to the output stream
// and we don't want out tx timing out due to the time it takes downloading.
+ InputStream stream = preloadPackageBits(pvcs);
PackageBits bits = null;
- bits = contentSourceManager.downloadPackageBits(subjectManager.getOverlord(), pvcs);
+ bits = preparePackageBits(subjectManager.getOverlord(),stream, pvcs);
}catch(Exception e){
return false;
}
@@ -2010,8 +2186,9 @@ public class ContentSourceManagerBean implements ContentSourceManagerLocal {
}
} else {
long length = (endByte - startByte) + 1;
- InputStream stream = blob.getBinaryStream(startByte, length);
- bytesRetrieved = StreamUtil.copy(stream, outputStream, false);
+ //InputStream stream = blob.getBinaryStream(startByte, length); // JDK 6 api
+ InputStream stream = blob.getBinaryStream();
+ bytesRetrieved = StreamUtil.copy(stream, outputStream, startByte , length);
}
log.debug("Retrieved and sent [" + bytesRetrieved + "] bytes for [" + packageDetailsKey + "]");
ps.close();
commit 6a9cbfc3b054b89d8c278eee62df6411daf650e1
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed May 19 15:38:43 2010 -0400
add jboss 3rd party uploads repo for augeas v0.0.2 jar
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index 9a781ba..963223b 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -93,6 +93,20 @@
</plugins>
</build>
+ <repositories>
+
+ <!-- for the augeas jar -->
+ <repository>
+ <id>jboss-thirdparty-uploads</id>
+ <name>JBoss Third-Party Uploads</name>
+ <url>https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+
+ </repositories>
+
<profiles>
<profile>
commit 794e0d7dc48e5ac74c90fc675d68a8e28c6ca62c
Merge: 09013bf... 24beba0...
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Wed May 19 11:24:10 2010 -0400
Merge branch 'master' into bugfixes
commit 09013bf47ff002214dad4f9e21130acacf526234
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Tue May 18 17:10:58 2010 +0200
BZ 576617 - [apache] ServerName is now readOnly.
diff --git a/modules/plugins/apache/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/apache/src/main/resources/META-INF/rhq-plugin.xml
index 94ee5d3..8aa4489 100644
--- a/modules/plugins/apache/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/apache/src/main/resources/META-INF/rhq-plugin.xml
@@ -125,7 +125,7 @@
'>
<!ENTITY ServerName '
- <c:simple-property name="ServerName" required="false">
+ <c:simple-property name="ServerName" required="false" readOnly="true">
<c:description>
Sets the request scheme, hostname and port that the server uses to identify itself. This is used when creating redirection URLs.
If no ServerName is specified, then the server attempts to deduce the hostname by performing a reverse lookup on the IP address. If no port is specified in the ServerName, then the server will use the port from the incoming request. For optimal reliability and predictability, you should specify an explicit hostname and port using the ServerName directive.
commit 2b0cf57bffd69664c3d32c7b3b0703386429ef32
Merge: 1ddf0cb... 307b55d...
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Fri May 14 11:58:02 2010 +0200
Merge branch 'bugfixes' of ssh://git.fedorahosted.org/git/rhq/rhq into bugfixes
commit 1ddf0cbbfa231ea06f01f66dfb02ff0000fa171d
Author: Filip Drabek <fdrabek(a)dhcp-lab-136.englab.brq.redhat.com>
Date: Fri May 14 11:57:46 2010 +0200
BZ 555098 - new metrics for AS-4 ConnectionFactory.
diff --git a/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
index c2ddc8d..f9328b1 100644
--- a/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as/src/main/resources/META-INF/rhq-plugin.xml
@@ -554,7 +554,37 @@
<c:simple-property name="descriptionTemplate" default="A JCA Connection Factory"/>
<c:simple-property name="name" type="string" description="The name of this Connection Factory"/>
</plugin-configuration>
+
+ <metric property="AvailableConnectionCount" measurementType="dynamic" displayType="summary"
+ displayName="Available Connection Count" description="Number of available connections."
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+ <metric property="ConnectionCount" measurementType="dynamic" displayType="summary"
+ displayName="Connection Count" defaultOn="true" defaultInterval="60000" dataType="measurement"
+ category="performance"/>
+
+ <metric property="ConnectionCreatedCount" measurementType="dynamic" displayType="detail"
+ displayName="Connection Created Count" defaultOn="true" defaultInterval="60000"
+ dataType="measurement" category="performance"/>
+
+ <metric property="ConnectionDestroyedCount" measurementType="dynamic" displayType="detail"
+ displayName="Connection Destroyed Count" defaultOn="true" defaultInterval="60000"
+ dataType="measurement" category="performance"/>
+
+ <metric property="InUseConnectionCount" measurementType="dynamic" displayType="detail"
+ displayName="In Use Connection Count" description="Mumber of connections currently in use."
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+ <metric property="MaxConnectionsInUseCount" measurementType="dynamic" displayType="detail"
+ displayName="Max Connections In Use Count" description="Maximum number of maximum connections that have been in use."
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+ <metric property="MaxSize" measurementType="dynamic" displayType="detail" displayName="Max Size"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+ <metric property="MinSize" measurementType="dynamic" displayType="detail" displayName="Min Size"
+ defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
<resource-configuration>
<c:group name="connection" displayName="Connection Information">
@@ -879,7 +909,7 @@
</c:group>
</resource-configuration>
-
+
</service>
<service name="JBossMQ"
13 years, 10 months
[rhq] Branch 'release-3.0.0' - modules/plugins
by lkrejci
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java | 2
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java | 2
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java | 29 -
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java | 34 +
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java | 281 ++++++----
modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java | 2
6 files changed, 229 insertions(+), 121 deletions(-)
New commits:
commit 3617607ac9b93a68a790a8c465679cb74f9f11f1
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Jun 25 13:56:43 2010 +0200
BZ 601176 - Adding support for '*' as both host and port spec in Listen, and VirtualHost directives.
Enhanced the detection of the address a server or vhost is reachable on, thus improving the out-of-the-box availability detection.
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java
index 38ce9dc..0e98116 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerComponent.java
@@ -390,7 +390,7 @@ public class ApacheServerComponent implements AugeasRHQComponent<PlatformCompone
ApacheParser parser = new ApacheParserImpl(parserTree,getServerRoot().getAbsolutePath());
ApacheConfigReader.buildTree(getHttpdConfFile().getAbsolutePath(), parser);
- addr = getAddressUtility().getVirtualHostSampleAddress(parserTree, vhostDefs[0], serverName);
+ addr = getAddressUtility().getVirtualHostSampleAddress(parserTree, vhostDefs[0], serverName, false);
} catch (Exception e) {
report.setStatus(CreateResourceStatus.FAILURE);
report.setErrorMessage("Wrong format of virtual host resource name.");
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java
index 8f6deb7..edffb23 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheServerDiscoveryComponent.java
@@ -235,7 +235,7 @@ public class ApacheServerDiscoveryComponent implements ResourceDiscoveryComponen
* @throws Exception
*/
private static String getUrl(ApacheDirectiveTree serverConfig, String version) throws Exception {
- Address addr = HttpdAddressUtility.get(version).getMainServerSampleAddress(serverConfig);
+ Address addr = HttpdAddressUtility.get(version).getMainServerSampleAddress(serverConfig, null, 0);
return addr == null ? null : "http://" + addr.host + ":" + addr.port + "/";
}
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
index 533ebd4..e44fef5 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceComponent.java
@@ -516,11 +516,17 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
ApacheServerComponent parent = resourceContext.getParentResourceComponent();
if (vhostAddressStrings.length == 1 && MAIN_SERVER_RESOURCE_KEY.equals(vhostAddressStrings[0])) {
- vhostAddresses.add(parent.getAddressUtility().getMainServerSampleAddress(tree));
+ HttpdAddressUtility.Address serverAddr = parent.getAddressUtility().getMainServerSampleAddress(tree, null, 0);
+ if (serverAddr != null) {
+ vhostAddresses.add(serverAddr);
+ }
} else {
for (int i = 0; i < vhostAddressStrings.length; ++i) {
- vhostAddresses.add(parent.getAddressUtility().getVirtualHostSampleAddress(tree, vhostAddressStrings[i],
- vhostServerName));
+ HttpdAddressUtility.Address vhostAddr = parent.getAddressUtility().getVirtualHostSampleAddress(tree, vhostAddressStrings[i],
+ vhostServerName, true);
+ if (vhostAddr != null) {
+ vhostAddresses.add(vhostAddr);
+ }
}
}
@@ -540,7 +546,10 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
String fullPort = portValue.toString();
int snmpPort = Integer.parseInt(fullPort.substring(fullPort.lastIndexOf(".") + 1));
- if (snmpPort == 0) snmpPort = 80;
+
+ //the snmp represent wildcard ports as 0 and so does HttpdAddressUtility.Address class
+ //we can therefore match the Address generated from the snmp values and the Addresses
+ //stored for this vhost directly.
HttpdAddressUtility.Address snmpAddress = new HttpdAddressUtility.Address(snmpHost, snmpPort);
@@ -562,8 +571,10 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
}
private int matchRate(List<HttpdAddressUtility.Address> addresses, HttpdAddressUtility.Address addressToCheck) throws UnknownHostException {
- if (addresses.contains(addressToCheck)) {
- return 3;
+ for(HttpdAddressUtility.Address a : addresses) {
+ if (HttpdAddressUtility.isAddressConforming(addressToCheck, a.host, a.port)) {
+ return 3;
+ }
}
//try to get the IP of the address to check
@@ -572,8 +583,10 @@ public class ApacheVirtualHostServiceComponent implements ResourceComponent<Apac
for(InetAddress ip : ipAddresses) {
HttpdAddressUtility.Address newCheck = new HttpdAddressUtility.Address(ip.getHostAddress(), addressToCheck.port);
- if (addresses.contains(newCheck)) {
- return 2;
+ for(HttpdAddressUtility.Address a : addresses) {
+ if (HttpdAddressUtility.isAddressConforming(newCheck, a.host, a.port)) {
+ return 2;
+ }
}
}
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java
index 75e9f35..b308dd4 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/ApacheVirtualHostServiceDiscoveryComponent.java
@@ -49,6 +49,8 @@ import org.rhq.plugins.apache.util.HttpdAddressUtility.Address;
*/
public class ApacheVirtualHostServiceDiscoveryComponent implements ResourceDiscoveryComponent<ApacheServerComponent> {
+ private static final String COULD_NOT_DETERMINE_THE_VIRTUAL_HOST_ADDRESS = "*** Could not determine the virtual host address ***";
+
public static final String LOGS_DIRECTORY_NAME = "logs";
private static final String RT_LOG_FILE_NAME_SUFFIX = "_rt.log";
@@ -97,12 +99,38 @@ public class ApacheVirtualHostServiceDiscoveryComponent implements ResourceDisco
Configuration pluginConfiguration = context.getDefaultPluginConfiguration();
- Address address = serverComponent.getAddressUtility().getVirtualHostSampleAddress(tree, firstAddress, serverName);
+ Address address = serverComponent.getAddressUtility().getVirtualHostSampleAddress(tree, firstAddress, serverName, false);
if (address != null) {
- String url = "http://" + address.host + ":" + address.port + "/";
+ String hostToPing = address.host;
+ int portToPing = address.port;
+ if (address.isPortWildcard()) {
+ Address serverAddress = serverComponent.getAddressUtility().getMainServerSampleAddress(tree, hostToPing, 0);
+ if (serverAddress != null) {
+ portToPing = serverAddress.port;
+ } else {
+ portToPing = Address.PORT_WILDCARD_VALUE;
+ }
+ }
+ if (address.isHostDefault() || address.isHostWildcard()) {
+ Address serverAddress = serverComponent.getAddressUtility().getMainServerSampleAddress(tree, null, portToPing);
+
+ if (serverAddress != null) {
+ hostToPing = serverAddress.host;
+ } else {
+ hostToPing = null;
+ }
+ }
+
+ String url;
+ if (hostToPing != null && portToPing != Address.PORT_WILDCARD_VALUE && portToPing != Address.NO_PORT_SPECIFIED_VALUE) {
+ url = "http://" + hostToPing + ":" + portToPing + "/";
+ } else {
+ url = COULD_NOT_DETERMINE_THE_VIRTUAL_HOST_ADDRESS;
+ }
PropertySimple urlProp = new PropertySimple(ApacheVirtualHostServiceComponent.URL_CONFIG_PROP, url);
pluginConfiguration.put(urlProp);
+
}
File rtLogFile = new File(logsDir, address.host + address.port + RT_LOG_FILE_NAME_SUFFIX);
@@ -113,7 +141,7 @@ public class ApacheVirtualHostServiceDiscoveryComponent implements ResourceDisco
String resourceName;
if (serverName != null) {
- resourceName = address.host + ":" + address.port;
+ resourceName = address.toString();
} else {
resourceName = resourceKey;
}
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java
index 1aea3b2..261c446 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/HttpdAddressUtility.java
@@ -25,11 +25,11 @@ package org.rhq.plugins.apache.util;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.rhq.augeas.node.AugeasNode;
import org.rhq.plugins.apache.parser.ApacheDirective;
import org.rhq.plugins.apache.parser.ApacheDirectiveTree;
@@ -41,71 +41,54 @@ import org.rhq.plugins.apache.parser.ApacheDirectiveTree;
public enum HttpdAddressUtility {
APACHE_1_3 {
- public Address getMainServerSampleAddress(ApacheDirectiveTree ag) {
+ public Address getMainServerSampleAddress(ApacheDirectiveTree ag, String limitToHost, int limitToPort) {
try {
- Address addr = null;
+ List<ApacheDirective> ports = ag.search("/Port");
+ List<ApacheDirective> bindAddresses = ag.search("/BindAddress");
+ List<ApacheDirective> listens = ag.search("/Listen");
- //check if there is a ServerName directive
- List<ApacheDirective> serverNameNodes = ag.search("/ServerName");
-
- if (serverNameNodes.size() > 0) {
- String serverName = serverNameNodes.get(0).getValuesAsString();
- addr = Address.parse(serverName);
- } else {
- List<ApacheDirective> ports = ag.search("/Port");
- List<ApacheDirective> bindAddresses = ag.search("/BindAddress");
- List<ApacheDirective> listens = ag.search("/Listen");
-
- String port = null;
- String bindAddress = null;
- String listen = null;
-
- if (ports.size() > 0) {
- List<String>values = ports.get(0).getValues();
- if (values.size()>0)
- port = values.get(0);
- }
-
- if (bindAddresses.size() > 0) {
- List<String>values = bindAddresses.get(0).getValues();
- if (values.size()>0)
- bindAddress = values.get(0);
- }
-
- if (listens.size() > 0) {
- List<String>values = listens.get(0).getValues();
- if (values.size()>0)
- listen = values.get(0);
- }
-
- String host = null;
- int portToUse = -1;
-
- if (bindAddress != null && !"*".equals(bindAddress)) {
- host = bindAddress;
- }
-
- if (port != null) {
- portToUse = Integer.parseInt(port);
+ String port = "80"; //this is the default in apache 1.3
+ String bindAddress = null;
+
+ List<Address> addressesToMatch = new ArrayList<Address>();
+
+ if (ports.size() > 0) {
+ List<String>values = ports.get(0).getValues();
+ if (values.size()>0)
+ port = values.get(0);
+ }
+
+ if (bindAddresses.size() > 0) {
+ List<String>values = bindAddresses.get(0).getValues();
+ if (values.size()>0)
+ bindAddress = values.get(0);
+ }
+
+ //listen directives take precedence over port/bindaddress combo
+ if (listens.size() > 0) {
+ for(ApacheDirective l : listens) {
+ addressesToMatch.add(parseListen(l.getValues().get(0)));
}
-
- if (listen != null) {
- Address tmp = Address.parse(listen);
- host = tmp.host;
- portToUse = tmp.port;
- if (portToUse == -1) {
- host = null;
- portToUse = Integer.parseInt(tmp.host);
+ } else {
+ addressesToMatch.add(new Address(bindAddress, Integer.parseInt(port)));
+ }
+
+ for (Address address : addressesToMatch) {
+ if (isAddressConforming(address, limitToHost, limitToPort)) {
+ if (!address.isPortDefined() || address.isPortWildcard()) {
+ address.port = 80;
}
+ if (address.host == null || address.isHostDefault() || address.isHostWildcard()) {
+ address = getLocalhost(address.port);
+ }
+
+ updateWithServerName(address, ag);
+
+ return address;
}
-
- if (host == null) {
- host = InetAddress.getLocalHost().getHostName();
- }
-
- addr = new Address(host, portToUse);
}
- return addr;
+
+ return null;
} catch (Exception e) {
log.info("Failed to obtain main server address. Is augeas installed and correct lens in use?");
@@ -114,34 +97,23 @@ public enum HttpdAddressUtility {
}
},
APACHE_2_x {
- public Address getMainServerSampleAddress(ApacheDirectiveTree ag) {
+ public Address getMainServerSampleAddress(ApacheDirectiveTree ag, String limitToHost, int limitToPort) {
try {
- Address addr = null;
-
- //check if there is a ServerName directive
- List<ApacheDirective> serverNameNodes = ag.search("/ServerName");
-
- if (serverNameNodes.size() > 0) {
- String serverName = serverNameNodes.get(0).getValuesAsString();
- addr = Address.parse(serverName);
- } else {
- //there has to be at least one Listen directive
- ApacheDirective listen = ag.search("/Listen").get(0);
-
- String address = listen.getValues().get(0);
-
- addr = Address.parse(address);
-
- if (addr.port == -1) {
- addr.port = Integer.parseInt(addr.host);
- try {
- addr.host = InetAddress.getLocalHost().getHostName();
- } catch (UnknownHostException e) {
- throw new IllegalStateException("Unable to get the localhost address.", e);
+ for(ApacheDirective n : ag.search("/Listen")) {
+ Address addr = parseListen(n.getValues().get(0));
+ if (isAddressConforming(addr, limitToHost, limitToPort)) {
+ if (addr.host == null || addr.isHostDefault() || addr.isHostWildcard()) {
+ addr = getLocalhost(addr.port);
}
+
+ updateWithServerName(addr, ag);
+
+ return addr;
}
}
- return addr;
+
+ //there has to be at least one Listen directive
+ throw new IllegalStateException("Could find a listen address on port " + limitToPort);
} catch (Exception e) {
log.info("Failed to obtain main server address. Is augeas installed and correct lens in use?");
@@ -159,7 +131,12 @@ public enum HttpdAddressUtility {
public static class Address {
public String host;
public int port = -1;
-
+
+ public static final String WILDCARD = "*";
+ public static final String DEFAULT_HOST = "_default_";
+ public static final int PORT_WILDCARD_VALUE = 0;
+ public static final int NO_PORT_SPECIFIED_VALUE = -1;
+
public Address(String host, int port) {
this.host = host;
this.port = port;
@@ -174,21 +151,45 @@ public enum HttpdAddressUtility {
*/
public static Address parse(String address) {
int lastColonIdx = address.lastIndexOf(':');
- if (lastColonIdx == -1) {
+ if (lastColonIdx == NO_PORT_SPECIFIED_VALUE) {
return new Address(address, -1);
} else {
int lastRightBracketPos = address.lastIndexOf(']');
if (lastColonIdx > lastRightBracketPos) {
String host = address.substring(0, lastColonIdx);
- int port = Integer.parseInt(address.substring(lastColonIdx + 1));
+ String portSpec = address.substring(lastColonIdx + 1);
+
+ int port = NO_PORT_SPECIFIED_VALUE;
+ if (WILDCARD.equals(portSpec)) {
+ port = PORT_WILDCARD_VALUE;
+ } else {
+ port = Integer.parseInt(portSpec);
+ }
+
return new Address(host, port);
} else {
//this is an IP6 address without a port spec
- return new Address(address, -1);
+ return new Address(address, NO_PORT_SPECIFIED_VALUE);
}
}
}
+ public boolean isPortWildcard() {
+ return port == PORT_WILDCARD_VALUE;
+ }
+
+ public boolean isPortDefined() {
+ return port != NO_PORT_SPECIFIED_VALUE;
+ }
+
+ public boolean isHostWildcard() {
+ return WILDCARD.equals(host);
+ }
+
+ public boolean isHostDefault() {
+ return DEFAULT_HOST.equals(host);
+ }
+
@Override
public int hashCode() {
int hash = port;
@@ -210,15 +211,28 @@ public enum HttpdAddressUtility {
return this.host.equals(o.host) && this.port == o.port;
}
}
+
+ @Override
+ public String toString() {
+ if (port == NO_PORT_SPECIFIED_VALUE) return host;
+ else {
+ String portSpec = port == PORT_WILDCARD_VALUE ? WILDCARD : String.valueOf(port);
+
+ return host + ":" + portSpec;
+ }
+ }
}
/**
* This just constructs a first available address under which the server or one of its virtual hosts can be reached.
*
* @param ag the tree of the httpd configuration
+ * @param limitToHost if non-null and different from {@link Address#DEFAULT_HOST} and {@link Address#WILDCARD},
+ * the sample address is looked for only for the given host
+ * @param limitToPort if > 0, the sample address is looked for only for the given port
* @return the address or null on failure
*/
- public abstract Address getMainServerSampleAddress(ApacheDirectiveTree ag);
+ public abstract Address getMainServerSampleAddress(ApacheDirectiveTree ag, String limitToHost, int limitToPort);
/**
* This constructs an address on which given virtual host can be accessed.
@@ -226,29 +240,22 @@ public enum HttpdAddressUtility {
* @param ag the augeas tree of the httpd configuration
* @param virtualHost the port or address:port of the virtual host
* @param serverName the server name for the namebased virtual hosts (or null if the virtual host is ip based)
- *
+ * @param snmpModuleCompatibleMode if true, generates a sample address in the same way as snmp module. Namely
+ * deals with the host name wildcard the same way as snmp module (i.e. by assuming it means "localhost", even though it doesn't have to).
* @return the address on which the virtual host can be accessed or null on error
*/
- public Address getVirtualHostSampleAddress(ApacheDirectiveTree ag, String virtualHost, String serverName) {
+ public Address getVirtualHostSampleAddress(ApacheDirectiveTree ag, String virtualHost, String serverName, boolean snmpModuleCompatibleMode) {
Address addr = Address.parse(virtualHost);
- if (addr.port == -1) {
- //just port specified
- Address serverAddr = getMainServerSampleAddress(ag);
-
+ if (addr.isHostDefault() || addr.isHostWildcard()) {
+ Address serverAddr = null;
+ if (snmpModuleCompatibleMode) {
+ serverAddr = getLocalhost(addr.port);
+ } else {
+ serverAddr = getMainServerSampleAddress(ag, null, addr.port);
+ }
if (serverAddr == null)
return null;
-
- addr.port = Integer.parseInt(addr.host);
addr.host = serverAddr.host;
- } else {
- String host = addr.host;
- if ("*".equals(host) || "_default_".equals(host)) {
- Address serverAddr = getMainServerSampleAddress(ag);
- if (serverAddr == null)
- return null;
- host = serverAddr.host;
- }
- addr.host = host;
}
if (serverName != null) {
@@ -259,9 +266,69 @@ public enum HttpdAddressUtility {
} else {
addr.host = serverName;
}
- addr.host = addr.host.replaceAll("\\*", "replaced-wildcard");
}
return addr;
}
+
+ private static Address parseListen(String listenValue) {
+ Address ret = Address.parse(listenValue);
+ if (!ret.isPortDefined()) {
+ try {
+ ret.port = Integer.parseInt(ret.host);
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ ret.host = null;
+ }
+
+ return ret;
+ }
+
+ public static boolean isAddressConforming(Address listen, String limitingHost, int limitingPort) {
+ if (Address.DEFAULT_HOST.equals(limitingHost) || Address.WILDCARD.equals(limitingHost)) {
+ limitingHost = null;
+ }
+
+ boolean hostOk = limitingHost == null;
+ boolean portOk = limitingPort <= 0;
+
+ //listen.host == null means that server listens on all addresses
+ if (!hostOk && (listen.host == null || limitingHost.equals(listen.host))) {
+ hostOk = true;
+ }
+
+ if (!portOk && limitingPort == listen.port) {
+ portOk = true;
+ }
+
+ return hostOk && portOk;
+ }
+
+ private static Address getLocalhost(int port) {
+ try {
+ return new Address(InetAddress.getLocalHost().getHostAddress(), port);
+ } catch (UnknownHostException e) {
+ //well, this is bad, we can get address of the localhost. let's use the force...
+ return new Address("127.0.0.1", port);
+ }
+ }
+
+ private static void updateWithServerName(Address address, ApacheDirectiveTree config) throws UnknownHostException {
+ //check if there is a ServerName directive
+ List<ApacheDirective> serverNameNodes = config.search("/ServerName");
+
+ //if there is a ServerName directive, check that the address
+ //we're returning indeed corresponds to it. This might not
+ //be the case if the server listens on more than one interfaces.
+ if (serverNameNodes.size() > 0) {
+ String serverName = serverNameNodes.get(0).getValuesAsString();
+ InetAddress addrFromServerName = InetAddress.getByName(serverName);
+ InetAddress addrFromAddress = InetAddress.getByName(address.host);
+
+ if (addrFromAddress.equals(addrFromServerName)) {
+ address.host = serverName;
+ }
+ }
+ }
}
diff --git a/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java b/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java
index 8f3e470..cd15ef2 100644
--- a/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java
+++ b/modules/plugins/augeas/src/main/java/org/rhq/rhqtransform/impl/PluginDescriptorBasedAugeasConfiguration.java
@@ -129,7 +129,7 @@ public class PluginDescriptorBasedAugeasConfiguration implements AugeasConfigura
}
public static List<String> getGlobList(PropertySimple list) {
- if (list != null) {
+ if (list != null && list.getStringValue() != null) {
return Arrays.asList(list.getStringValue().split("\\s*\\|\\s*"));
} else {
return Collections.emptyList();
13 years, 10 months