javax.jbi.component
Interface ComponentContext


public interface ComponentContext

This interface provides access to data needed by a JBI component about the JBI environment in which it is installed, as well providing the means to allow the component to inform the JBI environment about services provided by this component. This interface provides methods for the following functions:

Note: The term "NMR" (meaning Normalized Message Router) is used here to refer to the messaging system of the JBI implementation. This term is used as a synonym for the JBI implementation, and refers only to the logical message routing functions of a JBI implementation. It is not meant to require that JBI implementations literally have a subsystem named "NMR".

Author:
JSR208 Expert Group

Method Summary
 ServiceEndpoint activateEndpoint(javax.xml.namespace.QName serviceName, java.lang.String endpointName)
          Activates the named endpoint with the NMR.
 void deactivateEndpoint(ServiceEndpoint endpoint)
          Deactivates the given endpoint with the NMR.
 void deregisterExternalEndpoint(ServiceEndpoint externalEndpoint)
          Deregisters the given external endpoint with the NMR.
 java.lang.String getComponentName()
          Get the unique component name of this component, ass assigned by the identification section of this component's installation descriptor.
 DeliveryChannel getDeliveryChannel()
          Get a channel for this component to use to communicate with the Normalized Message Router.
 ServiceEndpoint getEndpoint(javax.xml.namespace.QName service, java.lang.String name)
          Get the service endpoint for the named activated endpoint, if any.
 org.w3c.dom.Document getEndpointDescriptor(ServiceEndpoint endpoint)
          Retrieve the service description metadata for the specified endpoint.
 ServiceEndpoint[] getEndpoints(javax.xml.namespace.QName interfaceName)
          Queries the NMR for active endpoints that implement the given interface.
 ServiceEndpoint[] getEndpointsForService(javax.xml.namespace.QName serviceName)
          Queries the NMR for active endpoints belonging to the given service.
 ServiceEndpoint[] getExternalEndpoints(javax.xml.namespace.QName interfaceName)
          Queries the NMR for external endpoints that implement the given interface name.
 ServiceEndpoint[] getExternalEndpointsForService(javax.xml.namespace.QName serviceName)
          Queries the NMR for external endpoints that are part of the given service.
 java.lang.String getInstallRoot()
          Get the installation root directory path for this component.
 java.util.logging.Logger getLogger(java.lang.String suffix, java.lang.String resourceBundleName)
          Get a logger instance from JBI.
 MBeanNames getMBeanNames()
          Get a reference to the MBeanNames creator for use in creating custom MBean names.
 javax.management.MBeanServer getMBeanServer()
          Get the JMX MBean server used to register all MBeans in the JBI environment.
 javax.naming.InitialContext getNamingContext()
          Get the JNDI naming context for this component.
 java.lang.Object getTransactionManager()
          Get the TransactionManager for this implementation.
 java.lang.String getWorkspaceRoot()
          Get the root directory path for this component's private workspace.
 void registerExternalEndpoint(ServiceEndpoint externalEndpoint)
          Registers the given external endpoint with the NMR.
 ServiceEndpoint resolveEndpointReference(org.w3c.dom.DocumentFragment epr)
          Resolve the given endpoint reference into a service endpoint.
 

Method Detail

activateEndpoint

public ServiceEndpoint activateEndpoint(javax.xml.namespace.QName serviceName,
                                        java.lang.String endpointName)
                                 throws JBIException
Activates the named endpoint with the NMR. Activation indicates to the NMR that this component is ready to process requests sent to the named endpoint.

Note that the JBI implementation may call this component's Component.getServiceDescription(ServiceEndpoint) method before returning from this method call; the component's implementation must be ready to supply service description metadata before the result of this activation call (a ServiceEndpoint) is known.

Parameters:
serviceName - qualified name of the service the endpoint exposes; must be non-null.
endpointName - the name of the endpoint to be activated; must be non-null and non-empty.
Returns:
a reference to the activated endpoint; must be non-null.
Throws:
JBIException - if the endpoint cannot be activated.

deactivateEndpoint

