com.ibm.broker.config.proxy
Interface DeployableObject

All Known Subinterfaces:
DeployedObject
All Known Implementing Classes:
BarEntry, MessageFlowDependency, MessageFlowProxy

public interface DeployableObject

Each instance of a class that implements this interface represents a file that can be deployed.

This interface is directly implemented only by the BarEntry class, which represents any deployable object that exists within a BarFile. The DeployedObject interface is a specialization of this interface that describes a specific deployed instance of a deployable object, and this is implemented in two further classes. User-written classes do not need to implement either interface.

Classes that implement this interface are able to describe lists of keywords and their values that may be associated with the deployed object. For the implementors described above, keywords and their values are embedded inside the object's file as deployed inside the broker archive file. Each keyword/value pair is found inside the contents of the deployed object's file, surrounded with an eyecatcher value. The eyecatcher begins with $MQSI, ends with MQSI$ and the keyword is separated from the value with an equals sign ('='). For example, if the following string is found within a deployed file's contents:

     $MQSI apfel=strudel MQSI$

then the keyword apfel will be associated with the value strudel for that deployed object.

Keywords should be unique within each deployed file. If a keyword is repeated, the value returned from the getKeywordValue() method will be the one associated with the earliest occurrence of the keyword in the deployed file's contents.

Leading and trailing spaces between the components of the eyecatcher are ignored, and there is an optional underscore after $MQSI. With this in mind, the case-insensitive regular expression that is used to match each keyword and value is:

     \$MQSI[\s_]?[\s]*([^=]+?)[\s]*=[\s]*(.*?)[\s]*MQSI\$

The two sections of the expression in parentheses describe the keyword and value respectively.

The keyword with the name described by VERSION_KEYWORD is embedded in compiled message flow and dictionary files by the Message Brokers Toolkit, if a value has been configured in the appropriate editor. The keyword with the name described by BARNAME_KEYWORD is reserved by the Configuration Manager, for describing to the Config Manager Proxy the name of the broker archive file that deployed each object.

Keywords can appear anywhere in each deployed file. The most effective way of adding additional keywords to message flows is to set them as the string attribute of passthrough nodes, or in ESQL comments or strings. See the main Message Broker documentation for hints on how to effectively embed keywords in other deployable object types.

Note that when deploying artefacts that use the zip file format (e.g. .xsdzip, .jar), keywords are not extracted from the .bar file but from an optional file called META-INF/keywords.txt from within the zipped artefact.

interface com.ibm.broker.config.proxy.DeployableObject

Responsibilities States that implementing classes represent objects that can be deployed to execution groups.
Internal Collaborators None

 Change Activity:
 --------  ----------- -------------   ------------------------------------
 Reason:   Date:       Originator:     Comments:
 --------  ----------- -------------   ------------------------------------
 f45166    2007-06-11  HDMPL           v6.1 Release

 

Version:
Config/com/ibm/broker/config/proxy/DeployableObject.java, CMP, S000 1.1

Field Summary
static java.lang.String BARNAME_KEYWORD
          The keyword used to denote the BAR File name of a DeployedObject.
static java.lang.String VERSION_KEYWORD
          The keyword used to denote the version of a DeployedObject.
 
Method Summary
 java.lang.String getFileExtension()
          Returns the file extension of the current deployed object.
 java.lang.String getFullName()
          Returns the name of the current deployed object as it existed in the BAR file at deployment time- including any file extension but excluding any path information.
 java.lang.String[] getKeywords()
          Returns the set of keywords for this deployed object which were found embedded in the object at deploy time.
 java.lang.String getKeywordValue(java.lang.String keyword)
          Returns the value of the supplied keyword.
 java.util.Date getModifyTime()
          Returns the time that the current deployed object was last modified, according to the file modification date set in the broker archive file.
 java.lang.String getName()
          Returns the name of the current deployed object.
 java.lang.String getVersion()
          Returns the value of the 'version' keyword if it was embedded in the object at deploy time.
 

Field Detail

VERSION_KEYWORD

static final java.lang.String VERSION_KEYWORD
The keyword used to denote the version of a DeployedObject.

See Also:
Constant Field Values

BARNAME_KEYWORD

static final java.lang.String BARNAME_KEYWORD
The keyword used to denote the BAR File name of a DeployedObject.

See Also:
Constant Field Values
Method Detail

getFileExtension

java.lang.String getFileExtension()
Returns the file extension of the current deployed object. The String returned is taken from the name of the file as it existed in the BAR file at deployment time- from the first character after the last period ('.') to the end of the filename.

Returns:
String file extension, or the empty string if the file did not have any extension.

getModifyTime

java.util.Date getModifyTime()
Returns the time that the current deployed object was last modified, according to the file modification date set in the broker archive file.

Returns:
Date the time of the most last modification.

getName

java.lang.String getName()
                         throws ConfigManagerProxyPropertyNotInitializedException
Returns the name of the current deployed object. This is taken from the name of the file as it existed in the BAR file at deployment time, up to but excluding the last period ('.').

Returns:
String name of the deployable
Throws:
ConfigManagerProxyPropertyNotInitializedException - If information on the name was not supplied by the Configuration Manager before a timeout occurred.

getFullName

java.lang.String getFullName()
                             throws ConfigManagerProxyPropertyNotInitializedException
Returns the name of the current deployed object as it existed in the BAR file at deployment time- including any file extension but excluding any path information.

Returns:
String name of the deployable
Throws:
ConfigManagerProxyPropertyNotInitializedException - If information on the name was not supplied by the Configuration Manager before a timeout occurred.

getVersion

java.lang.String getVersion()
                            throws ConfigManagerProxyPropertyNotInitializedException
Returns the value of the 'version' keyword if it was embedded in the object at deploy time. If no string was set the return value is null.

Returns:
String version information
Throws:
ConfigManagerProxyPropertyNotInitializedException - If information on the version was not supplied by the Configuration Manager before a timeout occurred.

getKeywords

java.lang.String[] getKeywords()
                               throws ConfigManagerProxyPropertyNotInitializedException
Returns the set of keywords for this deployed object which were found embedded in the object at deploy time. Use DeployedObject.getKeywordValue() to look up the value of a given keyword.

See the top of this file for an overview of how to associate keywords with deployed objects.

Returns:
String[] the set of keywords that were found.
Throws:
ConfigManagerProxyPropertyNotInitializedException - If information on the set of keywords was not supplied by the Configuration Manager before a timeout occurred.

getKeywordValue

java.lang.String getKeywordValue(java.lang.String keyword)
                                 throws ConfigManagerProxyPropertyNotInitializedException
Returns the value of the supplied keyword. If the supplied keyword was not found during the deployment of this object, this method returns null.

See the top of this file for an overview of how to associate keywords with deployed objects.

Parameters:
keyword - The keyword to look up
Returns:
String value of the supplied keyword, or null if the keyword could not be found for the object.
Throws:
ConfigManagerProxyPropertyNotInitializedException - If information on the deployed object was not supplied by the Configuration Manager before a timeout occurred.