[rhq] Branch 'release-4.0.0' - 2 commits - modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java | 12 +++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java | 4 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java | 21 +++++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java | 10 +---
4 files changed, 26 insertions(+), 21 deletions(-)
New commits:
commit c2b21e1d990a0c4b6ada7cc2c3aa38950fda5baf
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu May 19 11:51:59 2011 -0400
[BZ 697061] if the remote call to an Agent to update a config fails, make sure to call checkForCompletedGroupResourceConfigurationUpdate() to update the status of the parent group config update, in the case that the update is part of a group update; remove a LOG.isDebugEnabled() check that was erroneously preventing non-debug code from executing when not debug logging was not enabled (https://bugzilla.redhat.com/show_bug.cgi?id=697061)
(cherry picked from commit f9e768f5872203c286c2d04dcd855595b8a4c74b)
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 eab8623..d2de21c 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
@@ -1071,7 +1071,7 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
ResourceConfigurationUpdate newUpdate = configurationManager.persistNewResourceConfigurationUpdateHistory(
subject, resourceId, configToUpdate, ConfigurationUpdateStatus.INPROGRESS, subject.getName(), false);
- executeResourceConfigurationUpdate(newUpdate, fromStructured);
+ executeResourceConfigurationUpdate(newUpdate);
return newUpdate;
}
@@ -1132,7 +1132,7 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
newUpdate = configurationManager.persistNewResourceConfigurationUpdateHistory(subject, resourceId,
newConfiguration, ConfigurationUpdateStatus.INPROGRESS, subject.getName(), false);
- executeResourceConfigurationUpdate(newUpdate, true);
+ executeResourceConfigurationUpdate(newUpdate);
return newUpdate;
}
@@ -1141,14 +1141,14 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
ResourceConfigurationUpdate update = getResourceConfigurationUpdate(subjectManager.getOverlord(), updateId);
Configuration originalConfig = update.getConfiguration();
update.setConfiguration(originalConfig.deepCopy(false));
- executeResourceConfigurationUpdate(update, true);
+ executeResourceConfigurationUpdate(update);
}
/**
- * Tells the Agent to asynchonously update a managed resource's configuration as per the specified
+ * Tells the Agent to asynchronously update a managed resource's configuration as per the specified
* <code>ResourceConfigurationUpdate</code>.
*/
- private void executeResourceConfigurationUpdate(ResourceConfigurationUpdate update, boolean fromStructured) {
+ private void executeResourceConfigurationUpdate(ResourceConfigurationUpdate update) {
try {
AgentClient agentClient = agentManager.getAgentClient(update.getResource().getAgent());
ConfigurationUpdateRequest request = new ConfigurationUpdateRequest(update.getId(), update
@@ -1161,8 +1161,9 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
update.setStatus(ConfigurationUpdateStatus.FAILURE);
update.setErrorMessage(ThrowableUtil.getStackAsString(e));
- // here we call ourself, but we do so via the EJB interface so we pick up the REQUIRES_NEW semantics
+ // Here we call ourselves, but we do so via the EJB interface so we pick up the REQUIRES_NEW semantics.
this.configurationManager.mergeConfigurationUpdate(update);
+ checkForCompletedGroupResourceConfigurationUpdate(update.getId());
}
}
}
@@ -1334,14 +1335,16 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
public void checkForCompletedGroupResourceConfigurationUpdate(int resourceConfigUpdateId) {
ResourceConfigurationUpdate resourceConfigUpdate = entityManager.find(ResourceConfigurationUpdate.class,
resourceConfigUpdateId);
- if (resourceConfigUpdate.getStatus() == ConfigurationUpdateStatus.INPROGRESS)
+ if (resourceConfigUpdate.getStatus() == ConfigurationUpdateStatus.INPROGRESS) {
// If this update isn't done, then, by definition, the group update isn't done either.
return;
+ }
GroupResourceConfigurationUpdate groupConfigUpdate = resourceConfigUpdate.getGroupConfigurationUpdate();
- if (groupConfigUpdate == null)
- // The update's not part of a group update - nothing we need to do.
+ if (groupConfigUpdate == null) {
+ // The update isn't part of a group update - nothing we need to do.
return;
+ }
Query inProgressResourcesCountQuery = PersistenceUtility.createCountQuery(this.entityManager,
ResourceConfigurationUpdate.QUERY_FIND_BY_PARENT_UPDATE_ID_AND_STATUS);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
index aac1143..a36f35d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
@@ -70,12 +70,10 @@ public class ConfigurationServerServiceImpl implements ConfigurationServerServic
ResourceConfigurationUpdate update = configurationManager.persistNewResourceConfigurationUpdateHistory(
overlord, resourceId, resourceConfiguration, ConfigurationUpdateStatus.SUCCESS, null, false);
- if (LOG.isDebugEnabled()) {
- if (update == null) {
- LOG.debug("Not persisting Configuration " + resourceConfiguration
- + ", since it is identical to the current revision.");
- return;
- }
+ if (update == null) {
+ LOG.debug("Not persisting Configuration " + resourceConfiguration
+ + ", since it is identical to the current revision.");
+ return;
}
Configuration configuration = update.getConfiguration().deepCopy(false); // clone the config, zeroing out ids
commit f234fa004c43fc9fac19f126fd43859d9f681260
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 20:51:44 2011 -0400
[BZ 705916] redirect to history subtab after a group config is saved off the group config>current subtab (https://bugzilla.redhat.com/show_bug.cgi?id=705916)
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
index 7759f93..d094a67 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
@@ -39,6 +39,7 @@ import org.rhq.core.domain.resource.composite.ResourcePermission;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import org.rhq.enterprise.gui.coregui.client.components.configuration.GroupConfigurationEditor;
@@ -47,6 +48,7 @@ import org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyVa
import org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyValueChangeListener;
import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import org.rhq.enterprise.gui.coregui.client.util.message.MessageCenter;
@@ -209,11 +211,13 @@ public class GroupResourceConfigurationEditView extends LocatableVLayout impleme
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_group_resConfig_edit_saveInitiated_concise(), MSG
+ String configHistoryUrl = LinkManager.getResourceGroupTabLink(group.getId(),
+ ResourceDetailView.Tab.CONFIGURATION, ResourceDetailView.ConfigurationSubTab.HISTORY);
+ String configHistoryView = configHistoryUrl.substring(1); // chop off the leading '#'
+ Message message = new Message(MSG.view_group_resConfig_edit_saveInitiated_concise(), MSG
.view_group_resConfig_edit_saveInitiated_full(group.getResourceType().getName(), group
- .getName()), Message.Severity.Info));
- refresh();
+ .getName()), Message.Severity.Info);
+ CoreGUI.goToView(configHistoryView, message);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
index 0161c08..029b487 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
@@ -172,8 +172,8 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P
Message.Severity.Warning);
}
String configHistoryUrl = LinkManager.getResourceTabLink(resource.getId(),
- ResourceDetailView.Tab.CONFIGURATION, ResourceDetailView.ConfigurationSubTab.HISTORY);
- String configHistoryView = configHistoryUrl.substring(1);
+ ResourceDetailView.Tab.CONFIGURATION, ResourceDetailView.ConfigurationSubTab.HISTORY);
+ String configHistoryView = configHistoryUrl.substring(1); // chop off the leading '#'
CoreGUI.goToView(configHistoryView, message);
}
});
13 years
[rhq] modules/enterprise
by ips
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java | 21 +++++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java | 10 +---
2 files changed, 16 insertions(+), 15 deletions(-)
New commits:
commit f9e768f5872203c286c2d04dcd855595b8a4c74b
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu May 19 11:51:59 2011 -0400
[BZ 697061] if the remote call to an Agent to update a config fails, make sure to call checkForCompletedGroupResourceConfigurationUpdate() to update the status of the parent group config update, in the case that the update is part of a group update; remove a LOG.isDebugEnabled() check that was erroneously preventing non-debug code from executing when not debug logging was not enabled (https://bugzilla.redhat.com/show_bug.cgi?id=697061)
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 9282df5..62c12c4 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
@@ -1071,7 +1071,7 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
ResourceConfigurationUpdate newUpdate = configurationManager.persistNewResourceConfigurationUpdateHistory(
subject, resourceId, configToUpdate, ConfigurationUpdateStatus.INPROGRESS, subject.getName(), false);
- executeResourceConfigurationUpdate(newUpdate, fromStructured);
+ executeResourceConfigurationUpdate(newUpdate);
return newUpdate;
}
@@ -1132,7 +1132,7 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
newUpdate = configurationManager.persistNewResourceConfigurationUpdateHistory(subject, resourceId,
newConfiguration, ConfigurationUpdateStatus.INPROGRESS, subject.getName(), false);
- executeResourceConfigurationUpdate(newUpdate, true);
+ executeResourceConfigurationUpdate(newUpdate);
return newUpdate;
}
@@ -1141,14 +1141,14 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
ResourceConfigurationUpdate update = getResourceConfigurationUpdate(subjectManager.getOverlord(), updateId);
Configuration originalConfig = update.getConfiguration();
update.setConfiguration(originalConfig.deepCopy(false));
- executeResourceConfigurationUpdate(update, true);
+ executeResourceConfigurationUpdate(update);
}
/**
- * Tells the Agent to asynchonously update a managed resource's configuration as per the specified
+ * Tells the Agent to asynchronously update a managed resource's configuration as per the specified
* <code>ResourceConfigurationUpdate</code>.
*/
- private void executeResourceConfigurationUpdate(ResourceConfigurationUpdate update, boolean fromStructured) {
+ private void executeResourceConfigurationUpdate(ResourceConfigurationUpdate update) {
try {
AgentClient agentClient = agentManager.getAgentClient(update.getResource().getAgent());
ConfigurationUpdateRequest request = new ConfigurationUpdateRequest(update.getId(), update
@@ -1161,8 +1161,9 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
update.setStatus(ConfigurationUpdateStatus.FAILURE);
update.setErrorMessage(ThrowableUtil.getStackAsString(e));
- // here we call ourself, but we do so via the EJB interface so we pick up the REQUIRES_NEW semantics
+ // Here we call ourselves, but we do so via the EJB interface so we pick up the REQUIRES_NEW semantics.
this.configurationManager.mergeConfigurationUpdate(update);
+ checkForCompletedGroupResourceConfigurationUpdate(update.getId());
}
}
}
@@ -1334,14 +1335,16 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
public void checkForCompletedGroupResourceConfigurationUpdate(int resourceConfigUpdateId) {
ResourceConfigurationUpdate resourceConfigUpdate = entityManager.find(ResourceConfigurationUpdate.class,
resourceConfigUpdateId);
- if (resourceConfigUpdate.getStatus() == ConfigurationUpdateStatus.INPROGRESS)
+ if (resourceConfigUpdate.getStatus() == ConfigurationUpdateStatus.INPROGRESS) {
// If this update isn't done, then, by definition, the group update isn't done either.
return;
+ }
GroupResourceConfigurationUpdate groupConfigUpdate = resourceConfigUpdate.getGroupConfigurationUpdate();
- if (groupConfigUpdate == null)
- // The update's not part of a group update - nothing we need to do.
+ if (groupConfigUpdate == null) {
+ // The update isn't part of a group update - nothing we need to do.
return;
+ }
Query inProgressResourcesCountQuery = PersistenceUtility.createCountQuery(this.entityManager,
ResourceConfigurationUpdate.QUERY_FIND_BY_PARENT_UPDATE_ID_AND_STATUS);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
index aac1143..a36f35d 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationServerServiceImpl.java
@@ -70,12 +70,10 @@ public class ConfigurationServerServiceImpl implements ConfigurationServerServic
ResourceConfigurationUpdate update = configurationManager.persistNewResourceConfigurationUpdateHistory(
overlord, resourceId, resourceConfiguration, ConfigurationUpdateStatus.SUCCESS, null, false);
- if (LOG.isDebugEnabled()) {
- if (update == null) {
- LOG.debug("Not persisting Configuration " + resourceConfiguration
- + ", since it is identical to the current revision.");
- return;
- }
+ if (update == null) {
+ LOG.debug("Not persisting Configuration " + resourceConfiguration
+ + ", since it is identical to the current revision.");
+ return;
}
Configuration configuration = update.getConfiguration().deepCopy(false); // clone the config, zeroing out ids
13 years
[rhq] modules/enterprise
by ips
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java | 12 ++++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java | 2 -
2 files changed, 9 insertions(+), 5 deletions(-)
New commits:
commit a9d5121fa116f381edda52fb75c3d07f8e985d25
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 20:51:44 2011 -0400
[BZ 705916] redirect to history subtab after a group config is saved off the group config>current subtab (https://bugzilla.redhat.com/show_bug.cgi?id=705916)
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
index 7759f93..d094a67 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
@@ -39,6 +39,7 @@ import org.rhq.core.domain.resource.composite.ResourcePermission;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.LinkManager;
import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import org.rhq.enterprise.gui.coregui.client.components.configuration.GroupConfigurationEditor;
@@ -47,6 +48,7 @@ import org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyVa
import org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyValueChangeListener;
import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
+import org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import org.rhq.enterprise.gui.coregui.client.util.message.MessageCenter;
@@ -209,11 +211,13 @@ public class GroupResourceConfigurationEditView extends LocatableVLayout impleme
}
public void onSuccess(Void result) {
- CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_group_resConfig_edit_saveInitiated_concise(), MSG
+ String configHistoryUrl = LinkManager.getResourceGroupTabLink(group.getId(),
+ ResourceDetailView.Tab.CONFIGURATION, ResourceDetailView.ConfigurationSubTab.HISTORY);
+ String configHistoryView = configHistoryUrl.substring(1); // chop off the leading '#'
+ Message message = new Message(MSG.view_group_resConfig_edit_saveInitiated_concise(), MSG
.view_group_resConfig_edit_saveInitiated_full(group.getResourceType().getName(), group
- .getName()), Message.Severity.Info));
- refresh();
+ .getName()), Message.Severity.Info);
+ CoreGUI.goToView(configHistoryView, message);
}
});
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
index b980286..2df653a 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
@@ -173,7 +173,7 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P
}
String configHistoryUrl = LinkManager.getResourceTabLink(resource.getId(),
ResourceDetailView.Tab.CONFIGURATION, ResourceDetailView.ConfigurationSubTab.HISTORY);
- String configHistoryView = configHistoryUrl.substring(1);
+ String configHistoryView = configHistoryUrl.substring(1); // chop off the leading '#'
CoreGUI.goToView(configHistoryView, message);
}
});
13 years
[rhq] 4 commits - etc/m2 etc/rhq-plugin-archetype modules/core modules/enterprise
by Jay Shaughnessy
etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml | 6
etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml | 4
modules/core/domain/pom.xml | 4
modules/core/domain/src/main/java/org/rhq/core/domain/auth/Subject.java | 27 -
modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java | 8
modules/enterprise/binding/pom.xml | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java | 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java | 35 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java | 9
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java | 22 -
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java | 192 +++++----
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java | 196 +++++-----
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java | 97 ++--
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java | 39 +
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java | 39 +
modules/enterprise/remoting/cli/pom.xml | 4
modules/enterprise/server/jar/pom.xml | 183 ++++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java | 103 ++---
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java | 132 ------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerLocal.java | 34 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java | 16
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java | 6
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java | 13
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java | 80 ++--
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/configuration/DynamicConfigurationPropertyBeanTest.java | 39 +
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java | 8
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/AbstractEJB3Test.java | 7
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java | 4
modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java | 134 +++---
31 files changed, 711 insertions(+), 743 deletions(-)
New commits:
commit fa3cb7852df40c0bfbb49fa6f40ae4d6cb8f82f6
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 17:06:54 2011 -0400
[BZ 536032 - (RHQ-426) session oddities when the same user is logged in from multiple machines]
Forgot to update one sessionManager.put() call area to pass back the correct
Subject.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index 8b9a325..ffeb3a5 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -347,8 +347,8 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
}
}
- sessionManager.put(subject);
-
+ // make sure to return the session-activated subject
+ subject = sessionManager.put(subject);
return subject;
}
commit e3119855288d10b21a76f3512ffe0487d3a5f4d9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 15:29:34 2011 -0400
The server jar (EJB3) tests did not run because the abstract EJB3 test
container could not bootstrap:
Caused by: java.lang.NoSuchMethodError: org.jboss.ejb3.KernelAbstractionFactory.setKernel(Lorg/jboss/kernel/Kernel;)V
This was due to the fact that the embeddable EJB3 jar was declared below
the standard EJB3 jars in the pom's depedencies. And the class was getting loaded
from the wrong jar. The maven classpaths are ordered in the order of
deps defined in the pom. I've moved the test scoped deps above the
non-test 3rd party deps. This should not affect non-test builds as the test deps
should be ignored in those builds.
Also:
- removed a duplicate dep for commons-logging in the server jar pom
- changed some deprecated ${version} and ${groupId} declarations to
the supported ${project.version} and ${project.groupId} decls, respectively.
deps
diff --git a/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml b/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
index f092a4d..a8fe49b 100644
--- a/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/etc/m2/smartgwt-war-archetype/src/main/resources/archetype-resources/pom.xml
@@ -6,10 +6,10 @@
<modelVersion>4.0.0</modelVersion>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<packaging>war</packaging>
- <version>${version}</version>
+ <version>${project.version}</version>
<name>SmartGWT WAR</name>
@@ -60,7 +60,7 @@
<build>
<!-- This will produce a war file named ${artifactId}.war, rather than
- ${artifactId}-${version}.war. -->
+ ${artifactId}-${project.version}.war. -->
<finalName>${artifactId}</finalName>
<!-- Make sure lasses output dir matches hosted webapp WEB-INF/classes
diff --git a/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml b/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
index 4600423..a3e6562 100644
--- a/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/etc/rhq-plugin-archetype/src/main/resources/archetype-resources/pom.xml
@@ -6,9 +6,9 @@
<modelVersion>4.0.0</modelVersion>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>${artifactId}</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<packaging>jar</packaging>
<name>${rhq-plugin-name}</name>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 2f7c4be..6bfa045 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -111,9 +111,9 @@
<!--================ Test Deps ================-->
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>test-utils</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<scope>test</scope>
</dependency>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index a0497d0..d96cf83 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -31,7 +31,7 @@
</dependency>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>rhq-core-domain</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index df15270..24fbb60 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -41,9 +41,9 @@
</dependency>
<dependency>
- <groupId>${groupId}</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>rhq-core-domain</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 307570e..9bbeedc 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -100,6 +100,98 @@
<scope>test</scope>
</dependency>
+ <!--================ Test Deps ================-->
+
+ <!-- Note, the test deps are intentionally placed above the other scoped deps because of classpath
+ reasons. Maven orders the [test] classpath in the order listed in the pom. We specifically
+ need the embeddable-ejb3 jar above the standard ejb3 jars because we need the embeddble packages
+ loaded when testing. -->
+
+ <dependency>
+ <groupId>jboss.jboss-embeddable-ejb3</groupId>
+ <artifactId>jboss-ejb3-all</artifactId>
+ <version>${jboss-embeddable-ejb3.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rhq-core-client-api</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+
+ <!-- NOTE: The remaining test deps correspond to the classes contained in hibernate-all.jar and thirdparty-all.jar. -->
+
+ <dependency>
+ <groupId>antlr</groupId>
+ <artifactId>antlr</artifactId>
+ <version>2.7.7</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>hibernate-entitymanager</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement section. -->
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>javassist</artifactId>
+ <!-- NOTE: The version is defined in the root POM's dependencyManagement section. -->
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>trove</groupId>
+ <artifactId>trove</artifactId>
+ <version>1.0.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sf.opencsv</groupId>
+ <artifactId>opencsv</artifactId>
+ <version>1.8</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.rhq.helpers</groupId>
+ <artifactId>perftest-support</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>ant</groupId>
+ <artifactId>ant-launcher</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-jxpath</groupId>
+ <artifactId>commons-jxpath</artifactId>
+ <version>1.3</version>
+ <scope>test</scope>
+ </dependency>
+
+
<!-- 3rd Party Deps -->
<dependency>
@@ -368,97 +460,6 @@
<version>0.1.29</version>
</dependency>
- <!--================ Test Deps ================-->
-
- <dependency>
- <groupId>${groupId}</groupId>
- <artifactId>rhq-core-client-api</artifactId>
- <version>${version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>jboss.jboss-embeddable-ejb3</groupId>
- <artifactId>jboss-ejb3-all</artifactId>
- <version>${jboss-embeddable-ejb3.version}</version>
- <scope>test</scope>
- </dependency>
-
- <!-- NOTE: The remaining test deps correspond to the classes contained in hibernate-all.jar and thirdparty-all.jar. -->
-
- <dependency>
- <groupId>antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>2.7.7</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>hibernate-entitymanager</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <!-- NOTE: The version is defined in the root POM's dependencyManagement section. -->
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>jboss</groupId>
- <artifactId>javassist</artifactId>
- <!-- NOTE: The version is defined in the root POM's dependencyManagement section. -->
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>trove</groupId>
- <artifactId>trove</artifactId>
- <version>1.0.2</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- <version>2.8.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>net.sf.opencsv</groupId>
- <artifactId>opencsv</artifactId>
- <version>1.8</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.rhq.helpers</groupId>
- <artifactId>perftest-support</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- </exclusion>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant-launcher</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>commons-jxpath</groupId>
- <artifactId>commons-jxpath</artifactId>
- <version>1.3</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.4</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
commit ecd63ba59b3e985481dc76de3044dfad656a8dd2
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 15:22:25 2011 -0400
[BZ 697850 - Child Resources subtab refreshes twice]
[BZ 704742 - when returning to Configuration>Current tab, the original config editor is shown for a few seconds while a new/refreshed config editor is being drawn]
For the resource and group detail views (The two level tab views) ensure
that for RefreshableViews the subtab canvas is not rendered until after
refresh() is called on the canvas. This allows the refresh method to
clear stale data from an existing canvas before initiating the async pull
of new data, preventing the user from briefly seeing the stale data and
then having the refresh kick in (which can look a lot like an unnecessary
refresh)
For Tables this works well without any changes to the refresh() method.
That's because the ds invalidateCache method clears the grid. Other
views may have to ensure the canvas is presentable in the refresh impl.
This commit includes a change like this for the current resource config view.
Note that the other 3 config views (resPlugin, groupPlugin, groupConf)
already handled this as needed.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
index 6f078e0..b173c06 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
@@ -26,7 +26,12 @@ package org.rhq.enterprise.gui.coregui.client;
public interface RefreshableView {
/**
- * Refresh this view, i.e. reload its data from the Server.
+ * Refresh this view, i.e. reload its data from the Server. When implementing refresh keep in mind that
+ * the refresh may be called when revisiting an existing canvas. For example, when revisiting a subtab in
+ * resource or group detail view. The data on that existing canvas may be displaying stale data. Especially
+ * for anynchronous refresh of data, the user experience may benefit from the stale data being
+ * destroyed/wiped/hidden prior to the async call. This can avoid having the user briefly see the
+ * stale data before the refreshed data is rendered.
*/
void refresh();
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
index 1dbc33d..d1ed776 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
@@ -85,7 +85,7 @@ public class SubTabLayout extends LocatableVLayout {
}
}
if (null != currentlySelected) {
- selectSubTabByLocatorId(currentlySelected);
+ selectSubTabByLocatorId(currentlySelected, true);
}
}
@@ -186,14 +186,24 @@ public class SubTabLayout extends LocatableVLayout {
return null;
}
- public boolean selectSubTab(SubTab subTab) {
+ /**
+ * @param subtab the subtab to select
+ * @param showCanvas if true then ensure the subtab canvas is shown. Otherwise the state is unchanged.
+ * @return true if selected successfully, otherwise false
+ */
+ public boolean selectSubTab(SubTab subTab, boolean showCanvas) {
if (subTab == null) {
throw new IllegalArgumentException("subTab is null.");
}
- return selectSubTabByLocatorId(subTab.getLocatorId());
+ return selectSubTabByLocatorId(subTab.getLocatorId(), showCanvas);
}
- public boolean selectSubTabByLocatorId(String locatorId) {
+ /**
+ * @param name locatorId the subtab locatorId
+ * @param showCanvas if true then ensure the subtab canvas is shown. Otherwise the state is unchanged.
+ * @return true if selected successfully, otherwise false
+ */
+ public boolean selectSubTabByLocatorId(String locatorId, boolean showCanvas) {
boolean foundTab = false;
for (String subTabLocatorId : this.subTabs.keySet()) {
if (subTabLocatorId.equals(locatorId)) {
@@ -210,7 +220,7 @@ public class SubTabLayout extends LocatableVLayout {
}
if (foundTab) {
- setCurrentlySelected();
+ setCurrentlySelected(showCanvas);
}
return foundTab;
@@ -237,7 +247,12 @@ public class SubTabLayout extends LocatableVLayout {
return null;
}
- public boolean selectSubTabByName(String name) {
+ /**
+ * @param name subtab name
+ * @param showCanvas if true then ensure the subtab canvas is shown. Otherwise the state is unchanged.
+ * @return true if selected successfully, otherwise false
+ */
+ public boolean selectSubTabByName(String name, boolean showCanvas) {
SubTab subTab = getSubTabByName(name);
if (subTab == null) {
return false;
@@ -248,7 +263,7 @@ public class SubTabLayout extends LocatableVLayout {
return false;
}
this.currentlySelected = subTab.getLocatorId();
- setCurrentlySelected();
+ setCurrentlySelected(showCanvas);
return true;
}
}
@@ -293,7 +308,7 @@ public class SubTabLayout extends LocatableVLayout {
}
}
- private void setCurrentlySelected() {
+ private void setCurrentlySelected(boolean showCanvas) {
if (null != this.currentlySelected) {
Button button = this.subTabs.get(this.currentlySelected).getButton();
button.select();
@@ -311,7 +326,7 @@ public class SubTabLayout extends LocatableVLayout {
Canvas canvas = currentSubTab.getCanvas();
if (canvas != null) {
if (hasMember(canvas)) {
- if (!canvas.isVisible()) {
+ if (!canvas.isVisible() && showCanvas) {
canvas.show();
}
} else {
@@ -319,7 +334,7 @@ public class SubTabLayout extends LocatableVLayout {
canvas.setOverflow(Overflow.SCROLL);
}
addMember(canvas);
- if (!canvas.isVisible()) {
+ if (!canvas.isVisible() && showCanvas) {
canvas.show();
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
index c6867ac..1b20ad4 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
@@ -253,7 +253,8 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
// select the tab and subTab (no event fired, we're already dealing with the correct path)
this.tabSet.selectTab(tab);
// this call adds the subtab canvas as a member of the subtablayout
- tab.getLayout().selectSubTab(subtab);
+ // don't show the subtab canvas until after we perform any necessay rendering.
+ tab.getLayout().selectSubTab(subtab, false);
// get the target canvas
Canvas subView = subtab.getCanvas();
@@ -264,12 +265,16 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
// refresh.
if (subView instanceof BookmarkableView) {
((BookmarkableView) subView).renderView(viewPath);
+ subView.setVisible(true);
} else if (subView instanceof RefreshableView && subView.isDrawn()) {
// Refresh the data on the subtab, so it's not stale.
Log.debug("Refreshing data for [" + subView.getClass().getName() + "]...");
((RefreshableView) subView).refresh();
+ subView.setVisible(true);
+ } else {
+ subView.setVisible(true);
}
// ensure the tabset is enabled (disabled in onTabSelected), and redraw
@@ -300,7 +305,7 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
subTab = tab.getLayout().getDefaultSubTab();
}
- tab.getLayout().selectSubTab(subTab);
+ tab.getLayout().selectSubTab(subTab, true);
// Now that the subtab has been selected, select the tab (this will cause a tab selected event to fire).
this.tabSet.selectTab(tab);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
index 0161c08..b980286 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
@@ -67,7 +67,6 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P
private boolean refreshing = false;
-
public ResourceConfigurationEditView(String locatorId, ResourceComposite resourceComposite) {
super(locatorId);
@@ -114,6 +113,11 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P
this.refreshing = true;
this.buttonbar.setVisible(false);
+ if (editor != null) {
+ editor.destroy();
+ removeMember(editor);
+ }
+
GWTServiceLookup.getConfigurationService().getLatestResourceConfigurationUpdate(resource.getId(),
new AsyncCallback<ResourceConfigurationUpdate>() {
@Override
@@ -122,10 +126,6 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P
EnumSet.of(MetadataType.resourceConfigurationDefinition), new TypeLoadedCallback() {
@Override
public void onTypesLoaded(ResourceType type) {
- if (editor != null) {
- editor.destroy();
- removeMember(editor);
- }
editor = new ConfigurationEditor(extendLocatorId("Editor"), type
.getResourceConfigurationDefinition(), result.getConfiguration());
@@ -164,15 +164,15 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P
if (result != null) {
String version = String.valueOf(result.getId());
message = new Message(MSG.view_configurationDetails_messageConcise(version), MSG
- .view_configurationDetails_messageDetailed(version, resource.getName()),
- Message.Severity.Info);
+ .view_configurationDetails_messageDetailed(version, resource.getName()),
+ Message.Severity.Info);
} else {
// TODO: i18n
message = new Message(MSG.view_configurationDetails_configNotUpdatedDueToNoChange(),
- Message.Severity.Warning);
+ Message.Severity.Warning);
}
String configHistoryUrl = LinkManager.getResourceTabLink(resource.getId(),
- ResourceDetailView.Tab.CONFIGURATION, ResourceDetailView.ConfigurationSubTab.HISTORY);
+ ResourceDetailView.Tab.CONFIGURATION, ResourceDetailView.ConfigurationSubTab.HISTORY);
String configHistoryView = configHistoryUrl.substring(1);
CoreGUI.goToView(configHistoryView, message);
}
@@ -191,8 +191,8 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P
EnumSet.of(Message.Option.Transient, Message.Option.Sticky));
} else {
this.saveButton.disable();
- message = new Message(MSG.view_configurationDetails_somePropertiesInvalid(invalidPropertyNames
- .values().toString()), Message.Severity.Error, EnumSet.of(Message.Option.Transient, Message.Option.Sticky));
+ message = new Message(MSG.view_configurationDetails_somePropertiesInvalid(invalidPropertyNames.values()
+ .toString()), Message.Severity.Error, EnumSet.of(Message.Option.Transient, Message.Option.Sticky));
}
messageCenter.notify(message);
} else {
commit 07471e1f014eed497b43cafeddaffa1cabc873c1
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 18 15:13:45 2011 -0400
[BZ 536032 - (RHQ-426) session oddities when the same user is logged in from multiple machines]
Historically a username shared an RHQ session (not the HTTP session, the
underlying RHQ session, the sessionId on the Subject). This had some mild
upside when it was convenient to share a session but has serious downside
as the logout of one gui session or cli job would invalidate the session
for any other gui or cli session using the same username.
So, this changes the behavior to make things behave more in line with what
folks hopefully expect. Each login gets its own RHQ session. Logout or
session timeout will not affect other logins.
One exception may be multiple sessions in the same browser, as there could
be conflict in cookie handling. This is not new and not a use case we are
planning to address.
In addition, I replaced some SubjectManagerLocal methods and supporting
queries with equivalent Criteria calls.
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 1ae43ca..8c76e70 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
@@ -59,22 +59,6 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
*/
@Entity
@NamedQueries( {
- @NamedQuery(name = Subject.QUERY_FIND_BY_IDS, query = "" //
- + "SELECT s " //
- + " FROM Subject s " //
- + " WHERE s.id IN ( :ids ) " //
- + " AND s.fsystem = FALSE " //
- + " AND s.factive = TRUE"),
-
- @NamedQuery(name = Subject.QUERY_FIND_ALL, query = "" //
- + "SELECT s " //
- + " FROM Subject s " //
- + " WHERE s.fsystem = false"),
-
- @NamedQuery(name = Subject.QUERY_FIND_BY_NAME, query = "" //
- + "SELECT s " //
- + " FROM Subject s " //
- + " WHERE s.name = :name"),
@NamedQuery(name = Subject.QUERY_GET_SUBJECTS_ASSIGNED_TO_ROLE, query = "" //
+ "SELECT s " //
@@ -230,9 +214,6 @@ import org.rhq.core.domain.resource.group.ResourceGroup;
@Table(name = "RHQ_SUBJECT")
/*@Cache(usage= CacheConcurrencyStrategy.TRANSACTIONAL)*/
public class Subject implements Serializable {
- 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";
public static final String QUERY_GET_SUBJECTS_ASSIGNED_TO_ROLE = "Subject.getSubjectsAssignedToRole";
@@ -313,7 +294,7 @@ public class Subject implements Serializable {
@OneToMany(mappedBy = "owner", fetch = FetchType.LAZY)
private Set<Repo> ownedRepos;
-
+
// When a subject is removed any owned dashboards are removed automatically
@OneToMany(mappedBy = "owner", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
private List<Dashboard> ownedDashboards = null;
@@ -512,14 +493,14 @@ public class Subject implements Serializable {
this.ownedGroups = ownedGroups;
}
- protected Set<Repo> getOwnedrepos(){
+ protected Set<Repo> getOwnedrepos() {
return ownedRepos;
}
-
+
protected void setOwnedRepos(Set<Repo> repos) {
ownedRepos = repos;
}
-
+
protected List<Dashboard> getOwnedDashboards() {
return ownedDashboards;
}
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
index 5fb91e2..57aba89 100644
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
+++ b/modules/core/domain/src/test/java/org/rhq/core/domain/test/QueryAllTest.java
@@ -214,11 +214,13 @@ public class QueryAllTest extends AbstractEJB3Test {
tm.begin();
EntityManager em = getEntityManager();
try {
- Query q = PersistenceUtility.createCountQuery(em, Subject.QUERY_FIND_ALL);
+ String queryString = "SELECT COUNT(*) FROM Subject s WHERE s.fsystem = false";
+
+ Query q = em.createQuery(queryString);
long count = (Long) q.getSingleResult();
- q = PersistenceUtility.createQueryWithOrderBy(em, Subject.QUERY_FIND_ALL, new OrderingField("firstName",
- PageOrdering.ASC), new OrderingField("lastName", PageOrdering.DESC));
+ queryString = "SELECT s FROM Subject s WHERE s.fsystem = false ORDER BY s.firstName ASC, s.lastName DESC";
+ q = em.createQuery(queryString);
long size = q.getResultList().size();
assert count == size;
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
index 6819ae6..d7c3ae2 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/role/AddUsersFormPrepareAction.java
@@ -1,91 +1,101 @@
-/*
- * 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.gui.admin.role;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-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.authz.Role;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.legacy.Constants;
-import org.rhq.enterprise.gui.legacy.util.RequestUtils;
-import org.rhq.enterprise.gui.legacy.util.SessionUtils;
-import org.rhq.enterprise.gui.util.WebUtility;
-import org.rhq.enterprise.server.auth.SubjectManagerLocal;
-import org.rhq.enterprise.server.util.LookupUtil;
-
-/**
- * An Action that retrieves data from the BizApp to facilitate display of the <em>Add Role Users</em> form.
- */
-public class AddUsersFormPrepareAction extends TilesAction {
- @Override
- public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- Log log = LogFactory.getLog(AddUsersFormPrepareAction.class.getName());
-
- AddUsersForm addForm = (AddUsersForm) form;
- Integer roleId = addForm.getR();
-
- if (roleId == null) {
- roleId = RequestUtils.getRoleId(request);
- }
-
- Role role = (Role) request.getAttribute(Constants.ROLE_ATTR);
- if (role == null) {
- RequestUtils.setError(request, Constants.ERR_ROLE_NOT_FOUND);
- return null;
- }
-
- addForm.setR(role.getId());
-
- PageControl pca = WebUtility.getPageControl(request, "a");
- PageControl pcp = WebUtility.getPageControl(request, "p");
-
- log.trace("available page control: " + pca);
- log.trace("pending page control: " + pcp);
-
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
- /* pending users are those on the right side of the "add
- * to list" widget- awaiting association with the rolewhen the form's "ok" button is clicked. */
- Integer[] pendingUserIds = SessionUtils.getList(request.getSession(), Constants.PENDING_USERS_SES_ATTR);
-
- log.trace("getting pending users for role [" + roleId + "]");
- PageList<Subject> pendingUsers = subjectManager.findSubjectsById(pendingUserIds, pcp);
- request.setAttribute(Constants.PENDING_USERS_ATTR, pendingUsers);
-
- /*
- * available users are all users in the system that are /not/ associated with the role and are not pending
- */
- log.trace("getting available users for role [" + roleId + "]");
- PageList<Subject> availableUsers = subjectManager.findAvailableSubjectsForRole(RequestUtils.getSubject(request),
- roleId, pendingUserIds, pca);
- request.setAttribute(Constants.AVAIL_USERS_ATTR, availableUsers);
-
- return null;
- }
-}
\ No newline at end of file
+/*
+ * 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.gui.admin.role;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+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.authz.Role;
+import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.enterprise.gui.legacy.Constants;
+import org.rhq.enterprise.gui.legacy.util.RequestUtils;
+import org.rhq.enterprise.gui.legacy.util.SessionUtils;
+import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.auth.SubjectManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * An Action that retrieves data from the BizApp to facilitate display of the <em>Add Role Users</em> form.
+ */
+public class AddUsersFormPrepareAction extends TilesAction {
+ @Override
+ public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception {
+ Log log = LogFactory.getLog(AddUsersFormPrepareAction.class.getName());
+
+ AddUsersForm addForm = (AddUsersForm) form;
+ Integer roleId = addForm.getR();
+
+ if (roleId == null) {
+ roleId = RequestUtils.getRoleId(request);
+ }
+
+ Role role = (Role) request.getAttribute(Constants.ROLE_ATTR);
+ if (role == null) {
+ RequestUtils.setError(request, Constants.ERR_ROLE_NOT_FOUND);
+ return null;
+ }
+
+ addForm.setR(role.getId());
+
+ PageControl pca = WebUtility.getPageControl(request, "a");
+ PageControl pcp = WebUtility.getPageControl(request, "p");
+
+ log.trace("available page control: " + pca);
+ log.trace("pending page control: " + pcp);
+
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+
+ /* pending users are those on the right side of the "add
+ * to list" widget- awaiting association with the rolewhen the form's "ok" button is clicked. */
+ Integer[] pendingUserIds = SessionUtils.getList(request.getSession(), Constants.PENDING_USERS_SES_ATTR);
+
+ log.trace("getting pending users for role [" + roleId + "]");
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterIds(pendingUserIds);
+ c.addFilterFsystem(false);
+ c.addFilterFactive(true);
+ c.fetchRoles(true);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> pendingUsers = subjectManager.findSubjectsByCriteria(RequestUtils.getSubject(request), c);
+ request.setAttribute(Constants.PENDING_USERS_ATTR, pendingUsers);
+
+ /*
+ * available users are all users in the system that are /not/ associated with the role and are not pending
+ */
+ log.trace("getting available users for role [" + roleId + "]");
+ PageList<Subject> availableUsers = subjectManager.findAvailableSubjectsForRole(
+ RequestUtils.getSubject(request), roleId, pendingUserIds, pca);
+ request.setAttribute(Constants.AVAIL_USERS_ATTR, availableUsers);
+
+ return null;
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
index e5936fa..c971d38 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/AddUserRolesFormPrepareAction.java
@@ -1,98 +1,98 @@
-/*
- * 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.gui.admin.user;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.tiles.ComponentContext;
-
-import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.authz.Role;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.legacy.Constants;
-import org.rhq.enterprise.gui.legacy.action.WorkflowPrepareAction;
-import org.rhq.enterprise.gui.legacy.util.RequestUtils;
-import org.rhq.enterprise.gui.legacy.util.SessionUtils;
-import org.rhq.enterprise.gui.util.WebUtility;
-import org.rhq.enterprise.server.auth.SubjectManagerLocal;
-import org.rhq.enterprise.server.authz.RoleManagerLocal;
-import org.rhq.enterprise.server.util.LookupUtil;
-
-/**
- * An Action that retrieves data to facilitate display of the <em>AddUserRoles</em> form. The purpose of this is to add
- * Roles to a given user.
- */
-public class AddUserRolesFormPrepareAction extends WorkflowPrepareAction {
- @Override
- @SuppressWarnings("deprecation")
- public ActionForward workflow(ComponentContext context, ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- Log log = LogFactory.getLog(AddUserRolesFormPrepareAction.class.getName());
-
- AddUserRolesForm addForm = (AddUserRolesForm) form;
- Integer userId = addForm.getU();
-
- if (userId == null) {
- userId = RequestUtils.getUserId(request);
- }
-
- PageControl pca = WebUtility.getPageControl(request, "a");
- PageControl pcp = WebUtility.getPageControl(request, "p");
-
- log.trace("available page control: " + pca);
- log.trace("pending page control: " + pcp);
- log.trace("getting user [" + userId + "]");
-
- SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- RoleManagerLocal roleManager = LookupUtil.getRoleManager();
-
- Subject user = subjectManager.getSubjectById(userId);
- if (user == null) {
- throw new NullPointerException("User [" + userId + "] is not known");
- }
-
- request.setAttribute(Constants.USER_ATTR, user);
- addForm.setU(user.getId());
-
- /* pending roles are those on the right side of the "add
- * to list" widget- awaiting association with the userwhen the form's "ok" button is clicked. */
- Integer[] pendingRoleIds = SessionUtils.getList(request.getSession(), Constants.PENDING_ROLES_SES_ATTR);
-
- log.trace("getting pending roles for user [" + userId + "]");
- PageList<Role> pendingRoles = roleManager.findRolesByIds(pendingRoleIds, pcp);
- request.setAttribute(Constants.PENDING_ROLES_ATTR, pendingRoles);
-
- /*
- * available roles are all roles in the system that are not associated with the user and are not pending
- */
- log.trace("getting available roles for user [" + userId + "]");
- PageList<Role> availableRoles = roleManager.findAvailableRolesForSubject(RequestUtils.getSubject(request),
- userId, pendingRoleIds, pca);
- request.setAttribute(Constants.AVAIL_ROLES_ATTR, availableRoles);
-
- return null;
- }
-}
\ No newline at end of file
+/*
+ * 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.gui.admin.user;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.tiles.ComponentContext;
+
+import org.rhq.core.domain.auth.Subject;
+import org.rhq.core.domain.authz.Role;
+import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.gui.legacy.Constants;
+import org.rhq.enterprise.gui.legacy.action.WorkflowPrepareAction;
+import org.rhq.enterprise.gui.legacy.util.RequestUtils;
+import org.rhq.enterprise.gui.legacy.util.SessionUtils;
+import org.rhq.enterprise.gui.util.WebUtility;
+import org.rhq.enterprise.server.auth.SubjectManagerLocal;
+import org.rhq.enterprise.server.authz.RoleManagerLocal;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * An Action that retrieves data to facilitate display of the <em>AddUserRoles</em> form. The purpose of this is to add
+ * Roles to a given user.
+ */
+public class AddUserRolesFormPrepareAction extends WorkflowPrepareAction {
+ @Override
+ @SuppressWarnings("deprecation")
+ public ActionForward workflow(ComponentContext context, ActionMapping mapping, ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception {
+ Log log = LogFactory.getLog(AddUserRolesFormPrepareAction.class.getName());
+
+ AddUserRolesForm addForm = (AddUserRolesForm) form;
+ Integer userId = addForm.getU();
+
+ if (userId == null) {
+ userId = RequestUtils.getUserId(request);
+ }
+
+ PageControl pca = WebUtility.getPageControl(request, "a");
+ PageControl pcp = WebUtility.getPageControl(request, "p");
+
+ log.trace("available page control: " + pca);
+ log.trace("pending page control: " + pcp);
+ log.trace("getting user [" + userId + "]");
+
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ RoleManagerLocal roleManager = LookupUtil.getRoleManager();
+
+ Subject user = subjectManager.getSubjectById(userId);
+ if (user == null) {
+ throw new NullPointerException("User [" + userId + "] is not known");
+ }
+
+ request.setAttribute(Constants.USER_ATTR, user);
+ addForm.setU(user.getId());
+
+ /* pending roles are those on the right side of the "add
+ * to list" widget- awaiting association with the userwhen the form's "ok" button is clicked. */
+ Integer[] pendingRoleIds = SessionUtils.getList(request.getSession(), Constants.PENDING_ROLES_SES_ATTR);
+
+ log.trace("getting pending roles for user [" + userId + "]");
+ PageList<Role> pendingRoles = roleManager.findRolesByIds(pendingRoleIds, pcp);
+ request.setAttribute(Constants.PENDING_ROLES_ATTR, pendingRoles);
+
+ /*
+ * available roles are all roles in the system that are not associated with the user and are not pending
+ */
+ log.trace("getting available roles for user [" + userId + "]");
+ PageList<Role> availableRoles = roleManager.findAvailableRolesForSubject(RequestUtils.getSubject(request),
+ userId, pendingRoleIds, pca);
+ request.setAttribute(Constants.AVAIL_ROLES_ATTR, availableRoles);
+
+ return null;
+ }
+}
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
index 6c0d07d..364e78b 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/admin/user/ListAction.java
@@ -1,46 +1,53 @@
-/*
- * 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.gui.admin.user;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.tiles.ComponentContext;
-import org.apache.struts.tiles.actions.TilesAction;
-import org.rhq.core.domain.util.PageControl;
-import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.legacy.Constants;
-import org.rhq.enterprise.gui.util.WebUtility;
-import org.rhq.enterprise.server.util.LookupUtil;
-
-/**
- * An Action that retrieves all users from the BizApp.
- */
-public class ListAction extends TilesAction {
- public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
- PageControl pc = WebUtility.getPageControl(request);
- PageList users = LookupUtil.getSubjectManager().findAllSubjects(pc);
- request.setAttribute(Constants.ALL_USERS_ATTR, users);
-
- return null;
- }
+/*
+ * 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.gui.admin.user;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+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.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
+import org.rhq.enterprise.gui.legacy.Constants;
+import org.rhq.enterprise.gui.legacy.util.RequestUtils;
+import org.rhq.enterprise.server.util.LookupUtil;
+
+/**
+ * An Action that retrieves all users from the BizApp.
+ */
+public class ListAction extends TilesAction {
+ public ActionForward execute(ComponentContext context, ActionMapping mapping, ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception {
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> users = LookupUtil.getSubjectManager().findSubjectsByCriteria(
+ RequestUtils.getSubject(request), c);
+ request.setAttribute(Constants.ALL_USERS_ATTR, users);
+
+ return null;
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
index 6aaafdd2..5c06432 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/CreateRepoUIBean.java
@@ -19,7 +19,6 @@
package org.rhq.enterprise.gui.content;
import java.util.ArrayList;
-import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.model.SelectItem;
@@ -27,7 +26,9 @@ import javax.faces.model.SelectItem;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.content.Repo;
-import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
@@ -41,7 +42,7 @@ public class CreateRepoUIBean {
public CreateRepoUIBean() {
initNewRepo();
}
-
+
public Repo getRepo() {
return newRepo;
}
@@ -52,21 +53,25 @@ public class CreateRepoUIBean {
public SelectItem[] getAvailableOwners() {
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
- List<Subject> subjects = subjectManager.findAllSubjects(PageControl.getUnlimitedInstance());
-
+ Subject subject = EnterpriseFacesContextUtility.getSubject();
+
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> subjects = subjectManager.findSubjectsByCriteria(subject, c);
+
ArrayList<SelectItem> items = new ArrayList<SelectItem>(subjects.size());
-
+
items.add(new SelectItem(null, "--None--"));
-
- for(Subject s : subjects) {
+
+ for (Subject s : subjects) {
SelectItem item = new SelectItem(s.getName(), s.getName());
items.add(item);
}
-
+
return items.toArray(new SelectItem[items.size()]);
}
-
+
public boolean isRepositoryManager() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().hasGlobalPermission(subject, Permission.MANAGE_REPOSITORIES);
@@ -90,12 +95,12 @@ public class CreateRepoUIBean {
initNewRepo();
return "save";
}
-
+
public String cancel() {
initNewRepo();
return "cancel";
}
-
+
private void updateRepoOwner(Subject loggedInSubject) {
if (newRepo.getOwner().getName() == null) {
newRepo.setOwner(null);
@@ -107,15 +112,15 @@ public class CreateRepoUIBean {
newRepo.setOwner(s);
}
}
-
+
private void initNewRepo() {
newRepo = new Repo();
-
+
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
+
//use a copy so that we can modify it without invalidating the user in the session
Subject currenUserCopy = subjectManager.getSubjectById(EnterpriseFacesContextUtility.getSubject().getId());
-
+
newRepo.setOwner(currenUserCopy);
}
}
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
index d74a836..7651abd 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/content/RepoDetailsUIBean.java
@@ -19,24 +19,23 @@
package org.rhq.enterprise.gui.content;
import java.util.ArrayList;
-import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.model.SelectItem;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.richfaces.event.UploadEvent;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.content.ContentSyncStatus;
import org.rhq.core.domain.content.Repo;
import org.rhq.core.domain.content.RepoSyncResults;
-import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.criteria.SubjectCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.core.gui.util.FacesContextUtility;
import org.rhq.enterprise.gui.util.EnterpriseFacesContextUtility;
-import org.rhq.enterprise.server.auth.SubjectManagerBean;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.content.ContentException;
import org.rhq.enterprise.server.content.RepoManagerLocal;
@@ -61,7 +60,7 @@ public class RepoDetailsUIBean {
this.repo = null;
loadRepo();
}
-
+
public boolean getCurrentlySyncing() {
String syncStatus = getSyncStatus();
if (!syncStatus.equals(ContentSyncStatus.SUCCESS.toString())
@@ -105,38 +104,42 @@ public class RepoDetailsUIBean {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().hasGlobalPermission(subject, Permission.MANAGE_REPOSITORIES);
}
-
+
public boolean isEditable() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().canUpdateRepo(subject, getRepo().getId());
}
-
+
public boolean isInventoryManager() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
return LookupUtil.getAuthorizationManager().isInventoryManager(subject);
}
-
+
public boolean getHasContentSources() {
return getRepo().getContentSources().size() > 0;
}
-
+
public SelectItem[] getAvailableOwners() {
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
- List<Subject> subjects = subjectManager.findAllSubjects(PageControl.getUnlimitedInstance());
-
+ Subject subject = EnterpriseFacesContextUtility.getSubject();
+
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> subjects = subjectManager.findSubjectsByCriteria(subject, c);
+
ArrayList<SelectItem> items = new ArrayList<SelectItem>(subjects.size());
-
+
items.add(new SelectItem(null, "--None--"));
-
- for(Subject s : subjects) {
+
+ for (Subject s : subjects) {
SelectItem item = new SelectItem(s.getName(), s.getName());
items.add(item);
}
-
+
return items.toArray(new SelectItem[items.size()]);
}
-
+
public String sync() {
Subject subject = EnterpriseFacesContextUtility.getSubject();
int[] repoIds = { FacesContextUtility.getRequiredRequestParameter("id", Integer.class) };
@@ -203,7 +206,7 @@ public class RepoDetailsUIBean {
}
}
}
-
+
private void updateRepoOwner(Subject loggedInSubject) {
if (repo.getOwner().getName() == null) {
repo.setOwner(null);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
index 58cbe8b..39b6076 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SessionManager.java
@@ -91,9 +91,10 @@ public class SessionManager {
*
* @param subject
*
- * @return the session id assigned to the new session
+ * @return the Subject associated with session. Note, this may be a copy of the Subject passed into the method. The
+ * sessionId will be assigned.
*/
- public int put(Subject subject) {
+ public Subject put(Subject subject) {
return put(subject, DEFAULT_TIMEOUT);
}
@@ -103,50 +104,30 @@ public class SessionManager {
* @param subject
* @param timeout the timeout for the session, in milliseconds
*
- * @return the session id assigned to the new session
+ * @return the Subject associated with session. This will be a copy of the Subject passed into the method (unless
+ * that Subject is overlord). The sessionId will be assigned.
*/
- public synchronized int put(Subject subject, long timeout) {
+ public synchronized Subject put(Subject subject, long timeout) {
Integer key;
do {
key = new Integer(_random.nextInt());
} while (_cache.containsKey(key));
- subject.setSessionId(key);
+ // Each session should have its own POJO Subject so that each can store a separate sessionId. The exception
+ // is our special-case shared singleton for overlord.
+ Subject sessionSubject;
+ if (subject.equals(overlordSubject)) {
+ sessionSubject = overlordSubject;
+ sessionSubject.setSessionId(key);
- _cache.put(key, new AuthSession(subject, timeout));
-
- return key.intValue();
- }
-
- /**
- * Lookup and return the session ID that is associated with the given username.
- *
- * @param username the username of the {@link Subject} that has a valid session
- *
- * @return session ID for the session of the give user
- *
- * @throws SessionNotFoundException
- * @throws SessionTimeoutException
- */
- public synchronized int getSessionIdFromUsername(String username) throws SessionNotFoundException,
- SessionTimeoutException {
- for (Map.Entry<Integer, AuthSession> map_entry : _cache.entrySet()) {
- int session_id = map_entry.getKey().intValue();
- AuthSession session = map_entry.getValue();
-
- if (session.getSubject(false).getName().equals(username)) {
- if (session.isExpired()) {
- throw new SessionTimeoutException();
- }
-
- session.getSubject(true); // this is our session - update the last access time
-
- return session_id;
- }
+ } else {
+ sessionSubject = getSessionSubject(subject, key);
}
- throw new SessionNotFoundException();
+ _cache.put(key, new AuthSession(sessionSubject, timeout));
+
+ return sessionSubject;
}
/**
@@ -200,6 +181,25 @@ public class SessionManager {
return;
}
+ /**
+ * Invalidates all sessions for the given username. This is for testing purposes ONLY.
+ *
+ * @param username username for the sessions to be invalidated
+ */
+ public synchronized void invalidate(String username) {
+ List<Integer> doomedSessionIds = new ArrayList<Integer>(_cache.size());
+ for (AuthSession s : _cache.values()) {
+ if (username.equals(s.getSubject(false).getName())) {
+ doomedSessionIds.add(s.getSubject(false).getSessionId());
+ }
+ }
+ for (Integer sessionId : doomedSessionIds) {
+ _cache.remove(new Integer(sessionId));
+ }
+
+ return;
+ }
+
public long getlastAccess(int sessionId) {
AuthSession session = _cache.get(sessionId);
if (session == null) {
@@ -225,23 +225,34 @@ public class SessionManager {
try {
// validate that the superuser session is still valid and update its LAT
getSubject(session_id);
+
} catch (SessionException e) {
// its been a while since the overlord has been needed - its session has expired.
// We need to create a new session and assign that new session ID to the instance this singleton holds internally
// no need to synchronize here - its OK if we concurrently create more than one session, they will eventually expire
- session_id = put(overlordSubject, OVERLORD_TIMEOUT);
+ session_id = put(overlordSubject, OVERLORD_TIMEOUT).getSessionId();
+ overlordSubject.setSessionId(session_id);
}
// we create a separate and detached Subject for each caller - do not share the copy this singleton holds internally
- Subject copy = new Subject();
- copy.setSessionId(session_id);
- copy.setId(overlordSubject.getId());
- copy.setFsystem(overlordSubject.getFsystem());
- copy.setFactive(overlordSubject.getFactive());
- copy.setName(overlordSubject.getName());
- copy.setFirstName(overlordSubject.getFirstName());
- copy.setLastName(overlordSubject.getLastName());
- copy.setRoles(overlordSubject.getRoles());
+ Subject copy = getSessionSubject(overlordSubject, session_id);
+ return copy;
+ }
+
+ private Subject getSessionSubject(Subject subject, Integer sessionId) {
+ Subject copy = new Subject(subject.getName(), subject.getFactive(), subject.getFsystem());
+ copy.setId(subject.getId());
+ copy.setSessionId(sessionId);
+
+ copy.setDepartment(subject.getDepartment());
+ copy.setEmailAddress(subject.getEmailAddress());
+ copy.setFirstName(subject.getFirstName());
+ copy.setLastName(subject.getLastName());
+ copy.setLdapRoles(subject.getLdapRoles());
+ copy.setOwnedGroups(subject.getOwnedGroups());
+ copy.setPhoneNumber(subject.getPhoneNumber());
+ copy.setRoles(subject.getRoles());
+ copy.setUserConfiguration(subject.getUserConfiguration());
return copy;
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
index 5d8ea27..8b9a325 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerBean.java
@@ -128,40 +128,6 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
}
/**
- * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#findSubjectsById(Integer[],PageControl)
- */
- @SuppressWarnings("unchecked")
- public PageList<Subject> findSubjectsById(Integer[] subjectIds, PageControl pc) {
- if ((subjectIds == null) || (subjectIds.length == 0)) {
- return new PageList<Subject>(pc);
- }
-
- pc.initDefaultOrderingField("s.name");
-
- String queryName = Subject.QUERY_FIND_BY_IDS;
- Query queryCount = PersistenceUtility.createCountQuery(entityManager, queryName);
- Query query = PersistenceUtility.createQueryWithOrderBy(entityManager, queryName, pc);
-
- List<Integer> subjectIdsList = Arrays.asList(subjectIds);
- queryCount.setParameter("ids", subjectIdsList);
- query.setParameter("ids", subjectIdsList);
-
- long count = (Long) queryCount.getSingleResult();
- List<Subject> subjects = query.getResultList();
-
- if (subjects != null) {
- // eagerly load in the members - can't use left-join due to PersistenceUtility usage; perhaps use EAGER
- for (Subject subject : subjects) {
- subject.getRoles().size();
- }
- } else {
- subjects = new ArrayList<Subject>();
- }
-
- return new PageList<Subject>(subjects, (int) count, pc);
- }
-
- /**
* @see org.rhq.enterprise.server.auth.SubjectManagerLocal#updateSubject(Subject, Subject)
*/
public Subject updateSubject(Subject whoami, Subject subjectToModify) {
@@ -289,17 +255,12 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
* @see org.rhq.enterprise.server.auth.SubjectManagerRemote#getSubjectByName(String)
*/
public Subject getSubjectByName(String username) {
- Subject subject;
- try {
- Query query = entityManager.createNamedQuery(Subject.QUERY_FIND_BY_NAME);
- query.setParameter("name", username);
- subject = (Subject) query.getSingleResult();
- } catch (NoResultException nre) {
- subject = null;
- }
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterName(username);
+ PageList<Subject> result = findSubjectsByCriteria(getOverlord(), c);
- return subject;
+ return result.isEmpty() ? null : result.get(0);
}
/**
@@ -332,24 +293,6 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
}
/**
- * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#findAllSubjects(PageControl)
- */
- @SuppressWarnings("unchecked")
- public PageList<Subject> findAllSubjects(PageControl pc) {
- pc.initDefaultOrderingField("s.name");
-
- String queryName = Subject.QUERY_FIND_ALL;
- Query subjectQueryCount = PersistenceUtility.createCountQuery(entityManager, queryName);
- Query subjectQuery = PersistenceUtility.createQueryWithOrderBy(entityManager, queryName, pc);
-
- long totalCount = (Long) subjectQueryCount.getSingleResult();
-
- List<Subject> subjects = subjectQuery.getResultList();
-
- return new PageList<Subject>(subjects, (int) totalCount, pc);
- }
-
- /**
* @see org.rhq.enterprise.server.auth.SubjectManagerLocal#getSubjectById(int)
*/
public Subject getSubjectById(int id) {
@@ -382,17 +325,6 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
// fetch the roles
subject.getRoles().size();
- // let's see if this user was already logged in with a valid session
- try {
- int sessionId = sessionManager.getSessionIdFromUsername(username);
- subject.setSessionId(sessionId);
- //insert processing for LDAP users who have registered before and have jdbc credentials, but no principal.
- log.debug("Processing subject '" + subject.getName() + "' for LDAP functionality.");
- //as already logged in as regular JDBC
- subject = processSubjectForLdap(subject, password);
- } catch (SessionException se) {
- // nope, no session; continue on so we can create the session
- }
} else {
// There is no subject in the database yet.
// If LDAP authentication is enabled and we cannot find the subject,
@@ -554,45 +486,26 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
}
/**
- * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#logout(Subject)
+ * @see org.rhq.enterprise.server.auth.SubjectManagerRemote#logout(Subject)
*/
public void logout(Subject subject) {
try {
- int sessionId = sessionManager.getSessionIdFromUsername(subject.getName());
- sessionManager.invalidate(sessionId);
- } catch (SessionTimeoutException ste) {
- // it's ok, logout can be considered successful if the user's session already timed out
- } catch (SessionNotFoundException snfe) {
- // it's ok, logout can be considered successful if the user's never logged in to begin with
+ // make sure the Subject is valid by pairing the name and sessionId
+ Subject s = getSubjectByNameAndSessionId(subject.getName(), subject.getSessionId());
+ sessionManager.invalidate(s.getSessionId());
+ } catch (Exception e) {
+ // ignore invalid logout request
}
}
/**
- * Logs out a user.
- *
- * @param sessionId The sessionId for the user to log out
- */
+ * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#logout(java.lang.int)
+ * */
public void logout(int sessionId) {
sessionManager.invalidate(sessionId);
}
/**
- * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#isLoggedIn(java.lang.String)
- */
- public boolean isLoggedIn(String username) {
- boolean loggedIn = false;
-
- try {
- sessionManager.getSessionIdFromUsername(username);
- loggedIn = true;
- } catch (SessionException e) {
- // safely ignore
- }
-
- return loggedIn;
- }
-
- /**
* @see org.rhq.enterprise.server.auth.SubjectManagerLocal#createPrincipal(Subject, String, String)
*/
@RequiredPermission(Permission.MANAGE_SECURITY)
@@ -669,17 +582,9 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
}
/**
- * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#loginUnauthenticated(String, boolean)
+ * @see org.rhq.enterprise.server.auth.SubjectManagerLocal#loginUnauthenticated(String)
*/
- public Subject loginUnauthenticated(String username, boolean reattach) throws LoginException {
- if (reattach) {
- try {
- int sessionId = sessionManager.getSessionIdFromUsername(username);
- return sessionManager.getSubject(sessionId);
- } catch (SessionException e) {
- // continue, we'll need to create a session
- }
- }
+ public Subject loginUnauthenticated(String username) throws LoginException {
Subject subject = getSubjectByName(username);
@@ -691,8 +596,8 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
throw new LoginException("User account has been disabled. [" + username + "]");
}
- sessionManager.put(subject, 1000L * 60 * 2); // 2mins only
-
+ // make sure we return the Subject returned from this call, which may differ from the one passed in
+ subject = sessionManager.put(subject, 1000L * 60 * 2); // 2mins only
return subject;
}
@@ -869,7 +774,6 @@ public class SubjectManagerBean implements SubjectManagerLocal, SubjectManagerRe
return new PageList<Subject>(subjects, (int) count, pc);
}
- @SuppressWarnings("unchecked")
public PageList<Subject> findSubjectsByCriteria(Subject subject, SubjectCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
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 2859b48..4b81769 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
@@ -48,16 +48,6 @@ public interface SubjectManagerLocal {
Subject loadUserConfiguration(Integer subjectId);
/**
- * Given a set of subject Ids, this returns a list of all the subjects.
- *
- * @param subjectIds
- * @param pageControl
- *
- * @return all the subjects with the given ID
- */
- PageList<Subject> findSubjectsById(Integer[] subjectIds, PageControl pageControl);
-
- /**
* This returns the system super user subject that can be used to authorize the caller for any other system call.
* This must <b>not</b> be exposed to remote clients.
*
@@ -66,27 +56,17 @@ public interface SubjectManagerLocal {
Subject getOverlord();
/**
- * 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);
-
- /**
- * Logs in a user without performing any authentication. This method should be used with care and not available to
+ * Logs in a user without performing any authentication. This method should be used with care and is not available to
* remote clients. Because of the unauthenticated nature of this login, the new login session will have a session
- * timeout of only a few seconds. However, if you pass in <code>true</code> for the "reattach", this method will
- * re-attach to an existing session for the user, if one is active already. If one does not exist, this method will
- * login and create a new session just as if that parameter was <code>false</code>.
+ * timeout of only two minutes.
*
- * @param user The user to authenticate and login
- * @param reattach If <code>true</code>, will re-attach to an existing login session, if one exists
+ * @param username The user to login
*
- * @return the user's {@link Subject}
+ * @return A Subject with an active session for the the user
*
* @throws LoginException if failed to create a new session for the given user
*/
- Subject loginUnauthenticated(String user, boolean reattach) throws LoginException;
+ Subject loginUnauthenticated(String username) throws LoginException;
/**
* Creates a new principal (username and password) in the internal database.
@@ -162,8 +142,6 @@ public interface SubjectManagerLocal {
Subject getSubjectBySessionId(int sessionId) throws Exception;
- boolean isLoggedIn(String username);
-
/**
* Creates a new subject, including their assigned roles, as well as an associated principal with the specified
* password.
@@ -196,7 +174,7 @@ public interface SubjectManagerLocal {
* @return the subject if the credentials are correct, null otherwise
*/
Subject checkAuthentication(String username, String password);
-
+
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// The following are shared with the Remote Interface
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
index 473d926..d8d3989 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/auth/SubjectManagerRemote.java
@@ -146,7 +146,7 @@ public interface SubjectManagerRemote {
/**
* Logs out a user.
*
- * @param username The username for the current user
+ * @param subject The Subject to log out. The sessionId must be valid.
*/
@WebMethod
void logout( //
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 84ae777..a8b1691 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
@@ -391,7 +391,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
} else {
Subject creator = this.subjectManager.getSubjectById(creatorSubjectId);
try {
- creator = this.subjectManager.loginUnauthenticated(creator.getName(), true);
+ creator = this.subjectManager.loginUnauthenticated(creator.getName());
} catch (LoginException e) {
throw new IllegalStateException(
"Unable to temporarily login to provided resource creator user for resource creation", e);
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
index 18c35b9..f4224d2 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/GroupOperationJob.java
@@ -96,7 +96,7 @@ public class GroupOperationJob extends OperationJob {
jobDetail);
// create a new session even if user is logged in elsewhere, we don't want to attach to that user's session
- Subject user = getUserWithSession(schedule.getSubject(), false);
+ Subject user = getUserWithSession(schedule.getSubject());
ResourceGroup group = schedule.getGroup();
// we need the operation definition to fill in the history item
@@ -126,10 +126,11 @@ public class GroupOperationJob extends OperationJob {
// now create detail composites from the resource list
List<ResourceOperationDetailsComposite> resourceComposites = new ArrayList<ResourceOperationDetailsComposite>();
+ Subject creator = getUserWithSession(user);
for (Resource nextResourceToOperateOn : resourcesToOperateOn) {
// create the non-quartz schedule entity for the given job execution context data
ResourceOperationSchedule resourceSchedule = createScheduleForResource(schedule, jobDetail.getGroup(),
- getUserWithSession(user, true), nextResourceToOperateOn);
+ creator, nextResourceToOperateOn);
// crate the resource-level history entity for the newly created non-quartz schedule entity
// this method also does the persisting
@@ -158,7 +159,7 @@ public class GroupOperationJob extends OperationJob {
+ "this resource operation to be cancelled.");
composite.history.setStatus(OperationRequestStatus.CANCELED);
composite.history = (ResourceOperationHistory) operationManager.updateOperationHistory(
- getUserWithSession(user, true), composite.history);
+ creator, composite.history);
continue;
}
@@ -169,7 +170,7 @@ public class GroupOperationJob extends OperationJob {
do {
Thread.sleep(5000);
updatedOperationHistory = operationManager.getOperationHistoryByHistoryId(
- getUserWithSession(user, true), resourceHistoryId);
+ getUserWithSession(user), resourceHistoryId);
// if the duration was ridiculously long, let's break out of here. this will rarely
// be triggered because our operation manager will timeout long running operations for us
@@ -191,7 +192,7 @@ public class GroupOperationJob extends OperationJob {
// failed to even send to the agent, immediately mark the job as failed
groupHistory.setErrorMessage(ThrowableUtil.getStackAsString(e));
groupHistory = (GroupOperationHistory) operationManager.updateOperationHistory(
- getUserWithSession(user, true), groupHistory);
+ getUserWithSession(user), groupHistory);
if (schedule.isHaltOnFailure()) {
hadFailure = true;
@@ -200,6 +201,7 @@ public class GroupOperationJob extends OperationJob {
}
} else {
// send the invocation requests without waiting for each to return
+ creator = getUserWithSession(user);
for (ResourceOperationDetailsComposite composite : resourceComposites) {
try {
invokeOperationOnResource(composite, operationManager);
@@ -210,8 +212,8 @@ public class GroupOperationJob extends OperationJob {
// failed to even send to the agent, immediately mark the job as failed
groupHistory.setErrorMessage(ThrowableUtil.getStackAsString(e));
- groupHistory = (GroupOperationHistory) operationManager.updateOperationHistory(
- getUserWithSession(user, true), groupHistory);
+ groupHistory = (GroupOperationHistory) operationManager.updateOperationHistory(creator,
+ groupHistory);
// Note: in actuality - I don't think users have a way in the user interface to turn on halt-on-failure for parallel execution.
// So this isHaltOnFailure will probably always be false. But in case we want to support this, leave this here.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
index 778838f..955de7a 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/OperationJob.java
@@ -54,10 +54,10 @@ public abstract class OperationJob implements Job {
*
* @throws Exception
*
- * @see SubjectManagerLocal#loginUnauthenticated(String, boolean)
+ * @see SubjectManagerLocal#loginUnauthenticated(String)
*/
- protected Subject getUserWithSession(Subject user, boolean reattach) throws Exception {
- return LookupUtil.getSubjectManager().loginUnauthenticated(user.getName(), reattach);
+ protected Subject getUserWithSession(Subject user) throws Exception {
+ return LookupUtil.getSubjectManager().loginUnauthenticated(user.getName());
}
protected void updateOperationScheduleEntity(JobDetail jobDetail, Date nextFireTime,
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
index c9e7b35..2b01fad 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/operation/ResourceOperationJob.java
@@ -28,7 +28,6 @@ import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.operation.OperationHistory;
import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.operation.bean.ResourceOperationSchedule;
import org.rhq.core.domain.resource.InventoryStatus;
@@ -85,7 +84,7 @@ public class ResourceOperationJob extends OperationJob {
// Login the schedule's subject so its assigned a session, so our security tests pass.
// Create a new session even if user is logged in elsewhere, we don't want to attach to that user's session
- schedule.setSubject(getUserWithSession(schedule.getSubject(), false));
+ schedule.setSubject(getUserWithSession(schedule.getSubject()));
// for the security check, can the user who scheduled the operation in the first
// place still have the authority to execute it against the resource in question
@@ -161,12 +160,12 @@ public class ResourceOperationJob extends OperationJob {
*/
void invokeOperationOnResource(ResourceOperationSchedule schedule, ResourceOperationHistory resourceHistory,
OperationManagerLocal operationManager) throws Exception {
- // make sure the session is still valid
- schedule.setSubject(getUserWithSession(schedule.getSubject(), true));
+ // make sure we have a valid session
+ Subject s = getUserWithSession(schedule.getSubject());
+ schedule.setSubject(s);
resourceHistory.setStartedTime();
- resourceHistory = (ResourceOperationHistory) operationManager.updateOperationHistory(
- getUserWithSession(schedule.getSubject(), true), resourceHistory);
+ resourceHistory = (ResourceOperationHistory) operationManager.updateOperationHistory(s, resourceHistory);
// now tell the agent to invoke it!
try {
@@ -187,7 +186,7 @@ public class ResourceOperationJob extends OperationJob {
} catch (Exception e) {
// failed to even send to the agent, immediately mark the job as failed
resourceHistory.setErrorMessage(ThrowableUtil.getStackAsString(e));
- operationManager.updateOperationHistory(getUserWithSession(schedule.getSubject(), true), resourceHistory);
+ operationManager.updateOperationHistory(s, resourceHistory);
operationManager.checkForCompletedGroupOperation(resourceHistory.getId());
throw e;
}
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
index 50ee3b6..b9fe4df 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/auth/test/SubjectManagerBeanTest.java
@@ -33,11 +33,11 @@ import org.rhq.core.domain.authz.Permission;
import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
-import org.rhq.core.domain.util.PageControl;
+import org.rhq.core.domain.criteria.SubjectCriteria;
import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.enterprise.server.auth.SessionManager;
import org.rhq.enterprise.server.auth.SessionNotFoundException;
-import org.rhq.enterprise.server.auth.SessionTimeoutException;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
@@ -77,14 +77,10 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
// clean out all users' sessions (a user can have more than one session)
while (usernames.size() > 0) {
- String doomed_user = usernames.get(0);
try {
- int session = session_manager.getSessionIdFromUsername(doomed_user);
- session_manager.invalidate(session);
- } catch (SessionTimeoutException e) {
- // keep going - just means we cleaned out that expired session
- usernames.remove(0);
- } catch (SessionNotFoundException e) {
+ String doomed_user = usernames.get(0);
+ session_manager.invalidate(doomed_user);
+ } finally {
usernames.remove(0);
}
}
@@ -106,7 +102,6 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
// create the user
Subject new_user = new Subject("dummy-user", true, false);
new_user = subjectManager.createSubject(superuser, new_user);
- createSession(new_user);
assert new_user.getUserConfiguration() == null : "There should not be any configuration yet";
// set and persist an empty configuration
@@ -128,6 +123,7 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
assert new_user.getUserConfiguration() != null : "A full configuration should have been set";
assert new_user.getUserConfiguration().getProperties().size() == 2 : "A full config should have been set";
+ new_user = createSession(new_user);
new_user = subjectManager.updateSubject(new_user, new_user); // let the user itself change it
config = new_user.getUserConfiguration();
assert config != null : "A full configuration should have been persisted";
@@ -169,7 +165,7 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
try {
superuser = subjectManager.getOverlord();
rhqadmin = subjectManager.getSubjectByName("rhqadmin");
- createSession(rhqadmin);
+ rhqadmin = createSession(rhqadmin);
try {
superuser.setFactive(false);
@@ -208,9 +204,9 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
try {
superuser = subjectManager.getOverlord();
- createSession(superuser);
+ superuser = createSession(superuser);
rhqadmin = subjectManager.getSubjectByName("rhqadmin");
- createSession(rhqadmin);
+ rhqadmin = createSession(rhqadmin);
try {
subjectManager.deleteUsers(superuser, new int[] { rhqadmin.getId() });
@@ -268,7 +264,7 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
assert rhqadmin.getName().equals("rhqadmin");
assert authorizationManager.getExplicitGlobalPermissions(rhqadmin).containsAll(all_global_perms);
- createSession(rhqadmin); // our test needs to ensure the rhqadmin user has a session
+ rhqadmin = createSession(rhqadmin); // our test needs to ensure the rhqadmin user has a session
// check the subjects that do and do not have principals
Collection<String> all_users_with_principals = subjectManager.findAllUsersWithPrincipals();
@@ -278,7 +274,19 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
assert subjectManager.isUserWithPrincipal(rhqadmin.getName());
// get all subjects, whether or not they have a principal
- PageList<Subject> all_subjects = subjectManager.findAllSubjects(PageControl.getUnlimitedInstance());
+ SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
+ Subject subject = null;
+ try {
+ subject = subjectManager.loginUnauthenticated("rhqadmin");
+ } catch (Exception e) {
+ assert false : "There must be at least rhqadmin user";
+ }
+
+ SubjectCriteria c = new SubjectCriteria();
+ c.addFilterFsystem(false);
+ c.addSortName(PageOrdering.ASC);
+ PageList<Subject> all_subjects = subjectManager.findSubjectsByCriteria(subject, c);
+
assert all_subjects.size() >= 1 : "There must be at least rhqadmin user";
assert !all_subjects.contains(superuser) : "The superuser should not have been returned in the list";
assert all_subjects.contains(rhqadmin) : "Missing user [" + rhqadmin + "] from: " + all_subjects;
@@ -296,14 +304,14 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
new_user.setDepartment("my-department");
new_user = subjectManager.createSubject(rhqadmin, new_user);
- createSession(new_user);
+ new_user = createSession(new_user);
assert !subjectManager.isUserWithPrincipal(new_user.getName());
subjectManager.createPrincipal(subjectManager.getOverlord(), new_user.getName(), "my-password");
assert subjectManager.isUserWithPrincipal(new_user.getName());
// make sure it was persisted and you can actually login with it
assert new_user.getId() != 0;
- Subject login_new_user = subjectManager.loginUnauthenticated(new_user.getName(), false);
+ Subject login_new_user = subjectManager.loginUnauthenticated(new_user.getName());
assert login_new_user.equals(new_user);
new_user = login_new_user; // login_new_user was given a new session ID
@@ -381,29 +389,45 @@ public class SubjectManagerBeanTest extends AbstractEJB3Test {
getTransactionManager().begin();
try {
- Subject subject1 = subjectManager.loginUnauthenticated("rhqadmin", false);
+ Subject subject1 = subjectManager.loginUnauthenticated("rhqadmin");
int session1 = subject1.getSessionId();
Thread.sleep(500); // just wait a bit
- Subject subject2 = subjectManager.loginUnauthenticated("rhqadmin", true);
+ Subject subject2 = subjectManager.loginUnauthenticated("rhqadmin");
int session2 = subject2.getSessionId();
- assert session1 == session2 : "The same session should be been assigned when logging in twice";
+ assert session1 != session2 : "The same sessionId should never be assigned when logging in twice";
assert subject1.equals(subject2);
- assert subjectManager.isLoggedIn("rhqadmin");
- subjectManager.logout(session2);
- assert !subjectManager.isLoggedIn("rhqadmin");
+ Subject s = subjectManager.getSubjectByNameAndSessionId("rhqadmin", subject1.getSessionId());
+ assert s.getSessionId() == session1;
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin", subject2.getSessionId());
+ assert s.getSessionId() == session2;
- subject2 = subjectManager.loginUnauthenticated("rhqadmin", true);
- session2 = subject2.getSessionId();
+ subjectManager.logout(session1);
+ try {
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin", subject1.getSessionId());
+ assert false : "Session should be invalid";
+ } catch (SessionNotFoundException ok) {
+ }
+
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin", subject2.getSessionId());
+ assert s.getSessionId() == session2;
- assert session1 != session2 : "A new session should have been assigned after logging out";
- assert subject2.equals(subjectManager.getSubjectBySessionId(session2));
+ // this should ne a no-op, no exception
+ subjectManager.logout(session1);
+
+ subjectManager.logout(session2);
+ try {
+ s = subjectManager.getSubjectByNameAndSessionId("rhqadmin", subject2.getSessionId());
+ fail("Session should be invalid");
+ } catch (SessionNotFoundException e) {
+ // expected
+ }
try {
- subjectManager.loginUnauthenticated("rhqadminX", true);
+ subjectManager.loginUnauthenticated("rhqadminX");
assert false : "Should not have logged in - provided a bad username";
} catch (LoginException ok) {
}
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 410feb9..dba76ed 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
@@ -34,7 +34,6 @@ import javax.transaction.TransactionManager;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.authz.Role;
import org.rhq.core.domain.configuration.DynamicConfigurationPropertyValue;
import org.rhq.core.domain.content.PackageType;
@@ -63,32 +62,32 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
List<DynamicConfigurationPropertyValue> stringList = bean.lookupValues("foo");
//Verify
- assert stringList !=null;
+ assert stringList != null;
assert stringList.size() == 0;
- }
+ }
@Test(enabled = ENABLED)
public void user() throws Exception {
+ String queryString = "SELECT s FROM Subject s WHERE s.fsystem = false";
+
// Setup
- int existingUserCount = countForQuery(Subject.QUERY_FIND_ALL);
+ int existingUserCount = countForQuery(queryString, false);
// Test
- List<DynamicConfigurationPropertyValue> users =
- bean.lookupValues(PropertyExpressionEvaluator.KEY_USERS);
+ List<DynamicConfigurationPropertyValue> users = bean.lookupValues(PropertyExpressionEvaluator.KEY_USERS);
// Verify
outputList(users);
assert users.size() == existingUserCount : "Expected: " + existingUserCount + ", Found: " + users.size();
- }
+ }
@Test(enabled = ENABLED)
- public void roles() throws Exception{
+ public void roles() throws Exception {
// Setup
int existingRoleCount = countForQuery(Role.QUERY_FIND_ALL);
// Test
- List<DynamicConfigurationPropertyValue> roles =
- bean.lookupValues(PropertyExpressionEvaluator.KEY_ROLES);
+ List<DynamicConfigurationPropertyValue> roles = bean.lookupValues(PropertyExpressionEvaluator.KEY_ROLES);
// Verify
outputList(roles);
@@ -112,8 +111,7 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
packageType = new PackageType("dynamicConfigPropBeanTestType", resourceType);
entityManager.persist(packageType);
tx.commit();
- }
- catch (Exception e) {
+ } catch (Exception e) {
if (tx.getStatus() == Status.STATUS_ACTIVE) {
tx.rollback();
}
@@ -123,8 +121,8 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
assert existingPackageTypes > 0 : "Package type created in setup was not written correctly";
// Test
- List<DynamicConfigurationPropertyValue> types =
- bean.lookupValues(PropertyExpressionEvaluator.KEY_PACKAGE_TYPES);
+ List<DynamicConfigurationPropertyValue> types = bean
+ .lookupValues(PropertyExpressionEvaluator.KEY_PACKAGE_TYPES);
// Verify
assert types.size() == existingPackageTypes : "Expected: " + existingPackageTypes + ", Found: " + types.size();
@@ -138,12 +136,11 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
resourceType = entityManager.find(ResourceType.class, resourceType.getId());
entityManager.remove(resourceType);
- packageType = entityManager.find(PackageType.class, packageType.getId());
+ packageType = entityManager.find(PackageType.class, packageType.getId());
entityManager.remove(packageType);
tx.commit();
- }
- catch (Exception e) {
+ } catch (Exception e) {
if (tx.getStatus() == Status.STATUS_ACTIVE) {
tx.rollback();
}
@@ -151,10 +148,16 @@ public class DynamicConfigurationPropertyBeanTest extends AbstractEJB3Test {
}
private int countForQuery(String queryName) throws NotSupportedException, SystemException {
+ return countForQuery(queryName, true);
+ }
+
+ @SuppressWarnings("unchecked")
+ private int countForQuery(String queryString, boolean isName) throws NotSupportedException, SystemException {
+
getTransactionManager().begin();
EntityManager entityManager = getEntityManager();
- Query query = entityManager.createNamedQuery(queryName);
+ Query query = (isName) ? entityManager.createNamedQuery(queryString) : entityManager.createQuery(queryString);
List existing = query.getResultList();
int count = existing.size();
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
index d6b14cb..e580229 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/resource/test/ResourceStorageTest.java
@@ -60,7 +60,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
PageControl pc = new PageControl(1, 5, new OrderingField("res.name", PageOrdering.ASC));
- Subject subject = subjectManager.loginUnauthenticated("ghinkle", true);
+ Subject subject = subjectManager.loginUnauthenticated("ghinkle");
//Subject subject = subjectManager.getOverlord();
createSession(subject);
@@ -187,7 +187,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
try {
DiscoveryBossLocal discoveryBoss = LookupUtil.getDiscoveryBoss();
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
- Subject rhqadmin = subjectManager.loginUnauthenticated("rhqadmin", true);
+ Subject rhqadmin = subjectManager.loginUnauthenticated("rhqadmin");
createSession(rhqadmin);
Map<Resource, List<Resource>> queue = discoveryBoss.getQueuedPlatformsAndServers(rhqadmin, PageControl
@@ -200,11 +200,13 @@ public class ResourceStorageTest extends AbstractEJB3Test {
}
}
+ @SuppressWarnings("unused")
@Test(groups = "integration.ejb3")
public void resourceTest() throws Exception {
// TODO GH: Implement actual tests
System.out.println("foo");
+
ResourceManagerLocal resourceManager = (ResourceManagerLocal) getInitialContext().lookup(
ResourceManagerBean.class.getSimpleName() + "/local");
@@ -214,7 +216,7 @@ public class ResourceStorageTest extends AbstractEJB3Test {
AuthorizationManagerLocal authorizationManager = (AuthorizationManagerLocal) getInitialContext().lookup(
AuthorizationManagerBean.class.getSimpleName() + "/local");
- Subject rhqadmin = subjectManager.loginUnauthenticated("rhqadmin", true);
+ Subject rhqadmin = subjectManager.loginUnauthenticated("rhqadmin");
System.out.println(rhqadmin);
}
}
\ No newline at end of file
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 abbe782..5811792 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
@@ -145,7 +145,7 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
}
}
- if (stats!=null)
+ if (stats != null)
start = stats.getQueryExecutionCount();
else
start = 0;
@@ -205,9 +205,10 @@ public abstract class AbstractEJB3Test extends AssertJUnit {
* annotations by creating sessions for different users with different permissions.
*
* @param subject a JON subject
+ * @return the session activated subject, a copy of the subjected passed in.
*/
- public void createSession(Subject subject) {
- SessionManager.getInstance().put(subject);
+ public Subject createSession(Subject subject) {
+ return SessionManager.getInstance().put(subject);
}
/**
diff --git a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
index 45412c4..6ff56db 100644
--- a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
+++ b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/util/SessionTestHelper.java
@@ -87,8 +87,8 @@ public class SessionTestHelper {
em.persist(newSubject);
em.flush();
- SessionManager.getInstance().put(newSubject, 1000 * 300);
-
+ // return the copy, not the original
+ newSubject = SessionManager.getInstance().put(newSubject, 1000 * 300);
return newSubject;
}
diff --git a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
index 26c9cdf..16c7644 100644
--- a/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
+++ b/modules/enterprise/server/plugins/alert-cli/src/main/java/org/rhq/enterprise/server/plugins/alertCli/CliSender.java
@@ -73,31 +73,31 @@ public class CliSender extends AlertSender<CliComponent> {
private static final String ENGINE_NAME = "JavaScript";
private static final int MAX_RESULT_SIZE = 4000;
-
+
public static final String PROP_PACKAGE_ID = "packageId";
public static final String PROP_REPO_ID = "repoId";
public static final String PROP_USER_ID = "userId";
public static final String PROP_USER_NAME = "userName";
public static final String PROP_USER_PASSWORD = "userPassword";
-
+
private static final Log LOG = LogFactory.getLog(CliSender.class);
private static final String SUMMARY_TEMPLATE = "Ran script $packageName in version $packageVersion from repo $repoName as user $userName.";
private static final String PREVIEW_TEMPLATE = "Run script $packageName from repo $repoName as user $userName.";
private static final String VALIDATION_ERROR_MESSAGE = "The provided user failed to authenticate.";
-
+
//no more than 10 concurrently running CLI notifications..
//is that enough?
private static final int MAX_SCRIPT_ENGINES = 10;
private static Queue<ScriptEngine> SCRIPT_ENGINES = new ArrayDeque<ScriptEngine>(MAX_SCRIPT_ENGINES);
private static int ENGINES_IN_USE = 0;
-
+
/**
* Simple strongly typed representation of the alert configuration
*/
private static class Config {
- Subject subject;
+ Subject subject;
int packageId;
int repoId;
}
@@ -105,36 +105,37 @@ public class CliSender extends AlertSender<CliComponent> {
private static class ExceptionHolder {
public ScriptException scriptException;
}
-
+
public SenderResult send(Alert alert) {
SenderResult result = new SenderResult();
BufferedReader reader = null;
ScriptEngine engine = null;
try {
final Config config = getConfig();
-
+
result.setSummary(createSummary(config, SUMMARY_TEMPLATE));
ByteArrayOutputStream scriptOutputStream = new ByteArrayOutputStream();
PrintWriter scriptOut = new PrintWriter(scriptOutputStream);
engine = getScriptEngine(alert, scriptOut, config);
-
+
final SandboxedScriptEngine sandbox = new SandboxedScriptEngine(engine, new StandardScriptPermissions());
-
+
InputStream packageBits = getPackageBits(config.packageId, config.repoId);
reader = new BufferedReader(new InputStreamReader(packageBits));
final BufferedReader rdr = reader;
-
+
final ExceptionHolder exceptionHolder = new ExceptionHolder();
-
+
Thread scriptRunner = new Thread(new Runnable() {
public void run() {
try {
//fake the login
- SessionManager.getInstance().put(config.subject, pluginComponent.getScriptTimeout() * 1000);
+ config.subject = SessionManager.getInstance().put(config.subject,
+ pluginComponent.getScriptTimeout() * 1000);
sandbox.eval(rdr);
SessionManager.getInstance().invalidate(config.subject.getSessionId());
} catch (ScriptException e) {
@@ -142,20 +143,21 @@ public class CliSender extends AlertSender<CliComponent> {
}
}
}, "Script Runner for alert " + alert);
- scriptRunner.setDaemon(true);
+ scriptRunner.setDaemon(true);
scriptRunner.start();
-
+
if (pluginComponent.getScriptTimeout() <= 0) {
scriptRunner.join();
} else {
scriptRunner.join(pluginComponent.getScriptTimeout() * 1000);
}
-
+
scriptRunner.interrupt();
if (exceptionHolder.scriptException != null) {
- LOG.info("The script execution for CLI notification of alert [" + alert + "] failed.", exceptionHolder.scriptException);
-
+ LOG.info("The script execution for CLI notification of alert [" + alert + "] failed.",
+ exceptionHolder.scriptException);
+
//make things pretty for the UI
ScriptEngineInitializer initializer = ScriptEngineFactory.getInitializer(ENGINE_NAME);
String message = initializer.extractUserFriendlyErrorMessage(exceptionHolder.scriptException);
@@ -164,18 +166,18 @@ public class CliSender extends AlertSender<CliComponent> {
String scriptName = createSummary(config, "script $packageName ($packageVersion) in repo $repoName");
throw new ScriptException(message, scriptName, line, col);
}
-
+
scriptOut.flush();
String scriptOutput = scriptOutputStream.toString(Charset.defaultCharset().name());
if (scriptOutput.length() == 0) {
scriptOutput = "Script generated no output.";
}
-
+
if (scriptOutput.length() > remainingResultSize(result)) {
scriptOutput = scriptOutput.substring(0, remainingResultSize(result));
}
-
+
result.addSuccessMessage(scriptOutput);
return result;
@@ -188,7 +190,7 @@ public class CliSender extends AlertSender<CliComponent> {
if (engine != null) {
returnEngine(engine);
}
-
+
if (reader != null) {
try {
reader.close();
@@ -213,18 +215,18 @@ public class CliSender extends AlertSender<CliComponent> {
@Override
public AlertSenderValidationResults validateAndFinalizeConfiguration(Subject subject) {
AlertSenderValidationResults results = new AlertSenderValidationResults(alertParameters, extraParameters);
-
+
String userIdString = alertParameters.getSimpleValue(PROP_USER_ID, null);
String userName = alertParameters.getSimpleValue(PROP_USER_NAME, null);
String userPassword = alertParameters.getSimpleValue(PROP_USER_PASSWORD, null);
-
+
Integer userId = userIdString == null ? null : Integer.valueOf(userIdString);
-
+
if (userId == null || userId != subject.getId()) {
SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
-
+
Subject authSubject = subjectManager.checkAuthentication(userName, userPassword);
-
+
if (authSubject == null) {
PropertySimple userNameProp = new PropertySimple(PROP_USER_NAME, userName);
userNameProp.setErrorMessage(VALIDATION_ERROR_MESSAGE);
@@ -243,10 +245,10 @@ public class CliSender extends AlertSender<CliComponent> {
//do not store the password in the database ever
alertParameters.put(new PropertySimple(PROP_USER_PASSWORD, null));
-
+
return results;
}
-
+
private static ScriptEngine getScriptEngine(Alert alert, PrintWriter output, Config config) throws ScriptException,
IOException, InterruptedException {
Subject user = config.subject;
@@ -257,19 +259,23 @@ public class CliSender extends AlertSender<CliComponent> {
bindings.put("alert", alert);
ScriptEngine engine = takeEngine(bindings);
-
+
return engine;
}
private static InputStream getPackageBits(int packageId, int repoId) throws IOException {
final ContentSourceManagerLocal csm = LookupUtil.getContentSourceManager();
RepoManagerLocal rm = LookupUtil.getRepoManagerLocal();
- final PackageVersion versionToUse = rm.getLatestPackageVersion(LookupUtil.getSubjectManager().getOverlord(), packageId, repoId);
+ final PackageVersion versionToUse = rm.getLatestPackageVersion(LookupUtil.getSubjectManager().getOverlord(),
+ packageId, repoId);
if (versionToUse == null) {
- throw new IllegalArgumentException("The package with id " + packageId + " either doesn't exist at all or doesn't have any version. Can't execute a CLI script without a script to run.");
+ throw new IllegalArgumentException(
+ "The package with id "
+ + packageId
+ + " either doesn't exist at all or doesn't have any version. Can't execute a CLI script without a script to run.");
}
-
+
PipedInputStream ret = new PipedInputStream();
final PipedOutputStream out = new PipedOutputStream(ret);
@@ -322,31 +328,31 @@ public class CliSender extends AlertSender<CliComponent> {
Subject overlord = LookupUtil.getSubjectManager().getOverlord();
RepoManagerLocal rm = LookupUtil.getRepoManagerLocal();
PackageVersion versionToUse = rm.getLatestPackageVersion(overlord, config.packageId, config.repoId);
-
+
if (versionToUse != null) {
ret = ret.replace("$packageName", versionToUse.getDisplayName());
- ret = ret.replace("$packageVersion", versionToUse.getDisplayVersion() == null ? versionToUse.getVersion()
- : versionToUse.getDisplayVersion());
+ ret = ret.replace("$packageVersion", versionToUse.getDisplayVersion() == null ? versionToUse
+ .getVersion() : versionToUse.getDisplayVersion());
} else {
ret = ret.replace("$packageName", "unknown script with package id " + config.packageId);
ret = ret.replace("$packageVersion", "no version");
}
-
+
RepoCriteria criteria = new RepoCriteria();
criteria.addFilterId(config.repoId);
-
+
List<Repo> repos = rm.findReposByCriteria(overlord, criteria);
-
+
String repoName;
-
+
if (repos.size() > 0) {
repoName = repos.get(0).getName();
} else {
repoName = "unknown repo with id " + config.repoId;
}
-
+
ret = ret.replace("$repoName", repoName);
-
+
return ret;
} catch (Exception e) {
LOG.info("Failed to create alert sender summary.", e);
@@ -357,10 +363,13 @@ public class CliSender extends AlertSender<CliComponent> {
private Config getConfig() throws IllegalArgumentException {
Config ret = new Config();
- int subjectId = getIntFromConfiguration(PROP_USER_ID, "User id not specified.", "Failed to read subject id property: ");
- int packageId = getIntFromConfiguration(PROP_PACKAGE_ID, "Package id of the script not specified.", "Failed to read the package id property: ");
- int repoId = getIntFromConfiguration(PROP_REPO_ID, "Repo to download the script package from not specified.", "Failed to read the repo id property: ");
-
+ int subjectId = getIntFromConfiguration(PROP_USER_ID, "User id not specified.",
+ "Failed to read subject id property: ");
+ int packageId = getIntFromConfiguration(PROP_PACKAGE_ID, "Package id of the script not specified.",
+ "Failed to read the package id property: ");
+ int repoId = getIntFromConfiguration(PROP_REPO_ID, "Repo to download the script package from not specified.",
+ "Failed to read the repo id property: ");
+
Subject subject = LookupUtil.getSubjectManager().getSubjectById(subjectId);
if (subject == null) {
@@ -370,24 +379,25 @@ public class CliSender extends AlertSender<CliComponent> {
ret.subject = subject;
ret.packageId = packageId;
ret.repoId = repoId;
-
+
return ret;
}
-
- private int getIntFromConfiguration(String propName, String errorMessage, String convertErrorMessage) throws IllegalArgumentException {
+
+ private int getIntFromConfiguration(String propName, String errorMessage, String convertErrorMessage)
+ throws IllegalArgumentException {
PropertySimple prop = alertParameters.getSimple(propName);
-
+
if (prop == null) {
- throw new IllegalArgumentException(errorMessage);
+ throw new IllegalArgumentException(errorMessage);
}
-
+
try {
return prop.getIntegerValue();
} catch (Exception e) {
throw new IllegalArgumentException(convertErrorMessage + e.getMessage(), e);
}
}
-
+
private static ScriptEngine takeEngine(StandardBindings bindings) throws InterruptedException, ScriptException,
IOException {
synchronized (SCRIPT_ENGINES) {
@@ -398,14 +408,14 @@ public class CliSender extends AlertSender<CliComponent> {
ScriptEngine engine = SCRIPT_ENGINES.poll();
if (engine == null) {
- engine = ScriptEngineFactory.getScriptEngine(ENGINE_NAME,
- new PackageFinder(Collections.<File> emptyList()), bindings);
+ engine = ScriptEngineFactory.getScriptEngine(ENGINE_NAME, new PackageFinder(Collections
+ .<File> emptyList()), bindings);
} else {
ScriptEngineFactory.injectStandardBindings(engine, bindings, true);
}
-
+
++ENGINES_IN_USE;
-
+
return engine;
}
}
@@ -417,20 +427,20 @@ public class CliSender extends AlertSender<CliComponent> {
SCRIPT_ENGINES.notify();
}
}
-
+
private static int remainingResultSize(SenderResult r) {
//the "10" is a ballpark to allow for some formatting
//done by the receivers of the SenderResult.
int ret = MAX_RESULT_SIZE - r.getSummary().length() - 10;
-
- for(String m : r.getSuccessMessages()) {
+
+ for (String m : r.getSuccessMessages()) {
ret -= m.length() + 10;
}
-
- for(String m : r.getFailureMessages()) {
+
+ for (String m : r.getFailureMessages()) {
ret -= m.length() + 10;
}
-
+
return ret;
}
}
13 years
[rhq] Branch 'as7plugin' - 2 commits - modules/plugins
by Heiko W. Rupp
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JmsComponent.java | 52 +++++-
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java | 6
modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/OperationJsonTest.java | 78 +++++++++-
3 files changed, 125 insertions(+), 11 deletions(-)
New commits:
commit b16fc49c66386a7e399999d62782db7d29221cda
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Wed May 18 22:15:06 2011 +0200
Support creation of JMS objects.
This code may be pulled up in a super class, as it is applicable for most/all cases of :add
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JmsComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JmsComponent.java
index 70bb5d7..3aeef6e 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JmsComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JmsComponent.java
@@ -29,12 +29,15 @@ import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.Property;
import org.rhq.core.domain.configuration.PropertyList;
import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.configuration.definition.PropertyDefinitionList;
+import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
+import org.rhq.core.domain.configuration.definition.PropertySimpleType;
import org.rhq.core.domain.resource.CreateResourceStatus;
import org.rhq.core.pluginapi.inventory.CreateResourceReport;
import org.rhq.modules.plugins.jbossas7.json.ComplexResult;
import org.rhq.modules.plugins.jbossas7.json.Operation;
import org.rhq.modules.plugins.jbossas7.json.PROPERTY_VALUE;
-import org.rhq.modules.plugins.jbossas7.json.Result;
/**
* Component class for the JMS subsystem
@@ -48,42 +51,77 @@ public class JmsComponent extends DomainComponent {
public CreateResourceReport createResource(CreateResourceReport report) {
- Configuration resConf = report.getResourceConfiguration();
Configuration pConf = report.getPluginConfiguration();
+ Configuration resConf = report.getResourceConfiguration();
+ ConfigurationDefinition resConfDef = report.getResourceType().getResourceConfigurationDefinition();
String type = pConf.getSimpleValue("path", "");
List<PROPERTY_VALUE> address = pathToAddress(getPath());
address.add(new PROPERTY_VALUE(type,report.getUserSpecifiedResourceName()));
Operation op = new Operation("add",address);
+
+ // Loop over the properties from the config and add them as properties to the op
for (Map.Entry<String, Property> entry: resConf.getAllProperties().entrySet()) {
Property value = entry.getValue();
if (value !=null) {
+ String name = entry.getKey();
+
if (value instanceof PropertySimple) {
+ PropertyDefinitionSimple propDef = (PropertyDefinitionSimple) resConfDef.get(name);
PropertySimple ps = (PropertySimple) value;
- op.addAdditionalProperty(entry.getKey(), ps.getStringValue()); // TODO determine real type
+ op.addAdditionalProperty(name, getObjectForProperty(ps,propDef));
} else if (value instanceof PropertyList) {
PropertyList propertyList = (PropertyList) value;
- List<String> list = new ArrayList<String>();
+ List<Object> list = new ArrayList<Object>();
+ PropertyDefinitionList pd = resConfDef.getPropertyDefinitionList(name);
+ PropertyDefinitionSimple propDef = (PropertyDefinitionSimple) pd.getMemberDefinition();
for (Property p : propertyList.getList()) {
- list.add(p.toString()); // TODO
+
+ Object o = getObjectForProperty((PropertySimple) p, propDef);
+ list.add(o);
}
- op.addAdditionalProperty(entry.getKey(),list);
+ op.addAdditionalProperty(name,list);
}
}
}
ComplexResult res = (ComplexResult) getASConnection().execute(op,true);
+ // TODO Currently this reports a failure even if it succeeds for jms
+
if (res == null || !res.isSuccess()) {
report.setStatus(CreateResourceStatus.FAILURE);
} else {
report.setStatus(CreateResourceStatus.SUCCESS);
- report.setResourceKey(address.toString()); // TODO ??
+ report.setResourceKey(address.toString());
report.setResourceName(report.getUserSpecifiedResourceName());
}
System.out.println(report);
return report;
}
+
+ Object getObjectForProperty(PropertySimple prop, PropertyDefinitionSimple propDef) {
+
+ PropertySimpleType type = propDef.getType();
+ switch (type) {
+ case STRING:
+ return prop.getStringValue();
+ case INTEGER:
+ return prop.getIntegerValue();
+ case BOOLEAN:
+ return prop.getBooleanValue();
+ case LONG:
+ return prop.getLongValue();
+ case FLOAT:
+ return prop.getFloatValue();
+ case DOUBLE:
+ return prop.getDoubleValue();
+ default:
+ return prop.getStringValue();
+ }
+
+
+ }
}
commit 5abdcb5f64541a372b8a00412b7b9fc38c118827
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Wed May 18 22:14:15 2011 +0200
Make failure description an object, as the AS may result stuff that jackson can't deal with.
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java
index ccc967b..c7a983e 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/json/Result.java
@@ -36,7 +36,7 @@ public class Result {
@JsonProperty("compensating-operation")
private Operation compensatingOperation;
@JsonProperty("failure-description")
- private List<Map<String, String>> failureDescription;
+ private /*List<Map<String, String>>*/Object failureDescription;
@JsonIgnore
private boolean success = false;
@@ -74,11 +74,11 @@ public class Result {
this.compensatingOperation = compensatingOperation;
}
- public List<Map<String, String>> getFailureDescription() {
+ public Object getFailureDescription() {
return failureDescription;
}
- public void setFailureDescription(List<Map<String, String>> failureDescription) {
+ public void setFailureDescription(/*List<Map<String, String>>*/Object failureDescription) {
this.failureDescription = failureDescription;
}
diff --git a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/OperationJsonTest.java b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/OperationJsonTest.java
index 2ca9f91..53ac89e 100644
--- a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/OperationJsonTest.java
+++ b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/OperationJsonTest.java
@@ -23,7 +23,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.annotate.JsonAnyGetter;
import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
import org.testng.annotations.Test;
import org.rhq.modules.plugins.jbossas7.json.ComplexResult;
@@ -157,7 +160,7 @@ public class OperationJsonTest {
assert result.getResult() == null;
assert result.getCompensatingOperation() == null;
assert result.getFailureDescription() != null;
- assert result.getFailureDescription().size() == 1;
+// assert result.getFailureDescription().size() == 1;
}
public void complexResult1() throws Exception {
@@ -216,4 +219,77 @@ public class OperationJsonTest {
}
+ public void complexResult2() throws Exception {
+
+
+ String resultString =
+ "{\n" +
+ " \"outcome\" : \"failed\",\n" +
+ " \"result\" : {\n" +
+ " \"server-groups\" : {\n" +
+ " \"main-server-group\" : {\n" +
+ " \"server-one\" : {\n" +
+ " \"host\" : \"local\",\n" +
+ " \"response\" : {\n" +
+ " \"outcome\" : \"success\",\n" +
+ " \"result\" : null,\n" +
+ " \"compensating-operation\" : {\n" +
+ " \"operation\" : \"add\",\n" +
+ " \"address\" : [ {\n" +
+ " \"subsystem\" : \"jms\"\n" +
+ " }, {\n" +
+ " \"queue\" : \"flubbr\"\n" +
+ " } ],\n" +
+ " \"durable\" : \"true\",\n" +
+ " \"entries\" : [ \"PropertySimple[id=0, name=entries, value=flubbr, override=null]\" ]\n" +
+ " }\n" +
+ " }\n" +
+ " },\n" +
+ " \"server-two\" : {\n" +
+ " \"host\" : \"local\",\n" +
+ " \"response\" : {\n" +
+ " \"outcome\" : \"success\",\n" +
+ " \"result\" : null,\n" +
+ " \"compensating-operation\" : {\n" +
+ " \"operation\" : \"add\",\n" +
+ " \"address\" : [ {\n" +
+ " \"subsystem\" : \"jms\"\n" +
+ " }, {\n" +
+ " \"queue\" : \"flubbr\"\n" +
+ " } ],\n" +
+ " \"durable\" : \"true\",\n" +
+ " \"entries\" : [ \"PropertySimple[id=0, name=entries, value=flubbr, override=null]\" ]\n" +
+ " }\n" +
+ " }\n" +
+ " },\n" +
+ " \"server-demo\" : {\n" +
+ " \"host\" : \"local\",\n" +
+ " \"response\" : {\n" +
+ " \"outcome\" : \"failed\",\n" +
+ " \"failure-description\" : \"No handler for add at address [\\n (\\\"host\\\" => \\\"local\\\"),\\n (\\\"server\\\" => \\\"server-demo\\\"),\\n (\\\"subsystem\\\" => \\\"jms\\\"),\\n (\\\"queue\\\" => \\\"flubbr\\\")\\n]\"\n" +
+ " }\n" +
+ " }\n" +
+ " }\n" +
+ " }\n" +
+ " },\n" +
+ " \"failure-description\" : \"Operation was not applied successfully to any servers\"\n" +
+ "}";
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
+
+ ComplexResult result = mapper.readValue(resultString,ComplexResult.class);
+ assert !result.isSuccess() : "Result should be 'failed', but was not";
+ assert result.getFailureDescription().equals("Operation was not applied successfully to any servers");
+
+ assert result.getResult().containsKey("server-groups");
+ Map<String,Object> sgs = (Map<String, Object>) result.getResult().get("server-groups");
+ assert sgs.containsKey("main-server-group");
+ Map<String,Object> mainSg = (Map<String, Object>) sgs.get("main-server-group");
+ assert mainSg.size()==3 : "Main server group does not have 3 servers, but " + mainSg.size();
+ Map<String,Object> s3 = (Map<String, Object>) mainSg.get("server-demo");
+ Map<String,Object> response = (Map<String, Object>) s3.get("response");
+ assert response!=null;
+
+ }
+
}
13 years
[rhq] Branch 'release-3.0.1' - modules/plugins
by lkrejci
modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 434616bdc1fa49b90a03b54d6f1fed7bf9227c2d
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed May 18 13:55:51 2011 +0200
BZ 694476 - fixing the handling of loaded modules.
diff --git a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
index 554869a..dfe4fde 100644
--- a/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
+++ b/modules/plugins/apache/src/main/java/org/rhq/plugins/apache/util/RuntimeApacheConfiguration.java
@@ -365,7 +365,7 @@ public class RuntimeApacheConfiguration {
boolean recurseFurther = true;
if (walker.getName(node).equalsIgnoreCase("LoadModule")) {
- state.loadedModules.add(walker.getValue(node));
+ state.loadedModules.add(walker.getValues(node).get(0));
walker.visitOrdinaryNode(node);
} else if (walker.getName(node).equalsIgnoreCase("<IfModule")) {
String moduleFile = walker.getValue(node);
13 years
[rhq] 2 commits - modules/enterprise
by ips
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java | 12 ++++------
1 file changed, 5 insertions(+), 7 deletions(-)
New commits:
commit 1131a6824bb2f0a312c66f1d628729230f3731c6
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 15:47:53 2011 -0400
[BZ 627391] There was a 2nd method with the query param name wrong
(cherry picked from commit ff677500c349d4c6e3908e27fa728251bd55a674)
Conflicts:
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
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 3f4b794..6102a81 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
@@ -252,11 +252,10 @@ public class AuthorizationManagerBean implements AuthorizationManagerLocal {
Query query = entityManager.createNamedQuery(Subject.QUERY_CAN_VIEW_AUTO_GROUP);
query.setParameter("parentResourceId", parentResourceId);
query.setParameter("resourceTypeId", resourceTypeId);
-
- query.setParameter("subject", -SUBJECT_ID_OVERLORD);
+ query.setParameter("subjectId", -1);
long baseCount = (Long) query.getSingleResult();
- query.setParameter("subject", subject);
+ query.setParameter("subjectId", subject.getId());
long subjectCount = (Long) query.getSingleResult();
/*
commit 46a79aff6bfda36a189290488ff53349144ffdff
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 15:46:59 2011 -0400
[BZ 627391] Fixing JPAQL query that checks autogroup access
(cherry picked from commit da4c70da6d11ec2a8f1a18dba5bdecd4e31337ee)
Conflicts:
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
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 d3530de..3f4b794 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
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -193,11 +193,10 @@ public class AuthorizationManagerBean implements AuthorizationManagerLocal {
query.setParameter("permission", permission);
query.setParameter("parentResourceId", parentResourceId);
query.setParameter("resourceTypeId", resourceTypeId);
-
- query.setParameter("subject", -SUBJECT_ID_OVERLORD);
+ query.setParameter("subjectId", -1);
long baseCount = (Long) query.getSingleResult();
- query.setParameter("subject", subject);
+ query.setParameter("subjectId", subject.getId());
long subjectCount = (Long) query.getSingleResult();
/*
13 years
[rhq] Branch 'release-4.0.0' - modules/enterprise
by ips
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
New commits:
commit 8447359984ff3925311ef8e82f1663cbff783dee
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 15:41:50 2011 -0400
[BZ 627391] There was a 2nd method with the query param name wrong
(cherry picked from commit ff677500c349d4c6e3908e27fa728251bd55a674)
Conflicts:
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
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 3f4b794..6102a81 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
@@ -252,11 +252,10 @@ public class AuthorizationManagerBean implements AuthorizationManagerLocal {
Query query = entityManager.createNamedQuery(Subject.QUERY_CAN_VIEW_AUTO_GROUP);
query.setParameter("parentResourceId", parentResourceId);
query.setParameter("resourceTypeId", resourceTypeId);
-
- query.setParameter("subject", -SUBJECT_ID_OVERLORD);
+ query.setParameter("subjectId", -1);
long baseCount = (Long) query.getSingleResult();
- query.setParameter("subject", subject);
+ query.setParameter("subjectId", subject.getId());
long subjectCount = (Long) query.getSingleResult();
/*
13 years
[rhq] Branch 'release-4.0.0' - modules/enterprise
by ips
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
New commits:
commit 079818ad45eda07cd1a6190ac571c6e24c58d885
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Wed May 18 15:40:35 2011 -0400
[BZ 627391] Fixing JPAQL query that checks autogroup access
(cherry picked from commit da4c70da6d11ec2a8f1a18dba5bdecd4e31337ee)
Conflicts:
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/authz/AuthorizationManagerBean.java
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 d3530de..3f4b794 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
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2011 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -193,11 +193,10 @@ public class AuthorizationManagerBean implements AuthorizationManagerLocal {
query.setParameter("permission", permission);
query.setParameter("parentResourceId", parentResourceId);
query.setParameter("resourceTypeId", resourceTypeId);
-
- query.setParameter("subject", -SUBJECT_ID_OVERLORD);
+ query.setParameter("subjectId", -1);
long baseCount = (Long) query.getSingleResult();
- query.setParameter("subject", subject);
+ query.setParameter("subjectId", subject.getId());
long subjectCount = (Long) query.getSingleResult();
/*
13 years
[rhq] Branch 'release-4.0.0' - modules/common modules/core modules/enterprise modules/helpers modules/plugins modules/pom.xml modules/test-utils pom.xml
by John Sanda
modules/common/ant-bundle/pom.xml | 2 +-
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/comm-api/pom.xml | 2 +-
modules/core/dbutils/pom.xml | 2 +-
modules/core/domain/pom.xml | 2 +-
modules/core/gui/pom.xml | 2 +-
modules/core/native-system/pom.xml | 2 +-
modules/core/plugin-api/pom.xml | 2 +-
modules/core/plugin-container/pom.xml | 2 +-
modules/core/plugin-validator/pom.xml | 2 +-
modules/core/plugindoc/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
modules/core/util/pom.xml | 2 +-
modules/enterprise/agent/pom.xml | 2 +-
modules/enterprise/agentupdate/pom.xml | 2 +-
modules/enterprise/binding/pom.xml | 4 ++--
modules/enterprise/comm/pom.xml | 2 +-
modules/enterprise/gui/base-perspective-jar/pom.xml | 2 +-
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/installer-war/pom.xml | 2 +-
modules/enterprise/gui/pom.xml | 2 +-
modules/enterprise/gui/portal-war/pom.xml | 2 +-
modules/enterprise/pom.xml | 2 +-
modules/enterprise/remoting/cli/pom.xml | 2 +-
modules/enterprise/remoting/client-api/pom.xml | 2 +-
modules/enterprise/remoting/client-deps/pom.xml | 2 +-
modules/enterprise/remoting/pom.xml | 2 +-
modules/enterprise/remoting/webservices/pom.xml | 2 +-
modules/enterprise/server/client-api/pom.xml | 4 ++--
modules/enterprise/server/container-lib/pom.xml | 2 +-
modules/enterprise/server/container/pom.xml | 2 +-
modules/enterprise/server/ear/pom.xml | 2 +-
modules/enterprise/server/jar/pom.xml | 2 +-
modules/enterprise/server/plugins/alert-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-email/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-irc/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-log4j/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-microblog/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-mobicents/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-operations/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-roles/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-snmp/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-subject/pom.xml | 4 ++--
modules/enterprise/server/plugins/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/groovy-script/pom.xml | 4 ++--
modules/enterprise/server/plugins/jboss-software/pom.xml | 2 +-
modules/enterprise/server/plugins/packagetype-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml | 2 +-
modules/enterprise/server/plugins/perspectives/core/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/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/bundleGen/pom.xml | 4 ++--
modules/helpers/perftest-support/pom.xml | 4 ++--
modules/helpers/pom.xml | 2 +-
modules/helpers/rtfilter/pom.xml | 2 +-
modules/plugins/aliases/pom.xml | 2 +-
modules/plugins/ant-bundle/pom.xml | 2 +-
modules/plugins/apache/pom.xml | 2 +-
modules/plugins/augeas/pom.xml | 2 +-
modules/plugins/byteman/pom.xml | 2 +-
modules/plugins/cobbler/pom.xml | 2 +-
modules/plugins/cron/pom.xml | 2 +-
modules/plugins/database/pom.xml | 2 +-
modules/plugins/filetemplate-bundle/pom.xml | 2 +-
modules/plugins/grub/pom.xml | 2 +-
modules/plugins/hadoop/pom.xml | 2 +-
modules/plugins/hibernate/pom.xml | 2 +-
modules/plugins/hosts/pom.xml | 2 +-
modules/plugins/hudson/pom.xml | 4 ++--
modules/plugins/iis/pom.xml | 2 +-
modules/plugins/irc/pom.xml | 2 +-
modules/plugins/jboss-as-5/pom.xml | 2 +-
modules/plugins/jboss-as/pom.xml | 2 +-
modules/plugins/jboss-cache-v3/pom.xml | 2 +-
modules/plugins/jboss-cache/pom.xml | 2 +-
modules/plugins/jmx/pom.xml | 2 +-
modules/plugins/kickstart/pom.xml | 2 +-
modules/plugins/mysql/pom.xml | 2 +-
modules/plugins/netservices/pom.xml | 2 +-
modules/plugins/oracle/pom.xml | 2 +-
modules/plugins/pattern-generator/pom.xml | 2 +-
modules/plugins/perftest/pom.xml | 2 +-
modules/plugins/platform/pom.xml | 2 +-
modules/plugins/pom.xml | 2 +-
modules/plugins/postfix/pom.xml | 2 +-
modules/plugins/postgres/pom.xml | 2 +-
modules/plugins/rhq-agent/pom.xml | 2 +-
modules/plugins/rhq-server/pom.xml | 2 +-
modules/plugins/samba/pom.xml | 2 +-
modules/plugins/script/pom.xml | 2 +-
modules/plugins/script2/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/twitter/pom.xml | 2 +-
modules/plugins/validate-all-plugins/pom.xml | 2 +-
modules/plugins/virt/pom.xml | 2 +-
modules/pom.xml | 2 +-
modules/test-utils/pom.xml | 2 +-
pom.xml | 2 +-
116 files changed, 134 insertions(+), 134 deletions(-)
New commits:
commit 0d4d6d395191329cc05206fab9ce0d20ee9a54fd
Author: John Sanda <jsanda(a)redhat.com>
Date: Wed May 18 12:13:35 2011 -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 c479f35..313d189 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 2ce723f..222403c 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 60e0ef1..4a6909b 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index a419918..29fb134 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index ba06c10..a7f1999 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index e334d91..d988423 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 919db35..aef0914 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index 42ed4be..d47458f 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index 9de71a2..b88e04b 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 67c49e8..8cacc8e 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index ec2a9b9..8f8382b 100644
--- a/modules/core/plugin-api/pom.xml
+++ b/modules/core/plugin-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index eb72598..e366757 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index 08c4147..bfedcf1 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index e0e0afc..2c18207 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index fcc9be1..d22acdc 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index b75c88a..136f9db 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index aded251..085042f 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index b57bb98..be70655 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index e5f3ed7..48bae2d 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-enterprise-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-script-bindings</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RHQ Script Bindings</name>
<description>Abstraction of different facilities and default configurations for script bindings</description>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index f1122aa..e03e8cb 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-jar/pom.xml b/modules/enterprise/gui/base-perspective-jar/pom.xml
index c828f15..3d0852a 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/base-perspective-war/pom.xml b/modules/enterprise/gui/base-perspective-war/pom.xml
index 6a933d5..d2fd85c 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index f5be60a..e915555 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 8b4033f..d28f562 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/installer-war/pom.xml b/modules/enterprise/gui/installer-war/pom.xml
index 4490677..8499b18 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 704c040..f8ca5d2 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index dae73e2..b82ff6b 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 701ae0a..d785c54 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index fcd6fc8..16ad01c 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 4f81104..aa8bb79 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-deps/pom.xml b/modules/enterprise/remoting/client-deps/pom.xml
index 929be38..4e0c3b8 100644
--- a/modules/enterprise/remoting/client-deps/pom.xml
+++ b/modules/enterprise/remoting/client-deps/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 8dc5b31..7299a24 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/webservices/pom.xml b/modules/enterprise/remoting/webservices/pom.xml
index 6c26cb0..08a6920 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index 20213c5..9d68a09 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -5,13 +5,13 @@
<parent>
<artifactId>rhq-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-server-client-api</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
diff --git a/modules/enterprise/server/container-lib/pom.xml b/modules/enterprise/server/container-lib/pom.xml
index c0936b9..6bacdf8 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/container/pom.xml b/modules/enterprise/server/container/pom.xml
index 4e7c76d..63c230b 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index fe8325f..e07e22c 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index e39ea86..d711eee 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/alert-cli/pom.xml b/modules/enterprise/server/plugins/alert-cli/pom.xml
index 75d853c..0e57513 100644
--- a/modules/enterprise/server/plugins/alert-cli/pom.xml
+++ b/modules/enterprise/server/plugins/alert-cli/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>alert-cli</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Script Alert Plugin</name>
<description>An alert sender able to execute an arbitrary CLI script as a response to an alert</description>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index eea2614..b61f303 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 7a2f630..d2d8e61 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-log4j/pom.xml b/modules/enterprise/server/plugins/alert-log4j/pom.xml
index b4ec474..a1fdacf 100644
--- a/modules/enterprise/server/plugins/alert-log4j/pom.xml
+++ b/modules/enterprise/server/plugins/alert-log4j/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-log4j</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RHQ Enterprise Server Log4J Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index 7e02115..ffa9738 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 c1b5430..196af5a 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 fcc6111..d5c3922 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>4.0.1</version>
+ <version>4.0.1-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 22cf0f5..9d01093 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 a06ef84..dddfb8b 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 f4ca86a..d5647c1 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 2a6fb9c..9e70e72 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.1</version>
+ <version>4.0.1-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 7f66b88..c6b360f 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 e22ab20..2983096 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.1</version>
+ <version>4.0.1-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 bb88cf3..3a77bd2 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/groovy-script/pom.xml b/modules/enterprise/server/plugins/groovy-script/pom.xml
index 29b794d..27bb4ee 100644
--- a/modules/enterprise/server/plugins/groovy-script/pom.xml
+++ b/modules/enterprise/server/plugins/groovy-script/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>groovy-script-server-plugin</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RHQ Enterprise Server Groovy Script Plugin</name>
diff --git a/modules/enterprise/server/plugins/jboss-software/pom.xml b/modules/enterprise/server/plugins/jboss-software/pom.xml
index 446e44a..2cec96c 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/packagetype-cli/pom.xml b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
index bc7bacc..fc6d661 100644
--- a/modules/enterprise/server/plugins/packagetype-cli/pom.xml
+++ b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>packagetype-cli</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Package Type Plugin</name>
diff --git a/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml b/modules/enterprise/server/plugins/perspectives/core/perspective/pom.xml
index 0dacba2..aaa2ae6 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/perspectives/core/pom.xml b/modules/enterprise/server/plugins/perspectives/core/pom.xml
index 00d174a..1bc2df8 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index c69334f..fda4fa7 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/rhnhosted/pom.xml b/modules/enterprise/server/plugins/rhnhosted/pom.xml
index d46f152..10c717a 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.1</version>
+ <version>4.0.1-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 438180c..427accb 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.1</version>
+ <version>4.0.1-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 7e9e9e5..e1e370b 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.1</version>
+ <version>4.0.1-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 399196e..c706970 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.1</version>
+ <version>4.0.1-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 26d3fc8..328cb09 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/sars/agent-sar/pom.xml b/modules/enterprise/server/sars/agent-sar/pom.xml
index 6df9198..ca8f421 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/sars/pom.xml b/modules/enterprise/server/sars/pom.xml
index 6ff6a00..1bdc286 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index d13ef5c..4b7b9bd 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/bundleGen/pom.xml b/modules/helpers/bundleGen/pom.xml
index f7f1bb1..39c59f0 100644
--- a/modules/helpers/bundleGen/pom.xml
+++ b/modules/helpers/bundleGen/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.helpers</groupId>
<artifactId>bundleGen</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<build>
<plugins>
diff --git a/modules/helpers/perftest-support/pom.xml b/modules/helpers/perftest-support/pom.xml
index 277b800..dfca572 100644
--- a/modules/helpers/perftest-support/pom.xml
+++ b/modules/helpers/perftest-support/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<name>Performance Testing Support</name>
<description>To support performance testing, this is a basic tool to support extracting and later reimporting of
data from/to a database.
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index 35fba10..4b633f5 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index 077dedb..435286a 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 642c19b..5a80015 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index 23a7457..de6075c 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 5e6af81..8de2d23 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index de043d6..af07702 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index 2ace7c4..1b23882 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index b992055..8bfdeea 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index d115e55..ec14f28 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 914aa3d..099fdd6 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index 2220335..f055861 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index b8d705d..112c581 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hadoop/pom.xml b/modules/plugins/hadoop/pom.xml
index 401b9c2..fad5fd0 100644
--- a/modules/plugins/hadoop/pom.xml
+++ b/modules/plugins/hadoop/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index d53736b..38b45c9 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 61002f8..da058ee 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index a0deddd..dbc972f 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-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 9f6b519..4b44b48 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index 2c5f6bc..552d3d6 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-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 8c2f2bb..6dfe25a 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.1</version>
+ <version>4.0.1-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 be336bc..f74f357 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.1</version>
+ <version>4.0.1-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 8a31b82..7858853 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.1</version>
+ <version>4.0.1-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 3a75978..7d3833b 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index 91ed495..1b383ed 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index c5b17c4..b2265f9 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 8e06082..f22caf8 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index ff258fb..ea24a5d 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index d5ce7f8..94d0517 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pattern-generator/pom.xml b/modules/plugins/pattern-generator/pom.xml
index 469370a..12385b1 100644
--- a/modules/plugins/pattern-generator/pom.xml
+++ b/modules/plugins/pattern-generator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 66fee5c..89b903f 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>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index e4f96b8..5251175 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index dc7cf00..cda812e 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index a0e5d05..7eff98e 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 37ddf5e..08f9d48 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index 48b58b4..c1d7c26 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 9b71e98..f6085c6 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index a9ea12d..3a35487 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index aa5fe0b..6e0e0bb 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index 305d370..49d9a88 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index b8672e9..0de4591 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index c5d0191..862b260 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index 64cd12e..ae42746 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 87a83a3..81cc832 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index 56e83cd..b6a799f 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.1</version>
+ <version>4.0.1-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 de497e9..aec6468 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index e454f67..f6d8bdd 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 1ae4285..d6a87a8 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.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index ea1cc6e..d4f3d06 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -7,7 +7,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
diff --git a/pom.xml b/pom.xml
index 74d0889..80a54ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.0.1</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
13 years