modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java | 12 +-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java | 34 ++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java | 36 ++++----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/ResourceListAdapter.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/WsResource.java | 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java | 10 --
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java | 41 +++------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java | 43 ++++------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java | 18 ++--
9 files changed, 87 insertions(+), 111 deletions(-)
New commits:
commit 8eaf6da4148d2eeea265f5deb633ce7a295731ff
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Jan 10 12:35:51 2012 -0500
[Bug 772771 - Agent not syncing updated plugin config at startup]
The resource mtime was not being properly updated when completing the
plugin config sync. If the agent was down at update time it would not
know to sync the resource on startup, or at any point until perhaps
the resource was modified in some other way, or the plugin config was
changed when the agent was up.
Also, in general Resource.setAgentSynchronizationNeeded() should be called
by any code performing an update that requires agent sync. The
Resource.setMtime() method should not be called for this purpose, but
rather only when manual mtime manipulation is required.
- fixed plugin config update
- converted setMtime calls to be setAgentSynchronizationNeeded() where appropriate
- added a missing call to setAgentSynchronizationNeeded() in DiscoveryBossBean
- trivial
-- fixed a method name typo
-- fixed some compiler warnings
-- removed some dead code
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
index dd5da1b..c90ed4e 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/resource/Resource.java
@@ -83,7 +83,7 @@ import org.rhq.core.domain.util.Summary;
* Represents an RHQ managed resource (i.e. a platform, server, or service).
*/
@Entity
-@NamedQueries( {
+@NamedQueries({
@NamedQuery(name = Resource.QUERY_FIND_PROBLEM_RESOURCES_ALERT_ADMIN, query = "" //
+ " SELECT DISTINCT new org.rhq.core.domain.resource.composite.ProblemResourceComposite"
+ " ( "
@@ -1302,6 +1302,12 @@ public class Resource implements Comparable<Resource>, Serializable {
return this.mtime;
}
+ /**
+ * Call this directly only when needing manual manipulation of the mtime. Otherwise, you probably want to
+ * call {@link #setAgentSynchronizationNeeded()}.
+ *
+ * @param mtime
+ */
public void setMtime(long mtime) {
this.mtime = mtime;
}
@@ -1336,8 +1342,6 @@ public class Resource implements Comparable<Resource>, Serializable {
*
* For a list of changes that the agent cares about, see InventoryManager.mergeResource(Resource, Resource)
*/
-
- // @PreUpdate
public void setAgentSynchronizationNeeded() {
this.mtime = System.currentTimeMillis();
}
@@ -1434,7 +1438,7 @@ public class Resource implements Comparable<Resource>, Serializable {
return schedules;
}
- public void setSchendules(Set<MeasurementSchedule> schedules) {
+ public void setSchedules(Set<MeasurementSchedule> schedules) {
this.schedules = schedules;
}
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 5b88fe5..60550be 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
@@ -136,7 +136,6 @@ import org.rhq.enterprise.server.util.QuartzUtil;
* @author John Mazzitelli
* @author Ian Springer
*/
-@SuppressWarnings({ "UnnecessaryLocalVariable", "UnnecessaryReturnStatement" })
@Stateless
@XmlType(namespace = ServerVersion.namespace)
public class ConfigurationManagerBean implements ConfigurationManagerLocal, ConfigurationManagerRemote {
@@ -220,6 +219,7 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
Resource resource = update.getResource();
// link to the newer, persisted configuration object -- regardless of errors
+ resource.setAgentSynchronizationNeeded();
resource.setPluginConfiguration(update.getConfiguration());
if (response.getStatus() == ConfigurationUpdateStatus.SUCCESS) {
@@ -1242,17 +1242,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
return configService.validate(configuration, resourceId, isStructured);
}
- private boolean isRawSupported(int resourceId) {
- Resource resource = entityManager.find(Resource.class, resourceId);
- ConfigurationDefinition configDef = resource.getResourceType().getResourceConfigurationDefinition();
- if (configDef == null) {
- return false;
- }
-
- return (ConfigurationFormat.STRUCTURED_AND_RAW == configDef.getConfigurationFormat() || (ConfigurationFormat.RAW == configDef
- .getConfigurationFormat()));
- }
-
private boolean isStructuredAndRawSupported(int resourceId) {
Resource resource = entityManager.find(Resource.class, resourceId);
ConfigurationDefinition configDef = resource.getResourceType().getResourceConfigurationDefinition();
@@ -1691,7 +1680,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
}
public Configuration getConfiguration(Subject subject, int configurationId) {
- @SuppressWarnings({ "UnnecessaryLocalVariable" })
Configuration configuration = getConfigurationById(configurationId);
return configuration;
}
@@ -2337,7 +2325,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
return out;
}
- @SuppressWarnings("unchecked")
public PageList<ResourceConfigurationUpdate> findResourceConfigurationUpdatesByCriteria(Subject subject,
ResourceConfigurationUpdateCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
@@ -2346,8 +2333,8 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
"resource", subject.getId());
}
- CriteriaQueryRunner<ResourceConfigurationUpdate> queryRunner = new CriteriaQueryRunner(criteria, generator,
- entityManager);
+ CriteriaQueryRunner<ResourceConfigurationUpdate> queryRunner = new CriteriaQueryRunner<ResourceConfigurationUpdate>(
+ criteria, generator, entityManager);
PageList<ResourceConfigurationUpdate> updates = queryRunner.execute();
@@ -2371,7 +2358,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
return updates;
}
- @SuppressWarnings("unchecked")
public PageList<PluginConfigurationUpdate> findPluginConfigurationUpdatesByCriteria(Subject subject,
PluginConfigurationUpdateCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
@@ -2380,8 +2366,8 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
"resource", subject.getId());
}
- CriteriaQueryRunner<PluginConfigurationUpdate> queryRunner = new CriteriaQueryRunner(criteria, generator,
- entityManager);
+ CriteriaQueryRunner<PluginConfigurationUpdate> queryRunner = new CriteriaQueryRunner<PluginConfigurationUpdate>(
+ criteria, generator, entityManager);
PageList<PluginConfigurationUpdate> updates = queryRunner.execute();
@@ -2405,7 +2391,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
return updates;
}
- @SuppressWarnings("unchecked")
public PageList<GroupResourceConfigurationUpdate> findGroupResourceConfigurationUpdatesByCriteria(Subject subject,
GroupResourceConfigurationUpdateCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
@@ -2414,8 +2399,8 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
subject.getId());
}
- CriteriaQueryRunner<GroupResourceConfigurationUpdate> queryRunner = new CriteriaQueryRunner(criteria,
- generator, entityManager);
+ CriteriaQueryRunner<GroupResourceConfigurationUpdate> queryRunner = new CriteriaQueryRunner<GroupResourceConfigurationUpdate>(
+ criteria, generator, entityManager);
PageList<GroupResourceConfigurationUpdate> updates = queryRunner.execute();
@@ -2438,7 +2423,6 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
return updates;
}
- @SuppressWarnings("unchecked")
public PageList<GroupPluginConfigurationUpdate> findGroupPluginConfigurationUpdatesByCriteria(Subject subject,
GroupPluginConfigurationUpdateCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
@@ -2447,8 +2431,8 @@ public class ConfigurationManagerBean implements ConfigurationManagerLocal, Conf
subject.getId());
}
- CriteriaQueryRunner<GroupPluginConfigurationUpdate> queryRunner = new CriteriaQueryRunner(criteria, generator,
- entityManager);
+ CriteriaQueryRunner<GroupPluginConfigurationUpdate> queryRunner = new CriteriaQueryRunner<GroupPluginConfigurationUpdate>(
+ criteria, generator, entityManager);
PageList<GroupPluginConfigurationUpdate> updates = queryRunner.execute();
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 2ea6234..7609492 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
@@ -21,6 +21,7 @@ package org.rhq.enterprise.server.discovery;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.Date;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
@@ -29,7 +30,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
-import java.util.Date;
import javax.ejb.EJB;
import javax.ejb.Stateless;
@@ -44,12 +44,12 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
+
import org.rhq.core.clientapi.agent.PluginContainerException;
import org.rhq.core.clientapi.agent.discovery.InvalidPluginConfigurationClientException;
import org.rhq.core.clientapi.agent.upgrade.ResourceUpgradeRequest;
@@ -314,16 +314,15 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
final String randomSuffix = UUID.randomUUID().toString();
final String triggerName = TRIGGER_PREFIX + " - " + randomSuffix;
- SimpleTrigger trigger = new SimpleTrigger(triggerName, DEFAULT_JOB_GROUP,
- new Date());
+ SimpleTrigger trigger = new SimpleTrigger(triggerName, DEFAULT_JOB_GROUP, new Date());
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put(AgentInventoryStatusUpdateJob.KEY_TRIGGER_NAME, triggerName);
jobDataMap.put(AgentInventoryStatusUpdateJob.KEY_TRIGGER_GROUP_NAME, DEFAULT_JOB_GROUP);
AgentInventoryStatusUpdateJob.externalizeJobValues(jobDataMap,
- AgentInventoryStatusUpdateJob.PLATFORMS_COMMA_LIST, platforms);
+ AgentInventoryStatusUpdateJob.PLATFORMS_COMMA_LIST, platforms);
AgentInventoryStatusUpdateJob.externalizeJobValues(jobDataMap,
- AgentInventoryStatusUpdateJob.SERVERS_COMMA_LIST, servers);
+ AgentInventoryStatusUpdateJob.SERVERS_COMMA_LIST, servers);
trigger.setJobName(DEFAULT_JOB_NAME);
trigger.setJobGroup(DEFAULT_JOB_GROUP);
@@ -333,7 +332,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
scheduler.scheduleJob(trigger);
} else {
JobDetail jobDetail = new JobDetail(DEFAULT_JOB_NAME, DEFAULT_JOB_GROUP,
- AgentInventoryStatusUpdateJob.class);
+ AgentInventoryStatusUpdateJob.class);
scheduler.scheduleJob(jobDetail, trigger);
}
} catch (SchedulerException e) {
@@ -357,10 +356,10 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
AgentClient agentClient = agentManager.getAgentClient(platform.getAgent());
try {
agentClient.getDiscoveryAgentService().synchronizeInventory(
- entityManager.find(ResourceSyncInfo.class, platform.getId()));
+ entityManager.find(ResourceSyncInfo.class, platform.getId()));
} catch (Exception e) {
log.warn("Could not perform commit synchronization with agent for platform [" + platform.getName()
- + "]", e);
+ + "]", e);
}
}
for (Resource server : servers) {
@@ -369,10 +368,10 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
AgentClient agentClient = agentManager.getAgentClient(server.getAgent());
try {
agentClient.getDiscoveryAgentService().synchronizeInventory(
- entityManager.find(ResourceSyncInfo.class, server.getId()));
+ entityManager.find(ResourceSyncInfo.class, server.getId()));
} catch (Exception e) {
log.warn("Could not perform commit synchronization with agent for server [" + server.getName()
- + "]", e);
+ + "]", e);
}
}
}
@@ -511,6 +510,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
}
}
+ @SuppressWarnings("deprecation")
public Set<ResourceUpgradeResponse> upgradeResources(Set<ResourceUpgradeRequest> upgradeRequests) {
Set<ResourceUpgradeResponse> result = new HashSet<ResourceUpgradeResponse>();
@@ -588,8 +588,9 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
private ResourceUpgradeResponse upgradeResource(@NotNull Resource resource, ResourceUpgradeRequest upgradeRequest,
boolean allowGenericPropertiesUpgrade) {
if (upgradeRequest.getUpgradeErrorMessage() != null) {
- ResourceError error = new ResourceError(resource, ResourceErrorType.UPGRADE, upgradeRequest
- .getUpgradeErrorMessage(), upgradeRequest.getUpgradeErrorStackTrace(), upgradeRequest.getTimestamp());
+ ResourceError error = new ResourceError(resource, ResourceErrorType.UPGRADE,
+ upgradeRequest.getUpgradeErrorMessage(), upgradeRequest.getUpgradeErrorStackTrace(),
+ upgradeRequest.getTimestamp());
resourceManager.addResourceError(error);
return null;
}
@@ -767,8 +768,8 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
continue;
}
}
- existingResource = resourceManager.getResourceByParentAndKey(overlord, existingParent, resource
- .getResourceKey(), resourceType.getPlugin(), resourceType.getName());
+ existingResource = resourceManager.getResourceByParentAndKey(overlord, existingParent,
+ resource.getResourceKey(), resourceType.getPlugin(), resourceType.getName());
}
if (existingResource != null) {
@@ -871,6 +872,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
if (existingResource.getInventoryStatus() == InventoryStatus.DELETED) {
existingResource.setInventoryStatus(InventoryStatus.COMMITTED);
existingResource.setPluginConfiguration(updatedResource.getPluginConfiguration());
+ existingResource.setAgentSynchronizationNeeded();
}
for (Resource childResource : updatedResource.getChildResources()) {
@@ -1021,14 +1023,14 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
// Do one query per 1000 Resource id's to prevent Oracle from failing because of an IN clause with more
// than 1000 items.
- List<Resource> resources = new ArrayList(resourceIds.length);
+ List<Resource> resources = new ArrayList<Resource>(resourceIds.length);
fromIndex = 0;
while (fromIndex < resourceIds.length) {
int toIndex = (resourceIds.length < (fromIndex + 1000)) ? resourceIds.length : (fromIndex + 1000);
int[] resourceIdSubArray = Arrays.copyOfRange(resourceIds, fromIndex, toIndex);
PageList<Resource> batchResources = resourceManager.findResourceByIds(subject, resourceIdSubArray, false,
- PageControl.getUnlimitedInstance());
+ PageControl.getUnlimitedInstance());
resources.addAll(batchResources);
fromIndex = toIndex;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/ResourceListAdapter.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/ResourceListAdapter.java
index c899487..964d84c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/ResourceListAdapter.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/ResourceListAdapter.java
@@ -160,7 +160,7 @@ class WsResourceListWrapper extends Resource {
destination.setProductVersion(source.getProductVersion());
destination.setResourceConfiguration(source.getResourceConfiguration());
destination.setResourceConfigurationUpdates(source.getResourceConfigurationUpdates());
- destination.setSchendules(source.getSchedules());
+ destination.setSchedules(source.getSchedules());
destination.setUuid(source.getUuid());
//handle the problematic references that would cause cycles if used by storing only ids.
if (source.getParentResource() != null) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/WsResource.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/WsResource.java
index 20d1c95..3c74f06 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/WsResource.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/jaxb/adapter/WsResource.java
@@ -116,7 +116,7 @@ class WsResource extends Resource {
destination.setProductVersion(source.getProductVersion());
destination.setResourceConfiguration(source.getResourceConfiguration());
destination.setResourceConfigurationUpdates(source.getResourceConfigurationUpdates());
- destination.setSchendules(source.getSchedules());
+ destination.setSchedules(source.getSchedules());
destination.setUuid(source.getUuid());
//handle the problematic references that would cause cycles if used by storing only ids.
if (source.getParentResource() != null) {
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
index 8a21886..fba8a68 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
@@ -74,8 +74,6 @@ public class MeasurementDefinitionManagerBean implements MeasurementDefinitionMa
* @param def the MeasuremendDefinition to delete
*/
public void removeMeasurementDefinition(MeasurementDefinition def) {
- long now = System.currentTimeMillis();
-
// First remove the schedules and associated OOBs.
List<MeasurementSchedule> schedules = def.getSchedules();
Iterator<MeasurementSchedule> schedIter = schedules.iterator();
@@ -86,8 +84,7 @@ public class MeasurementDefinitionManagerBean implements MeasurementDefinitionMa
sched.setBaseline(null);
}
oobManager.removeOOBsForSchedule(subjectManager.getOverlord(), sched);
- // IMPORTANT: Update the mtime to tell the Agent this Resource needs to be synced.
- sched.getResource().setMtime(now);
+ sched.getResource().setAgentSynchronizationNeeded();
entityManager.remove(sched);
schedIter.remove();
}
@@ -134,14 +131,13 @@ public class MeasurementDefinitionManagerBean implements MeasurementDefinitionMa
return results;
}
- @SuppressWarnings("unchecked")
public PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(Subject subject,
MeasurementDefinitionCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
;
- CriteriaQueryRunner<MeasurementDefinition> queryRunner = new CriteriaQueryRunner(criteria, generator,
- entityManager);
+ CriteriaQueryRunner<MeasurementDefinition> queryRunner = new CriteriaQueryRunner<MeasurementDefinition>(
+ criteria, generator, entityManager);
return queryRunner.execute();
}
}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
index 5b6b048..69a22db 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
@@ -24,21 +24,14 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.Date;
import java.util.UUID;
-import org.quartz.Trigger;
-import org.quartz.Scheduler;
-import org.quartz.JobDetail;
-import org.quartz.JobDataMap;
-import org.quartz.SimpleTrigger;
-import org.quartz.SchedulerException;
-
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
@@ -52,6 +45,12 @@ import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.quartz.JobDataMap;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.SimpleTrigger;
+import org.quartz.Trigger;
import org.jboss.annotation.IgnoreDependency;
@@ -318,13 +317,13 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
return;
}
- @RequiredPermissions( { @RequiredPermission(Permission.MANAGE_INVENTORY),
+ @RequiredPermissions({ @RequiredPermission(Permission.MANAGE_INVENTORY),
@RequiredPermission(Permission.MANAGE_SETTINGS) })
public void disableAllDefaultCollections(Subject subject) {
entityManager.createNamedQuery(MeasurementDefinition.DISABLE_ALL).executeUpdate();
}
- @RequiredPermissions( { @RequiredPermission(Permission.MANAGE_INVENTORY),
+ @RequiredPermissions({ @RequiredPermission(Permission.MANAGE_INVENTORY),
@RequiredPermission(Permission.MANAGE_SETTINGS) })
public void disableAllSchedules(Subject subject) {
entityManager.createNamedQuery(MeasurementSchedule.DISABLE_ALL).executeUpdate();
@@ -332,11 +331,10 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
}
public void createSchedulesForExistingResources(ResourceType type, MeasurementDefinition newDefinition) {
- long now = System.currentTimeMillis();
List<Resource> resources = type.getResources();
if (resources != null) {
for (Resource res : resources) {
- res.setMtime(now); // changing MTime tells the agent this resource needs to be synced
+ res.setAgentSynchronizationNeeded();
MeasurementSchedule sched = new MeasurementSchedule(newDefinition, res);
sched.setInterval(newDefinition.getDefaultInterval());
entityManager.persist(sched);
@@ -649,16 +647,10 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
final String randomSuffix = UUID.randomUUID().toString();
final String jobName = DEFAULT_AGENT_JOB + " - " + randomSuffix;
- JobDetail jobDetail = new JobDetail(
- jobName,
- DEFAULT_AGENT_GROUP,
- NotifyAgentsOfScheduleUpdatesJob.class);
+ JobDetail jobDetail = new JobDetail(jobName, DEFAULT_AGENT_GROUP, NotifyAgentsOfScheduleUpdatesJob.class);
final String triggerName = DEFAULT_AGENT_TRIGGER + " - " + randomSuffix;
- SimpleTrigger simpleTrigger = new SimpleTrigger(
- triggerName,
- DEFAULT_AGENT_GROUP,
- new Date());
+ SimpleTrigger simpleTrigger = new SimpleTrigger(triggerName, DEFAULT_AGENT_GROUP, new Date());
JobDataMap jobDataMap = simpleTrigger.getJobDataMap();
jobDataMap.put(TRIGGER_NAME, triggerName);
@@ -1236,8 +1228,8 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
// first get all the resources, which is needed to get the agent mappings
Subject overlord = subjectManager.getOverlord();
- PageList<Resource> resources = resourceManager.findResourceByIds(overlord, resourceIds, false, PageControl
- .getUnlimitedInstance());
+ PageList<Resource> resources = resourceManager.findResourceByIds(overlord, resourceIds, false,
+ PageControl.getUnlimitedInstance());
// then get all the requests
Set<ResourceMeasurementScheduleRequest> requests = findSchedulesForResourceAndItsDescendants(resourceIds, false);
@@ -1483,8 +1475,8 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
;
if (authorizationManager.isInventoryManager(subject) == false) {
- generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE, subject
- .getId());
+ generator.setAuthorizationResourceFragment(CriteriaQueryGenerator.AuthorizationTokenType.RESOURCE,
+ subject.getId());
}
CriteriaQueryRunner<MeasurementSchedule> queryRunner = new CriteriaQueryRunner(criteria, generator,
@@ -1523,4 +1515,3 @@ public class MeasurementScheduleManagerBean implements MeasurementScheduleManage
// }
}
-
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
index f2d05c5..14479ba 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
@@ -238,8 +238,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
persistedResource.setLocation(resource.getLocation());
persistedResource.setDescription(resource.getDescription());
- // NOTE: Updating the mtime will tell the Agent it needs to sync this Resource.
- persistedResource.setMtime(System.currentTimeMillis());
+ persistedResource.setAgentSynchronizationNeeded();
persistedResource.setModifiedBy(user.getName());
return entityManager.merge(persistedResource);
@@ -614,7 +613,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
private void updateInventoryStatus(Resource resource, InventoryStatus newStatus, long now) {
resource.setInventoryStatus(newStatus);
resource.setItime(now);
- resource.setMtime(now);
+ resource.setAgentSynchronizationNeeded();
}
@SuppressWarnings("unchecked")
@@ -757,8 +756,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
// Build up a list of composite Resources for the ancestry that includes which ancestors, if any, should be
// locked from view.
boolean isInventoryManager = authorizationManager.isInventoryManager(subject);
- List<ResourceLineageComposite> resourceLineage = new ArrayList<ResourceLineageComposite>(rawResourceLineage
- .size());
+ List<ResourceLineageComposite> resourceLineage = new ArrayList<ResourceLineageComposite>(
+ rawResourceLineage.size());
for (Resource resource : rawResourceLineage) {
boolean isLocked = !(isInventoryManager || authorizationManager.canViewResource(subject, resource.getId()));
ResourceLineageComposite composite = new ResourceLineageComposite(resource, isLocked);
@@ -776,8 +775,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
// If the ancestor is not locked, include viewable children.
if (!ancestor.isLocked() || ancestor.getResource() == parent) {
// Get all viewable committed children.
- PageList<Resource> children = findChildResourcesByCategoryAndInventoryStatus(subject, ancestor
- .getResource(), null, InventoryStatus.COMMITTED, PageControl.getUnlimitedInstance());
+ PageList<Resource> children = findChildResourcesByCategoryAndInventoryStatus(subject,
+ ancestor.getResource(), null, InventoryStatus.COMMITTED, PageControl.getUnlimitedInstance());
// Remove any that are in the lineage to avoid repeated handling.
children.removeAll(rawResourceLineage);
for (Resource child : children) {
@@ -1384,7 +1383,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
return result;
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({ "unchecked", "rawtypes" })
public List<AutoGroupComposite> findResourcesAutoGroups(Subject subject, int[] resourceIds) {
List<AutoGroupComposite> results = new ArrayList<AutoGroupComposite>();
List<Integer> ids = ArrayUtils.wrapInList(resourceIds);
@@ -1484,6 +1483,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
query.setParameter("inventoryStatus", InventoryStatus.COMMITTED);
List<Object[]> objs = query.getResultList();
+ @SuppressWarnings("rawtypes")
List results = new ArrayList<ResourceWithAvailability>(objs.size());
for (Object[] ob : objs) {
Resource r = (Resource) ob[0];
@@ -1814,7 +1814,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
List<Resource> resources = query.getResultList();
- return new PageList(resources, (int) count, pageControl);
+ return new PageList<Resource>(resources, (int) count, pageControl);
}
@SuppressWarnings("unchecked")
@@ -1847,7 +1847,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
List<Resource> resources = query.getResultList();
- return new PageList(resources, (int) count, pageControl);
+ return new PageList<Resource>(resources, (int) count, pageControl);
}
@SuppressWarnings("unchecked")
@@ -1890,7 +1890,7 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
List<Resource> resources = query.getResultList();
- return new PageList(resources, (int) count, pageControl);
+ return new PageList<Resource>(resources, (int) count, pageControl);
}
@SuppressWarnings("unchecked")
@@ -2396,7 +2396,6 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
return results;
}
- @SuppressWarnings("unchecked")
public PageList<ResourceComposite> findResourceCompositesByCriteria(Subject subject, ResourceCriteria criteria) {
boolean isInventoryManager = authorizationManager.isInventoryManager(subject);
@@ -2440,8 +2439,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
subject.getId());
}
- CriteriaQueryRunner<ResourceComposite> queryRunner = new CriteriaQueryRunner(criteria, generator,
- entityManager, false); // don't auto-init bags, we're returning composites not entities
+ CriteriaQueryRunner<ResourceComposite> queryRunner = new CriteriaQueryRunner<ResourceComposite>(criteria,
+ generator, entityManager, false); // don't auto-init bags, we're returning composites not entities
PageList<ResourceComposite> results = queryRunner.execute();
for (ResourceComposite nextComposite : results) {
@@ -2456,7 +2455,6 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
return results;
}
- @SuppressWarnings("unchecked")
public PageList<Resource> findResourcesByCriteria(Subject subject, ResourceCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
@@ -2470,7 +2468,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
subject.getId());
}
- CriteriaQueryRunner<Resource> queryRunner = new CriteriaQueryRunner(criteria, generator, entityManager);
+ CriteriaQueryRunner<Resource> queryRunner = new CriteriaQueryRunner<Resource>(criteria, generator,
+ entityManager);
PageList<Resource> results = queryRunner.execute();
return results;
}
@@ -2521,8 +2520,8 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
public <T> List<DisambiguationReport<T>> disambiguate(List<T> results, IntExtractor<? super T> extractor,
DisambiguationUpdateStrategy updateStrategy) {
- return Disambiguator.disambiguate(results, updateStrategy, extractor, entityManager, typeManager
- .getDuplicateTypeNames());
+ return Disambiguator.disambiguate(results, updateStrategy, extractor, entityManager,
+ typeManager.getDuplicateTypeNames());
}
public void updateAncestry(Subject subject, int resourceId) {
@@ -2545,13 +2544,13 @@ public class ResourceManagerBean implements ResourceManagerLocal, ResourceManage
@SuppressWarnings("unchecked")
public List<Integer> findIdsByTypeIds(List<Integer> resourceTypeIds) {
- return entityManager.createNamedQuery(Resource.QUERY_FIND_IDS_BY_TYPE_IDS).setParameter("resourceTypeIds",
- resourceTypeIds).getResultList();
+ return entityManager.createNamedQuery(Resource.QUERY_FIND_IDS_BY_TYPE_IDS)
+ .setParameter("resourceTypeIds", resourceTypeIds).getResultList();
}
@Override
public Integer getResourceCount(List<Integer> resourceTypeIds) {
- return (Integer) entityManager.createNamedQuery(Resource.QUERY_FIND_COUNT_BY_TYPES).setParameter(
- "resourceTypeIds", resourceTypeIds).getSingleResult();
+ return (Integer) entityManager.createNamedQuery(Resource.QUERY_FIND_COUNT_BY_TYPES)
+ .setParameter("resourceTypeIds", resourceTypeIds).getSingleResult();
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java
index 3963f9d..841fe03 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/PluginConfigurationMetadataManagerBean.java
@@ -1,6 +1,5 @@
package org.rhq.enterprise.server.resource.metadata;
-import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
@@ -58,8 +57,8 @@ public class PluginConfigurationMetadataManagerBean implements PluginConfigurati
// all new
if (existingConfigurationDefinition == null) {
if (log.isDebugEnabled()) {
- log.debug(existingType + " currently does not have a plugin configuration definition. Adding " +
- "new plugin configuration.");
+ log.debug(existingType + " currently does not have a plugin configuration definition. Adding "
+ + "new plugin configuration.");
}
entityMgr.persist(newType.getPluginConfigurationDefinition());
existingType.setPluginConfigurationDefinition(newType.getPluginConfigurationDefinition());
@@ -72,8 +71,8 @@ public class PluginConfigurationMetadataManagerBean implements PluginConfigurati
.updateConfigurationDefinition(newType.getPluginConfigurationDefinition(),
existingConfigurationDefinition);
- if (updateReport.getNewPropertyDefinitions().size() > 0 ||
- updateReport.getUpdatedPropertyDefinitions().size() > 0) {
+ if (updateReport.getNewPropertyDefinitions().size() > 0
+ || updateReport.getUpdatedPropertyDefinitions().size() > 0) {
Subject overlord = subjectMgr.getOverlord();
ResourceCriteria criteria = new ResourceCriteria();
criteria.addFilterResourceTypeId(existingType.getId());
@@ -99,6 +98,7 @@ public class PluginConfigurationMetadataManagerBean implements PluginConfigurati
private void updateResourcePluginConfiguration(Resource resource, ConfigurationDefinitionUpdateReport updateReport) {
Configuration pluginConfiguration = resource.getPluginConfiguration();
boolean modified = false;
+ @SuppressWarnings("unused")
int numberOfProperties = pluginConfiguration.getProperties().size();
ConfigurationTemplate template = updateReport.getConfigurationDefinition().getDefaultTemplate();
Configuration templateConfiguration = template.getConfiguration();
@@ -106,10 +106,10 @@ public class PluginConfigurationMetadataManagerBean implements PluginConfigurati
for (PropertyDefinition propertyDef : updateReport.getNewPropertyDefinitions()) {
if (propertyDef.isRequired()) {
Property templateProperty = templateConfiguration.get(propertyDef.getName());
- if (templateProperty==null) {
+ if (templateProperty == null) {
throw new IllegalArgumentException("The property [" + propertyDef.getName()
- + "] marked as required in the configuration definition of [" + propertyDef.getConfigurationDefinition().getName()
- + "] has no attribute 'default'");
+ + "] marked as required in the configuration definition of ["
+ + propertyDef.getConfigurationDefinition().getName() + "] has no attribute 'default'");
} else {
pluginConfiguration.put(templateProperty.deepCopy(false));
modified = true;
@@ -129,7 +129,7 @@ public class PluginConfigurationMetadataManagerBean implements PluginConfigurati
}
if (modified) {
- resource.setMtime(new Date().getTime());
+ resource.setAgentSynchronizationNeeded();
}
}
}