modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java
| 5
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java
| 19 ---
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/NewDefinitionAction.java
| 8 -
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBeanTest.java
| 18 +--
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionWithComplexNotificationsTest.java
| 7 -
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertConditionTest.java
| 20 +--
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerTest.java
| 8 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
| 56 ++++------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
| 28 -----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertTemplateManagerBean.java
| 25 ++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/GroupAlertDefinitionManagerBean.java
| 8 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/AlertDefinitionHandlerBean.java
| 6 -
13 files changed, 86 insertions(+), 124 deletions(-)
New commits:
commit be19836c7aedaa1e912bb391dd2bc96aeec46a19
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed May 29 15:24:14 2013 -0400
Get rid of the unnecessary and mispelled local method
AlertDefinitionManagerBean.createAlertDefinitionAndRerurnIt().
It's value was that it returned the created alert def as opposed to just
the id of the alert def. So, instead, have
AlertDefinitionManagerBean.createAlertDefinitionInNewTransaction() return
the AlertDefinition as opposed to the id.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
index d69f7f4..4f71b9c 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/definitions/ResourceAlertDefinitionsView.java
@@ -197,7 +197,7 @@ public class ResourceAlertDefinitionsView extends
AbstractAlertDefinitionsView {
protected void commitAlertDefinition(final AlertDefinition alertDefinition, boolean
purgeInternals,
final AsyncCallback<AlertDefinition> resultReceiver) {
if (alertDefinition.getId() == 0) {
-
GWTServiceLookup.getAlertDefinitionService().createAlertDefinitionAndReturn(alertDefinition,
+
GWTServiceLookup.getAlertDefinitionService().createAlertDefinition(alertDefinition,
Integer.valueOf(resource.getId()), new
AsyncCallback<AlertDefinition>() {
@Override
public void onSuccess(AlertDefinition result) {
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java
index 794a67f..c95fba0 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/AlertDefinitionGWTService.java
@@ -30,10 +30,7 @@ public interface AlertDefinitionGWTService extends RemoteService {
PageList<AlertDefinition>
findAlertDefinitionsByCriteria(AlertDefinitionCriteria criteria) throws RuntimeException;
- int createAlertDefinition(AlertDefinition alertDefinition, Integer resourceId) throws
RuntimeException;
-
- AlertDefinition createAlertDefinitionAndReturn(AlertDefinition alertDefinition,
Integer resourceId)
- throws RuntimeException;
+ AlertDefinition createAlertDefinition(AlertDefinition alertDefinition, Integer
resourceId) throws RuntimeException;
AlertDefinition updateAlertDefinition(int alertDefinitionId, AlertDefinition
alertDefinition, boolean purgeInternals)
throws RuntimeException;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java
index da1d981..34929b2 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/AlertDefinitionGWTServiceImpl.java
@@ -29,7 +29,6 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.gwt.AlertDefinitionGWTService;
import org.rhq.enterprise.gui.coregui.server.util.SerialUtility;
-import org.rhq.enterprise.server.alert.AlertConditionManagerLocal;
import org.rhq.enterprise.server.alert.AlertDefinitionManagerLocal;
import org.rhq.enterprise.server.alert.AlertNotificationManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
@@ -64,20 +63,12 @@ public class AlertDefinitionGWTServiceImpl extends
AbstractGWTServiceImpl implem
}
@Override
- public int createAlertDefinition(AlertDefinition alertDefinition, Integer resourceId)
throws RuntimeException {
- try {
- int result =
alertDefManager.createAlertDefinitionInNewTransaction(getSessionSubject(),
alertDefinition, resourceId, true);
- return result;
- } catch (Throwable t) {
- throw getExceptionToThrowToClient(t);
- }
- }
-
- @Override
- public AlertDefinition createAlertDefinitionAndReturn(AlertDefinition
alertDefinition, Integer resourceId) throws RuntimeException {
+ public AlertDefinition createAlertDefinition(AlertDefinition alertDefinition, Integer
resourceId)
+ throws RuntimeException {
try {
- AlertDefinition result =
alertDefManager.createAlertDefinitionAndRerurnIt(getSessionSubject(), alertDefinition,
resourceId, true);
- return SerialUtility.prepare(result,
"createAlertDefinitionAndReturn");
+ AlertDefinition result =
alertDefManager.createAlertDefinitionInNewTransaction(getSessionSubject(),
+ alertDefinition, resourceId, true);
+ return SerialUtility.prepare(result, "createAlertDefinition");
} catch (Throwable t) {
throw getExceptionToThrowToClient(t);
}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/NewDefinitionAction.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/NewDefinitionAction.java
index 4ade28d..8834f4d 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/NewDefinitionAction.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/legacy/action/resource/common/monitor/alerts/config/NewDefinitionAction.java
@@ -92,12 +92,14 @@ public class NewDefinitionAction extends BaseAction {
alertDefinitionId = alertTemplateManager.createAlertTemplate(subject,
alertDef, defForm.getType());
} else if (context == FormContext.Resource) {
AlertDefinitionManagerLocal alertDefinitionManager =
LookupUtil.getAlertDefinitionManager();
- alertDefinitionId =
alertDefinitionManager.createAlertDefinitionInNewTransaction(subject, alertDef,
defForm.getId(), true);
+ AlertDefinition alertDefinition =
alertDefinitionManager.createAlertDefinitionInNewTransaction(subject,
+ alertDef, defForm.getId(), true);
+ alertDefinitionId = alertDefinition.getId();
} else if (context == FormContext.Group) {
GroupAlertDefinitionManagerLocal groupAlertDefinitionManager =
LookupUtil
.getGroupAlertDefinitionManager();
- alertDefinitionId =
groupAlertDefinitionManager.createGroupAlertDefinitions(subject, alertDef, defForm
- .getGroupId());
+ alertDefinitionId =
groupAlertDefinitionManager.createGroupAlertDefinitions(subject, alertDef,
+ defForm.getGroupId());
} else {
throw new IllegalArgumentException("Unsupported context: " +
context);
}
diff --git
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBeanTest.java
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBeanTest.java
index 5e40380..b9455a2 100644
---
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBeanTest.java
+++
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBeanTest.java
@@ -334,10 +334,10 @@ public class AlertDefinitionManagerBeanTest extends AbstractEJB3Test
{
alertDefinition.setConditionExpression(BooleanExpression.ANY);
alertDefinition.setRecoveryId(0);
alertDefinition.setEnabled(enabled);
- int alertDefinitionId =
alertDefinitionManager.createAlertDefinitionInNewTransaction(testData.getSubject(),
+ alertDefinition =
alertDefinitionManager.createAlertDefinitionInNewTransaction(testData.getSubject(),
alertDefinition, testData.getResource().getId(), true);
- testData.getAlertDefinitionIds().add(alertDefinitionId);
- return alertDefinitionId;
+ testData.getAlertDefinitionIds().add(alertDefinition.getId());
+ return alertDefinition.getId();
}
private int createGroupAlertDefinitionAndGetId(String name) {
@@ -349,7 +349,7 @@ public class AlertDefinitionManagerBeanTest extends AbstractEJB3Test
{
alertDefinition.setRecoveryId(0);
alertDefinition.setGroup(testData.getResourceGroup());
alertDefinition.setEnabled(true);
-
+
// We need a threshold alert condition to recreate the issue in bug 949048
AlertCondition ac = new AlertCondition();
ac.setCategory(AlertConditionCategory.THRESHOLD);
@@ -357,11 +357,11 @@ public class AlertDefinitionManagerBeanTest extends AbstractEJB3Test
{
ac.setComparator("<");
ac.setThreshold(0.5);
alertDefinition.addCondition(ac);
-
- int alertDefinitionId =
alertDefinitionManager.createAlertDefinitionInNewTransaction(testData.getSubject(),
- alertDefinition, null, true);
- testData.getAlertDefinitionIds().add(alertDefinitionId);
- return alertDefinitionId;
+
+ AlertDefinition newAlertDefinition =
alertDefinitionManager.createAlertDefinitionInNewTransaction(
+ testData.getSubject(), alertDefinition, null, true);
+ testData.getAlertDefinitionIds().add(newAlertDefinition.getId());
+ return newAlertDefinition.getId();
}
private static final class TestData {
diff --git
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionWithComplexNotificationsTest.java
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionWithComplexNotificationsTest.java
index fbbc86a..be62ad8 100644
---
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionWithComplexNotificationsTest.java
+++
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/AlertDefinitionWithComplexNotificationsTest.java
@@ -413,14 +413,13 @@ public class AlertDefinitionWithComplexNotificationsTest extends
AbstractEJB3Tes
false);
def.setResource(resources.iterator().next());
- int id = adm.createAlertDefinitionInNewTransaction(subject, def, res.getId(),
true);
- def.setId(id);
+ def = adm.createAlertDefinitionInNewTransaction(subject, def, res.getId(),
true);
- resourceLevelAlertDefinitionId = id;
+ resourceLevelAlertDefinitionId = def.getId();
junk.add(def);
- testMainAlertDefinition(id);
+ testMainAlertDefinition(resourceLevelAlertDefinitionId);
}
//@Test(dependsOnMethods = {
"testNotificationsCopiedOnAlertTemplateApplication",
diff --git
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertConditionTest.java
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertConditionTest.java
index 159a56d..3797542 100644
---
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertConditionTest.java
+++
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertConditionTest.java
@@ -470,8 +470,8 @@ public class AlertConditionTest extends UpdatePluginMetadataTestBase
{
alertDefinition.setConditions(conditions);
AlertDefinitionManagerLocal alertDefManager =
LookupUtil.getAlertDefinitionManager();
- int defId = alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(),
alertDefinition, resourceId, true);
- alertDefinition = alertDefManager.getAlertDefinition(getOverlord(), defId); //
load it back so we get its ID and all condition IDs
+ alertDefinition =
alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(), alertDefinition,
+ resourceId, true);
assert alertDefinition != null && alertDefinition.getId() > 0 :
"did not persist alert def properly: "
+ alertDefinition;
@@ -504,8 +504,8 @@ public class AlertConditionTest extends UpdatePluginMetadataTestBase
{
alertDefinition.setConditions(conditions);
AlertDefinitionManagerLocal alertDefManager =
LookupUtil.getAlertDefinitionManager();
- int defId = alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(),
alertDefinition, resourceId, true);
- alertDefinition = alertDefManager.getAlertDefinition(getOverlord(), defId); //
load it back so we get its ID and all condition IDs
+ alertDefinition =
alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(), alertDefinition,
+ resourceId, true);
assert alertDefinition != null && alertDefinition.getId() > 0 :
"did not persist alert def properly: "
+ alertDefinition;
@@ -537,8 +537,8 @@ public class AlertConditionTest extends UpdatePluginMetadataTestBase
{
alertDefinition.setConditions(conditions);
AlertDefinitionManagerLocal alertDefManager =
LookupUtil.getAlertDefinitionManager();
- int defId = alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(),
alertDefinition, resourceId, true);
- alertDefinition = alertDefManager.getAlertDefinition(getOverlord(), defId); //
load it back so we get its ID and all condition IDs
+ alertDefinition =
alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(), alertDefinition,
+ resourceId, true);
assert alertDefinition != null && alertDefinition.getId() > 0 :
"did not persist alert def properly: "
+ alertDefinition;
@@ -570,8 +570,8 @@ public class AlertConditionTest extends UpdatePluginMetadataTestBase
{
alertDefinition.setConditions(conditions);
AlertDefinitionManagerLocal alertDefManager =
LookupUtil.getAlertDefinitionManager();
- int defId = alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(),
alertDefinition, resourceId, true);
- alertDefinition = alertDefManager.getAlertDefinition(getOverlord(), defId); //
load it back so we get its ID and all condition IDs
+ alertDefinition =
alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(), alertDefinition,
+ resourceId, true);
assert alertDefinition != null && alertDefinition.getId() > 0 :
"did not persist alert def properly: "
+ alertDefinition;
@@ -604,8 +604,8 @@ public class AlertConditionTest extends UpdatePluginMetadataTestBase
{
alertDefinition.setConditions(conditions);
AlertDefinitionManagerLocal alertDefManager =
LookupUtil.getAlertDefinitionManager();
- int defId = alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(),
alertDefinition, resourceId, true);
- alertDefinition = alertDefManager.getAlertDefinition(getOverlord(), defId); //
load it back so we get its ID and all condition IDs
+ alertDefinition =
alertDefManager.createAlertDefinitionInNewTransaction(getOverlord(), alertDefinition,
+ resourceId, true);
assert alertDefinition != null && alertDefinition.getId() > 0 :
"did not persist alert def properly: "
+ alertDefinition;
diff --git
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerTest.java
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerTest.java
index af045ca..146ee20 100644
---
a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerTest.java
+++
b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/alert/test/AlertManagerTest.java
@@ -303,10 +303,10 @@ public class AlertManagerTest extends AbstractEJB3Test {
alertDefinition.setConditionExpression(BooleanExpression.ANY);
alertDefinition.setRecoveryId(0);
alertDefinition.setEnabled(true);
- int alertDefinitionId =
alertDefinitionManager.createAlertDefinitionInNewTransaction(testData.getSubject(),
alertDefinition,
- testData.getResource().getId(), true);
- testData.setAlertDefinitionId(alertDefinitionId);
- return alertDefinitionId;
+ alertDefinition =
alertDefinitionManager.createAlertDefinitionInNewTransaction(testData.getSubject(),
+ alertDefinition, testData.getResource().getId(), true);
+ testData.setAlertDefinitionId(alertDefinition.getId());
+ return alertDefinition.getId();
}
private static final class TestData {
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
index 8f8fec5..fc3b1ea 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerBean.java
@@ -208,23 +208,16 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
@Override
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public int createAlertDefinitionInNewTransaction(Subject subject, AlertDefinition
alertDefinition,
- Integer resourceId, boolean validateNotificationConfiguration) throws
InvalidAlertDefinitionException {
- AlertDefinition newAlertDefinition = createAlertDefinitionInternal(subject,
alertDefinition, resourceId, true,
- validateNotificationConfiguration);
- return newAlertDefinition.getId();
- }
-
- @Override
- @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public AlertDefinition createAlertDefinitionAndRerurnIt(Subject subject,
AlertDefinition alertDefinition,
+ public AlertDefinition createAlertDefinitionInNewTransaction(Subject subject,
AlertDefinition alertDefinition,
Integer resourceId, boolean validateNotificationConfiguration) throws
InvalidAlertDefinitionException {
AlertDefinition newAlertDefinition = createAlertDefinitionInternal(subject,
alertDefinition, resourceId, true,
validateNotificationConfiguration);
return newAlertDefinition;
}
- private AlertDefinition createAlertDefinitionInternal(Subject subject,
AlertDefinition alertDefinition, Integer resourceId, boolean checkPerms, boolean
validateNotificationConfiguration) throws InvalidAlertDefinitionException {
+ private AlertDefinition createAlertDefinitionInternal(Subject subject,
AlertDefinition alertDefinition,
+ Integer resourceId, boolean checkPerms, boolean
validateNotificationConfiguration)
+ throws InvalidAlertDefinitionException {
checkAlertDefinition(subject, null, alertDefinition, resourceId,
validateNotificationConfiguration);
// if this is an resource alert definition, set up the link to a resource
@@ -245,8 +238,7 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
+ alertDefinition.getResourceType() + "]");
} else if (alertDefinition.getGroup() != null) {
throw new PermissionException("User [" + subject.getName()
- + "] does not have permission to create alert definitions for
group ["
- + alertDefinition.getGroup()
+ + "] does not have permission to create alert definitions for
group [" + alertDefinition.getGroup()
+ "]");
} else {
throw new PermissionException("User [" + subject.getName()
@@ -275,8 +267,8 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
if (alertDefinition.getRecoveryId() != 0) {
// only add to the cache if the to-be-recovered definition is disabled,
and thus needs recovering
// use entityManager direct to bypass security checks, we already know
this user is authorized
- AlertDefinition toBeRecoveredDefinition =
entityManager.find(AlertDefinition.class, alertDefinition
- .getRecoveryId());
+ AlertDefinition toBeRecoveredDefinition =
entityManager.find(AlertDefinition.class,
+ alertDefinition.getRecoveryId());
if (toBeRecoveredDefinition.getEnabled() == false) {
addToCache = true;
}
@@ -486,15 +478,16 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
@Override
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
- public AlertDefinition updateDependentAlertDefinition(Subject subject, int
alertDefinitionId, AlertDefinition alertDefinition, boolean resetMatching) throws
InvalidAlertDefinitionException, AlertDefinitionUpdateException {
+ public AlertDefinition updateDependentAlertDefinition(Subject subject, int
alertDefinitionId,
+ AlertDefinition alertDefinition, boolean resetMatching) throws
InvalidAlertDefinitionException,
+ AlertDefinitionUpdateException {
return updateAlertDefinitionInternal(subject, alertDefinitionId, alertDefinition,
resetMatching, false, false);
}
@Override
public AlertDefinition updateAlertDefinitionInternal(Subject subject, int
alertDefinitionId,
- AlertDefinition alertDefinition,
boolean resetMatching,
- boolean checkPerms, boolean
finalizeNotifications) throws InvalidAlertDefinitionException,
- AlertDefinitionUpdateException {
+ AlertDefinition alertDefinition, boolean resetMatching, boolean checkPerms,
boolean finalizeNotifications)
+ throws InvalidAlertDefinitionException, AlertDefinitionUpdateException {
if (resetMatching) {
alertDefinitionManager.purgeInternals(alertDefinitionId);
}
@@ -527,8 +520,8 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
*/
boolean isResourceLevel = (oldAlertDefinition.getResource() != null);
- checkAlertDefinition(subject, oldAlertDefinition, alertDefinition,
isResourceLevel ? oldAlertDefinition.getResource().getId()
- : null, finalizeNotifications);
+ checkAlertDefinition(subject, oldAlertDefinition, alertDefinition,
isResourceLevel ? oldAlertDefinition
+ .getResource().getId() : null, finalizeNotifications);
/*
* Should not be able to update an alert definition if the old alert definition
is in an invalid state
@@ -594,8 +587,8 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
// if this was a recovery alert, or was recently turned into one
if (newAlertDefinition.getRecoveryId() != 0) {
// only add to the cache if the to-be-recovered definition is disabled,
and thus needs recovering
- AlertDefinition toBeRecoveredDefinition = getAlertDefinitionById(subject,
newAlertDefinition
- .getRecoveryId());
+ AlertDefinition toBeRecoveredDefinition =
getAlertDefinitionById(subject,
+ newAlertDefinition.getRecoveryId());
if (toBeRecoveredDefinition.getEnabled() == false) {
addToCache = true;
}
@@ -646,7 +639,8 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
}
}
- private void checkAlertDefinition(Subject subject, AlertDefinition
persistedAlertDefinition, AlertDefinition alertDefinition, Integer resourceId, boolean
finalizeNotifications)
+ private void checkAlertDefinition(Subject subject, AlertDefinition
persistedAlertDefinition,
+ AlertDefinition alertDefinition, Integer resourceId, boolean
finalizeNotifications)
throws InvalidAlertDefinitionException {
// if someone enters a really long description, we need to truncate it - the
column is only 250 chars
if (alertDefinition.getDescription() != null &&
alertDefinition.getDescription().length() > 250) {
@@ -675,11 +669,13 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
}
if (finalizeNotifications) {
- List<AlertNotification> notifications = new
ArrayList<AlertNotification>(alertDefinition.getAlertNotifications());
+ List<AlertNotification> notifications = new
ArrayList<AlertNotification>(
+ alertDefinition.getAlertNotifications());
//now remove the notifications that have not changed
if (persistedAlertDefinition != null) {
- List<AlertNotification> persistedNotifications =
persistedAlertDefinition.getAlertNotifications() == null ?
Collections.<AlertNotification>emptyList() :
persistedAlertDefinition.getAlertNotifications();
+ List<AlertNotification> persistedNotifications =
persistedAlertDefinition.getAlertNotifications() == null ? Collections
+ .<AlertNotification> emptyList() :
persistedAlertDefinition.getAlertNotifications();
if (persistedNotifications.size() > 0) {
Iterator<AlertNotification> it = notifications.iterator();
@@ -691,10 +687,11 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
continue;
}
- for(AlertNotification persistedNotification :
persistedNotifications) {
+ for (AlertNotification persistedNotification :
persistedNotifications) {
//ignore the ids on the notifications as they may vary if we
are comparing parent alert def with its children
//it's enough for us they they are semantically the
same.
- if
(newNotification.getSenderName().equals(persistedNotification.getSenderName()) &&
newNotification.equalsData(persistedNotification)) {
+ if
(newNotification.getSenderName().equals(persistedNotification.getSenderName())
+ &&
newNotification.equalsData(persistedNotification)) {
it.remove();
break;
}
@@ -802,7 +799,8 @@ public class AlertDefinitionManagerBean implements
AlertDefinitionManagerLocal,
generator.setAuthorizationResourceFragment(tokenType, subject.getId());
}
- CriteriaQueryRunner<AlertDefinition> queryRunner = new
CriteriaQueryRunner<AlertDefinition>(criteria, generator, entityManager);
+ CriteriaQueryRunner<AlertDefinition> queryRunner = new
CriteriaQueryRunner<AlertDefinition>(criteria,
+ generator, entityManager);
return queryRunner.execute();
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
index ee0e161..5d5711e 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertDefinitionManagerLocal.java
@@ -60,36 +60,14 @@ public interface AlertDefinitionManagerLocal {
* This would then cause the validation to fail every time you created a copy of a
definition and tried
* to persist it. Note that passing false AND having new, unpersisted notifications
in the alert definition can
* lead to invalid configuration being stored for the notifications.
- * @return the id of the newly persisted alert definition
+ * @return the newly persisted alert definition
* @throws InvalidAlertDefinitionException
*/
- int createAlertDefinitionInNewTransaction(Subject subject, AlertDefinition
alertDefinition, Integer resourceId, boolean finalizeNotificationConfiguration)
+ AlertDefinition createAlertDefinitionInNewTransaction(Subject subject,
AlertDefinition alertDefinition,
+ Integer resourceId, boolean finalizeNotificationConfiguration)
throws InvalidAlertDefinitionException;
/**
- * Creates a new alert definition. Note that the suject is checked to have necessary
authz, which might not
- * be what you want in all use cases. See {@link
#createDependentAlertDefinition(Subject, AlertDefinition, int)}
- * for further discussion of this. The only difference between
- * {@link
GroupAlertDefinitionManagerLocal#createAlertDefinitionInNewTransaction(Subject,
AlertDefinition, Integer, boolean)}
- * and this method is the return type.
- *
- * @param subject the user creating the alert definition
- * @param alertDefinition the new alert definition to persist
- * @param resourceId the resource id for which the def is being created
- * @param finalizeNotificationConfiguration if true, the configuration of the
def's notifications is validated.
- * This is NOT what you want if, for example, you are merely creating a copy of an
existing definition.
- * Some notifications might require more input when creating the notification than is
then persisted in their configs
- * (prominent example being the CLI alert sender).
- * This would then cause the validation to fail every time you created a copy of a
definition and tried
- * to persist it. Note that passing false AND having new, unpersisted notifications
in the alert definition can
- * lead to invalid configuration being stored for the notifications.
- * @return the instance of newly created alert definition
- * @throws InvalidAlertDefinitionException
- */
- AlertDefinition createAlertDefinitionAndRerurnIt(Subject subject, AlertDefinition
alertDefinition,
- Integer resourceId, boolean validateNotificationConfiguration) throws
InvalidAlertDefinitionException;
-
- /**
* This is exactly the same as {@link #createAlertDefinitionInNewTransaction(Subject,
AlertDefinition, Integer, boolean)} but
* assumes the resource is part of a group (or has given resource type for templates)
for which
* a group or template alert definition is being created.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertTemplateManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertTemplateManagerBean.java
index ee7bbf0..1f8d4e9 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertTemplateManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/AlertTemplateManagerBean.java
@@ -118,24 +118,22 @@ public class AlertTemplateManagerBean implements
AlertTemplateManagerLocal {
}
ResourceType type = resourceTypeManager.getResourceTypeById(user,
resourceTypeId);
-
+
alertTemplate.setResourceType(type); // mark this as an alert
"template" definition
- int alertTemplateId = 0;
+ AlertDefinition persistedAlertTemplate = null;
try {
- alertTemplateId =
alertDefinitionManager.createAlertDefinitionInNewTransaction(user, alertTemplate, null,
true);
+ persistedAlertTemplate =
alertDefinitionManager.createAlertDefinitionInNewTransaction(user, alertTemplate,
+ null, true);
} catch (Throwable t) {
throw new AlertDefinitionCreationException("Could not create
alertTemplate for " + type + " with data "
+ alertTemplate.toSimpleString(), t);
}
- //get the alert definition we just created.. this is so that we can create copies
of it
- AlertDefinition persistedAlertTemplate =
alertDefinitionManager.getAlertDefinition(user, alertTemplateId);
-
Throwable firstThrowable = null;
- List<Integer> resourceIdsForType =
getCommittedResourceIdsNeedingTemplateApplication(user, alertTemplateId,
- resourceTypeId);
+ List<Integer> resourceIdsForType =
getCommittedResourceIdsNeedingTemplateApplication(user,
+ persistedAlertTemplate.getId(), resourceTypeId);
List<Integer> resourceIdsInError = new ArrayList<Integer>();
for (Integer resourceId : resourceIdsForType) {
try {
@@ -158,7 +156,7 @@ public class AlertTemplateManagerBean implements
AlertTemplateManagerLocal {
+ resourceIdsInError + " with template" +
alertTemplate.toSimpleString(), firstThrowable);
}
- return alertTemplateId;
+ return persistedAlertTemplate.getId();
}
@SuppressWarnings("unchecked")
@@ -191,7 +189,8 @@ public class AlertTemplateManagerBean implements
AlertTemplateManagerLocal {
// persist the child, user is known to be overlord at this point for this
system side-effect
try {
- alertDefinitionManager.createAlertDefinitionInNewTransaction(user,
childAlertDefinition, resourceId, false);
+ alertDefinitionManager.createAlertDefinitionInNewTransaction(user,
childAlertDefinition, resourceId,
+ false);
} catch (Throwable t) {
throw new AlertDefinitionCreationException("Failed to create child
AlertDefinition for Resource[id="
+ resourceId + "] with template " +
template.toSimpleString());
@@ -262,8 +261,7 @@ public class AlertTemplateManagerBean implements
AlertTemplateManagerLocal {
List<Integer> alertDefinitionIdsInError = new ArrayList<Integer>();
for (Integer alertDefinitionId : alertDefinitions) {
try {
- alertDefinitionManager
- .updateDependentAlertDefinition(user, alertDefinitionId, updated,
resetMatching);
+ alertDefinitionManager.updateDependentAlertDefinition(user,
alertDefinitionId, updated, resetMatching);
} catch (Throwable t) {
// continue on error, update as many as possible
if (firstThrowable == null) {
@@ -287,7 +285,8 @@ public class AlertTemplateManagerBean implements
AlertTemplateManagerLocal {
childAlertDefinition.setParentId(alertTemplate.getId());
// persist the child
- alertDefinitionManager.createAlertDefinitionInNewTransaction(overlord,
childAlertDefinition, resourceId, false);
+ alertDefinitionManager.createAlertDefinitionInNewTransaction(overlord,
childAlertDefinition,
+ resourceId, false);
} catch (Throwable t) {
// continue on error, update as many as possible
if (firstThrowable == null) {
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/GroupAlertDefinitionManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/GroupAlertDefinitionManagerBean.java
index ef6770e..6f322ca 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/GroupAlertDefinitionManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/GroupAlertDefinitionManagerBean.java
@@ -146,19 +146,17 @@ public class GroupAlertDefinitionManagerBean implements
GroupAlertDefinitionMana
ResourceGroup group = resourceGroupManager.getResourceGroupById(subject,
resourceGroupId, null);
groupAlertDefinition.setGroup(group);
+ AlertDefinition persistedDefinition = null;
int groupAlertDefinitionId = 0;
try {
- groupAlertDefinitionId =
alertDefinitionManager.createAlertDefinitionInNewTransaction(subject,
+ persistedDefinition =
alertDefinitionManager.createAlertDefinitionInNewTransaction(subject,
groupAlertDefinition, null, true);
+ groupAlertDefinitionId = persistedDefinition.getId();
} catch (Throwable t) {
throw new AlertDefinitionCreationException("Could not create
groupAlertDefinitions for " + group
+ " with data " + groupAlertDefinition.toSimpleString(), t);
}
- //get the alert definition we just created.. this is so that we can create copies
of it
- AlertDefinition persistedDefinition = alertDefinitionManager
- .getAlertDefinition(subject, groupAlertDefinitionId);
-
Throwable firstThrowable = null;
List<Integer> resourceIdsForGroup =
getCommittedResourceIdsNeedingGroupAlertDefinitionApplication(subject,
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/AlertDefinitionHandlerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/AlertDefinitionHandlerBean.java
index 305d867..b0be87c 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/AlertDefinitionHandlerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/AlertDefinitionHandlerBean.java
@@ -279,9 +279,9 @@ public class AlertDefinitionHandlerBean extends AbstractRestBean {
throw new StuffNotFoundException("Recovery alert with id " +
adr.getRecoveryId());
}
- int definitionId =
alertDefinitionManager.createAlertDefinitionInNewTransaction(caller, alertDefinition,
resourceId, false);
-
- AlertDefinition updatedDefinition =
alertDefinitionManager.getAlertDefinition(caller,definitionId);
+ AlertDefinition updatedDefinition =
alertDefinitionManager.createAlertDefinitionInNewTransaction(caller,
+ alertDefinition, resourceId, false);
+ int definitionId = updatedDefinition.getId();
AlertDefinitionRest uadr = definitionToDomain(updatedDefinition,true, uriInfo) ;
// TODO param 'full' ?
uadr.setId(definitionId);