<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><style type="text/css"><!-- #msg DL { border : 1px #006 solid; background-color : #369; padding : 6px; color : #fff; } #msg DT { float : left; width : 6em; font-weight : bold; } #msg DL, #msg DT, #msg UL, #msg LI { font-family : arial,helvetica,sans-serif; font-size : 10pt; } h3 { font-family : arial,helvetica,sans-serif; font-size : 10pt; font-weight : bold; } #msg PRE { overflow : auto; white-space : normal; background-color : #ffc; border : 1px #fc0 solid; padding : 6px; } #msg UL, PRE, .diff { overflow : auto; } #patch h4 { font-family : arial,helvetica,sans-serif; font-size : 10pt; } #patch h4 { padding: 8px; background : #369; color : #fff; margin : 0; } #patch .propset h4, #patch .binary h4 {margin: 0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {background:#eeeeee;padding: 0 0 10px 0;} #patch .propset .diff, #patch .binary .diff {padding: 10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch .add {background:#ddffdd;} #patch .rem {background:#ffdddd;} #patch .lines, .info {color:#888888;background:#ffffff;} .diff { width : 100%; } #msg DL { border : 1px #006 solid; background-color : #369; padding : 6px; color : #fff; } #msg DT { float : left; width : 6em; font-weight : bold; } #msg DL, #msg DT, #msg UL, #msg LI { font-family : arial,helvetica,sans-serif; font-size : 10pt; } h3 { font-family : arial,helvetica,sans-serif; font-size : 10pt; font-weight : bold; } #msg PRE { overflow : auto; white-space : normal; background-color : #ffc; border : 1px #fc0 solid; padding : 6px; } #msg UL, PRE, .diff { overflow : auto; } #patch h4 { font-family : arial,helvetica,sans-serif; font-size : 10pt; } #patch h4 { padding: 8px; background : #369; color : #fff; margin : 0; } #patch .propset h4, #patch .binary h4 {margin: 0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {background:#eeeeee;padding: 0 0 10px 0;} #patch .propset .diff, #patch .binary .diff {padding: 10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch .add {background:#ddffdd;} #patch .rem {background:#ffdddd;} #patch .lines, .info {color:#888888;background:#ffffff;} .diff { width : 100%; } --></style> <title>[rhq-project.org rhq] [1503] pass ContentContext to resource components for resource types that have creatable content-backed child resource types (fix for http://jira.rhq-project.org/browse/RHQ-846)</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1503</dd> <dt>Author</dt> <dd>ispringer</dd> <dt>Date</dt> <dd>2008-09-16 16:10:14 -0500 (Tue, 16 Sep 2008)</dd> </dl> <h3>Log Message</h3> <pre>pass ContentContext to resource components for resource types that have creatable content-backed child resource types (fix for http://jira.rhq-project.org/browse/RHQ-846)</pre> <h3>Modified Paths</h3> <ul> <li><a href="#rhqtrunkmodulescoreplugincontainersrcmainjavaorgrhqcorepcinventoryInventoryManagerjava">rhq/trunk/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="rhqtrunkmodulescoreplugincontainersrcmainjavaorgrhqcorepcinventoryInventoryManagerjava"></a> <div class="modfile"><h4>Modified: rhq/trunk/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java (1502 => 1503)</h4> <pre class="diff"> <span class="info">--- rhq/trunk/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java 2008-09-16 21:06:17 UTC (rev 1502) +++ rhq/trunk/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java 2008-09-16 21:10:14 UTC (rev 1503) </span><span class="lines">@@ -62,6 +62,7 @@ </span><span class="cx"> import org.rhq.core.domain.resource.ResourceError; import org.rhq.core.domain.resource.ResourceErrorType; import org.rhq.core.domain.resource.ResourceType; </span><span class="add">+import org.rhq.core.domain.resource.ResourceCreationDataType; </span><span class="cx"> import org.rhq.core.pc.ContainerService; import org.rhq.core.pc.PluginContainer; import org.rhq.core.pc.PluginContainerConfiguration; </span><span class="lines">@@ -97,9 +98,11 @@ </span><span class="cx"> /** * Manages the process of both auto-detection of servers and runtime detection of services across all plugins. Manages * their scheduling and result sending as well as the general inventory model. </span><span class="add">+ * <p> + * This is an Agent service; its DiscoveryAgentService interface is made remotely accessible if it is deployed within + * the Agent. + * </p> </span><span class="cx"> * </span><span class="rem">- * <p>This is an agent service; its interface is made remotely accessible if this is deployed within the agent.</p> - * </span><span class="cx"> * @author Greg Hinkle * @author Ian Springer * @author Jay Shaughnessy </span><span class="lines">@@ -1439,17 +1442,25 @@ </span><span class="cx"> } private ContentContext getContentContext(Resource resource) { </span><span class="rem">- if (resource.getResourceType().getPackageTypes() == null - || resource.getResourceType().getPackageTypes().isEmpty()) { </span><span class="add">+ ResourceType resourceType = resource.getResourceType(); + boolean hasPackageTypes = (resourceType.getPackageTypes() != null && !resourceType.getPackageTypes().isEmpty()); + boolean hasContentBasedCreatableChildren = false; + for (ResourceType childResourceType : resourceType.getChildResourceTypes()) { + if (childResourceType.isCreatable() && childResourceType.getCreationDataType() == ResourceCreationDataType.CONTENT) { + hasContentBasedCreatableChildren = true; + break; + } + } + // Only give the ResourceComponent a ContentContext if its metadata says it actually needs one. + if (!hasPackageTypes && !hasContentBasedCreatableChildren) { </span><span class="cx"> return null; } </span><span class="rem">- </span><span class="cx"> if (resource.getId() == 0) { </span><span class="rem">- log.warn("RESOURCE ID IS 0! Content features may not work - resource needs to be synced with server"); </span><span class="add">+ log.warn("RESOURCE ID IS 0! Content features may not work - Resource needs to be synced with server"); </span><span class="cx"> } </span><span class="rem">- - ContentServices cm = PluginContainer.getInstance().getContentManager(); - ContentContext contentContext = new ContentContextImpl(resource.getId(), cm); </span><span class="add">+ ContentServices contentManager = PluginContainer.getInstance().getContentManager(); + //noinspection UnnecessaryLocalVariable + ContentContext contentContext = new ContentContextImpl(resource.getId(), contentManager); </span><span class="cx"> return contentContext; } </span> </pre> </div> </div> </body> </html> |