public void deactivateEndpoint(ServiceEndpoint endpoint)
                        throws JBIException
Deactivates the given endpoint with the NMR. Deactivation indicates to the NMR that this component will no longer process requests sent to the named endpoint.

Parameters:
endpoint - reference to the endpoint to be deactivated; must be non-null.
Throws:
JBIException - if the endpoint cannot be deactivated.

registerExternalEndpoint

public void registerExternalEndpoint(ServiceEndpoint externalEndpoint)
                              throws JBIException
Registers the given external endpoint with the NMR. This indicates to the NMR that the given endpoint is used as a proxy for external service consumers to access an internal service of the same service name (but a different endpoint name).

Parameters:
externalEndpoint - the external endpoint to be registered, must be non-null.
Throws:
JBIException - if an external endpoint with the same name is already registered, by this or another component.

deregisterExternalEndpoint

public void deregisterExternalEndpoint(ServiceEndpoint externalEndpoint)
                                throws JBIException
Deregisters the given external endpoint with the NMR. This indicates to the NMR that the given external endpoint can no longer be used as a proxy for external service consumers to access an internal service of the same service name.

Parameters:
externalEndpoint - the external endpoint to be deregistered; must be non-null.
Throws:
JBIException - if the given external endpoint was not previously registered.

resolveEndpointReference

public ServiceEndpoint resolveEndpointReference(org.w3c.dom.DocumentFragment epr)
Resolve the given endpoint reference into a service endpoint. This is called by the component when it has an EPR that it wants to resolve into a service endpoint.

Note that the service endpoint returned refers to a dynamic endpoint; the endpoint will exist only as long as this component retains a strong reference to the object returned by this method. The endpoint may not be included in the list of "activated" endpoints.

Parameters:
epr - endpoint reference as an XML fragment; must be non-null.
Returns:
the service endpoint corresponding to the given endpoint reference; null if the reference cannot be resolved.

getComponentName

public java.lang.String getComponentName()
Get the unique component name of this component, ass assigned by the identification section of this component's installation descriptor.

Returns:
the component name; must be non-null and non-empty.

getDeliveryChannel

public DeliveryChannel getDeliveryChannel()
                                   throws MessagingException
Get a channel for this component to use to communicate with the Normalized Message Router. This channel must be used by the component to send and receive message exchanges.

Returns:
the delivery channel for this component; must be non-null.
Throws:
MessagingException - if a channel has already been opened, but not yet closed.

getEndpoint

public ServiceEndpoint getEndpoint(javax.xml.namespace.QName service,
                                   java.lang.String name)
Get the service endpoint for the named activated endpoint, if any.

Parameters:
service - qualified-name of the endpoint's service; must be non-null.
name - name of the endpoint; must be non-null.
Returns:
the named endpoint, or null if the named endpoint is not activated.

getEndpointDescriptor

public org.w3c.dom.Document getEndpointDescriptor(ServiceEndpoint endpoint)
                                           throws JBIException
Retrieve the service description metadata for the specified endpoint.

Note that the result can use either the WSDL 1.1 or WSDL 2.0 description language.

Parameters:
endpoint - endpoint reference; must be non-null.
Returns:
metadata describing endpoint, or null if metadata is unavailable.
Throws:
JBIException - invalid endpoint reference.

getEndpoints

