The default configuration is the configuration shipped in, in-factory with the Adroitlogic UltraESB. This section describes the key configuration elements of the default configuration in brief, while a more detailed configuration guide on each and every component is in discussion under the User Guide.
Root configuration walk through
The main configuration file that UltraESB looks for by default is the ultra-root.xml file which resides in the conf directory of the ULTRA_HOME. This particular file in brief is as follows;
| Note The following configuration only contains the required key elements. Comments and few other elements were cut off for the clarity in presenting it on the documentation. The actual file varies from this, but should contain all what is displayed here. |
The UltraESB component configuration is a spring configuration with a set of spring beans defining each and every component as seen above. The above configuration contains the following bean definitions;
fileCache
The bean identified by the key "fileCache" is the file cache configuration to be used by the transport receivers and senders, for the time being let's not worry about this. The guide discusses this concept in detail under the Architecture and Design and the configuration options under the Configuration and Administration.
http-8280
The bean identified by the key "http-8280" is the HTTP listener or the HTTP transport receiver of the UltraESB configured to be listening on the port 8280, as described by the property named port. Further the file cache bean is passed in to use it with the transport.
https-8443
The bean identified by the key "https-8443" is the HTTPS listener or the HTTPS transport receiver of the UltraESB configured to be listening on the port 8443, as described by the property named port. Apart from the port property there are few other properties which configure SSL. The complete configuration options will be discussed under the Transports configurations in Configuration and Administration. This also uses the same file cache bean.
http-sender
The bean identified by the key "http-sender" is the HTTP transport sender configured with the file cache bean as in the receiver.
https-sender
The bean identified by the key "https-sender" is the HTTPS transport sender configured with the file cache bean as in the receiver.
| Note In the above 4 bean identifiers there is no relation between there protocol and the listening port, just for the clear identification purposes they have given the names according to there protocol and the exposed ports, but they can be any arbitrary strings. Further UltraESB can have more than one transport adapters for a given protocol, for example you can have 2 HTTP listeners running on port 8280 and 8290. |
ultra-config
The bean identified by the key "ultra-config" is the bean which provides the main configuration into the UltraESB. It provides proxy service configurations, the mediation configurations into the ESB server and some other key configurations which we will be looking at in detail under the User Guide. This specifies the dynamic sub-contexts you have, which provides the per said proxy service and mediation configurations.
| Dynamic Sub-contexts The idea of having one or more dynamic sub-contexts defining the proxy services and the mediation is the ability to provide configuration update for the proxy services and mediation without any downtime. At a production deployment the user most of the time needs to update the above elements and not transports and so forth, which are treated as more static. So extracting out the dynamic element fragments into a separate sub-context allows the ESB to update that sub-context without affecting the other more static configurations, and most importantly with zero down time. For more information on this regard please refer to the Configuration and Administration. |
The dynamic sub-context as defined in the ultra-config bean in the main configuration refers to a file named ultra-dynamic.xml again resides on the conf directory of the ULTRA_HOME.
Dynamic sub-context
This contains the more dynamic configuration elements such as proxy services, sequences, endpoints etc.. as pointed out earlier. The in-factory ultra-dynamic.xml file shipped by default should look like follows;
This again is a spring configuration with a two custom bean configurations with proxy elements qualified with the UltraESB configuration namespace which is http://www.adroitlogic.org/ultraesb and the respective schema can be found at http://schemas.ultraesb.org/ultraesb-1.5.xsd
While the complete configuration and the schema discussion is available at the User Guide, a briefing of these proxy services are as follows.
echo-proxy
The first configuration element defines a proxy service with the name "echo-proxy", which is exposed on the transport identified by the key "http-8280", defined in the above described root configuration. This means that the proxy service is listening for messages on the port 8280 over the HTTP transport with the service URL being http://localhost:8280/service/echo-proxy.
That is about the external interface(s) of the proxy service. The internal mediation and destination configurations of the proxy service is defined in the target, encapsulated within the <u:target> element. This echo-proxy has the following configurations out of the following possible mediation/destination configurations.
- in sequence - commented out, so not effective. The commented out in sequence how ever refers to a Java class type sequence.
- in destination - refers to an external type address, http://localhost:9000/service/EchoService, meaning the message will be sent to the EchoService running on port 9000 after the specified incoming mediation.
- out sequence - specified as a Java fragment type sequence, which prints the response from the EchoService back to the ESB, into the standard output.
- out destination - specified as a response type address, meaning that the response from the EchoService is going to be sent back to the caller/client after the out going mediation.
Apart from that a proxy service can have meta-data configurations which we will discuss under the Configuration Guide of the proxy service.
The message flow described by this proxy service configuration can be visualize as follows;

echo-back
The second configuration element is also a proxy service and is identified by the key "echo-back". This is a special type of a proxy which belongs to the mock services category and the service exposed on the transports identified by the key "http-8280" and "https-8443", defined in the above described root configuration. It implies that this mock service is listening for messages on the port 8280 over the HTTP transport as well as on the port 8443 over the HTTPS transport, making it's service URLs to be http://localhost:8280/service/echo-back and https://localhost:8443/service/echo-back.
The internal target of this echo-back proxy service contains only and in sequence and no destinations nor out sequence. The target in sequence is a Java fragment type sequence which takes over the message and handles it using the UltraESB Mediation API to provide the response back to the consumer.
The visualization of the echo-back proxy is as follows;

That is the brief walk through of the default in-factory configuration of the UltraESB, and the next section will discuss how to Send a message through the UltraESB using the UltraESB tools.




