1 package org.kuali.rice.ksb.api.registry;
2
3 import org.kuali.rice.core.api.mo.common.Versioned;
4 import org.kuali.rice.ksb.api.bus.ServiceConfiguration;
5
6 /**
7 * A service descriptor includes a serialized XML representation of the
8 * {@link ServiceConfiguration} for the service.
9 *
10 * <p>It's expected that a client of this service which needs this information
11 * will materialize this value when it's needed to obtain additional
12 * information about the configuration information for the service. The
13 * process for materializing the information can be dependent upon the
14 * type of the {@link ServiceInfo} which contains this descriptor.
15 *
16 * <p>The separation of this descriptor information from the main
17 * {@link ServiceInfo} allows for clients of the registry to only load the
18 * basic information about the services in the registry, and then pull in the
19 * full descriptor for the services they actually need to invoke and work with.
20 *
21 * @author Kuali Rice Team (rice.collab@kuali.org)
22 *
23 */
24 public interface ServiceDescriptorContract extends Versioned {
25
26 /**
27 * Returns the id of this service descriptor. This value should be unique
28 * across service descriptors. This value is generated when the service
29 * is published to the registry, so this value can be null if the service
30 * has not yet been published to the registry.
31 *
32 * @return the id of this service descriptor, or null if the service and
33 * it's descriptor has not yet been published to the registry
34 */
35 String getId();
36
37 /**
38 * Returns an XML value which can be used to materialize the {@link ServiceConfiguration}
39 * for the service.
40 *
41 * @return the XML representation of the {@link ServiceConfiguration} for the service,
42 * should never return a null or blank value
43 */
44 String getDescriptor();
45
46 }