public ServiceEndpoint[] getEndpoints(javax.xml.namespace.QName interfaceName)
Queries the NMR for active endpoints that implement the given interface. This will return the endpoints for all services and endpoints that implement the named interface (portType in WSDL 1.1). This method does NOT include external endpoints (those registered using registerExternalEndpoint(ServiceEndpoint).

Parameters:
interfaceName - qualified name of interface/portType that is implemented by the endpoint; if null then all activated endpoints in the JBI environment must be returned.
Returns:
an array of available endpoints for the specified interface name; must be non-null; may be empty.

getEndpointsForService

public ServiceEndpoint[] getEndpointsForService(javax.xml.namespace.QName serviceName)
Queries the NMR for active endpoints belonging to the given service. This method does NOT include external endpoints (those registered using registerExternalEndpoint(ServiceEndpoint).

Parameters:
serviceName - qualified name of the service that the endpoints are part of; must be non-null.
Returns:
an array of available endpoints for the specified service name; must be non-null; may be empty.

getExternalEndpoints

public ServiceEndpoint[] getExternalEndpoints(javax.xml.namespace.QName interfaceName)
Queries the NMR for external endpoints that implement the given interface name. This methods returns only registered external endpoints (see registerExternalEndpoint(ServiceEndpoint).

Parameters:
interfaceName - qualified name of interface implemented by the endpoints; must be non-null.
Returns:
an array of available external endpoints for the specified interface name; must be non-null; may be empty.

getExternalEndpointsForService

public ServiceEndpoint[] getExternalEndpointsForService(javax.xml.namespace.QName serviceName)
Queries the NMR for external endpoints that are part of the given service.

Parameters:
serviceName - qualified name of service that contains the endpoints; must be non-null.
Returns:
an array of available external endpoints for the specified service name; must be non-null; may be empty.

getInstallRoot

public java.lang.String getInstallRoot()
Get the installation root directory path for this component.

This method MUST return the file path formatted for the underlying platform.

Returns:
the installation root directory path, in platform-specific form; must be non-null and non-empty.

getLogger

public java.util.logging.Logger getLogger(java.lang.String suffix,
                                          java.lang.String resourceBundleName)
                                   throws java.util.MissingResourceException,
                                          JBIException
Get a logger instance from JBI. Loggers supplied by JBI are guaranteed to have unique names such that they avoid name collisions with loggers from other components created using this method. The suffix parameter allows for the creation of subloggers as needed. The JBI specification says nothing about the exact names to be used, only that they must be unique across components and the JBI implementation itself.

Parameters:
suffix - for creating subloggers; use an empty string for the base component logger; must be non-null.
resourceBundleName - name of ResourceBundle to be used for localizing messages for the logger. May be null if none of the messages require localization. The resource, if non-null, must be loadable using the component's class loader as the initiating loader.
Returns:
a standard logger, named uniquely for this component (plus the given suffix, if applicable); must be non-null.
Throws:
java.util.MissingResourceException - if the ResourceBundleName is non-null and no corresponding resource can be found.
JBIException - if the resourceBundleName has changed from a previous invocation by this component of this method with the same suffix.

getMBeanNames

public MBeanNames getMBeanNames()
Get a reference to the MBeanNames creator for use in creating custom MBean names.

Returns:
reference to the MBeanNames creator; must be non-null.

getMBeanServer

public javax.management.MBeanServer getMBeanServer()
Get the JMX MBean server used to register all MBeans in the JBI environment.

Returns:
a reference to the MBean server; must be non-null.

getNamingContext

public javax.naming.InitialContext getNamingContext()
Get the JNDI naming context for this component. This context is a standard JNDI InitialContext but its content will vary based on the environment in which the JBI implementation is running.

Returns:
the JNDI naming context; must be non-null.

getTransactionManager

public java.lang.Object getTransactionManager()
Get the TransactionManager for this implementation. The instance returned is an implementation of the standard JTA interface. If none is available, this method returns null.

The object returned by this method is untyped, to allow this interface to be compiled in environments that do not support JTA. If not null, the object returned must be of type javax.transaction.TransactionManager.

This downcast is necessary because JBI is used in environments that do not support JTA (i.e., J2SE). Explicit use of JTA types would cause compilation failures in such environments.

Returns:
A TransactionManager instance, or null if none is available in the execution environment.

getWorkspaceRoot

public java.lang.String getWorkspaceRoot()
Get the root directory path for this component's private workspace.

This method MUST return the file path formatted for the underlying platform.

The returned value must indicate a valid file path that the component may use to write files to, and read files from.

Returns:
the private workspace root path, in platform-specific form; must be non-null and non-empty.

Built 06/07/2005 11:16 AM on acer (SunOS 5.9)

Copyright (c) 2004-2005 Sun Microsystems Inc., All Rights Reserved.