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 b9ccebed287c8cc86ad4e601b3ceb23ec0520770 Author: Jay Shaughnessy jshaughn@redhat.com Date: Tue Jan 31 13:32:08 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
Conflicts:
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementScheduleManagerBean.java
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 e5df592..bbc2a1d 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 @@ -23,21 +23,14 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; +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; @@ -51,6 +44,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;
@@ -317,13 +316,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(); @@ -331,11 +330,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); @@ -648,16 +646,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); @@ -1235,8 +1227,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); @@ -1482,8 +1474,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, @@ -1522,4 +1514,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 4cbc3d1..fcc6638 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(); } } }
rhq-commits@lists.fedorahosted.org