Jump to: navigation, search

COSMOS Design 218016

Revision as of 15:06, 12 February 2008 by Joel.hawkins.compuware.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Back to Management Enablement Design

Change History

Name: Date: Revised Sections:
Joel Hawkins 02/12/2008
  • Initial version

Workload Estimation

Rough workload estimate in person weeks
Process Sizing Names of people doing the work
Design 0.2 Joel Hawkins
Code 2
Test 1
Documentation 0.5
Build and infrastructure 0.3
Code review, etc.*
TOTAL 4

'* - includes other committer work (e.g. check-in, contribution tracking)

Requirement

When serializing EPRs for cosmos components, the underlying muse infrastructure replaces the hostname supplied for the managed resource with the IP address corresponding to the host name. This may cause problems when communicating with IPv6 networks or when re-basing a given host onto a different address.

Design

By default, the wsdm binding use the canonical host name of the local host as the host portion of the endpoint reference address. If the system property org.eclipse.cosmos.me.management.UseIPAddressForEPR is true, then the binding will use the IP address of the local host.

The ManagedResource annotation will be augmented to allow adopters to specify how to represent the hostname when constructing the resource's EPR.

/**
 * Annotation used to indicate a class to be exposed as a manageable resource. 
 */
@Target(TYPE)
@Retention(RUNTIME)
public @interface ManagedResource {
	/**
	 * A text description of the resource. This value will be used as the
	 * default description when the resource is introspected.
	 */
	String description() default "";
	/**
	 * The namespace of the resource. This namespace will be used for all
	 * operations and properties exposed by this resource (unless overridden) 
	 * that are not part of some other capability  
	 */
	String namespace() default "";
	/**
	 * The desired persistence model for the resource.   
	 */
	String persistent() default "never";
	
	/**
	 * If true, indicates that the resource should support advertisement, and
	 * that the initial advertisementConsumer should be honored.   
	 */
	boolean advertise() default false;
	/**
	 * A text string used by the management host to identify the
	 * endpoint of an initial advertisement. This attribute is only used
	 * if advertise is true.   
	 */
	String advertisementConsumer() default "";
	
	/**
	 * A name used to supply a target for AutoWire-annotated
	 * fields in other managed components.
	 */
	String autowireName() default "";
	
	/**
	 * Use the host name when generating the resource's EPR.
	 * If useHostNameInEPR is set to false, the numeric IP address
         * is used instead.
	 */
	boolean useHostNameInEPR() default true;
	
}

Open Issues/Questions

All reviewer feedback should go in the Talk page for 218016.