com.ibm.broker.config.proxy

Class LibraryProxy

  • All Implemented Interfaces:
    DeployableObject, DeployedObject
    Direct Known Subclasses:
    SharedLibraryProxy, StaticLibraryProxy


    public abstract class LibraryProxy
    extends DeployedObjectGroupProxy
    implements DeployedObject

    As of Integration Bus V10, libraries have been renamed to static libraries. See StaticLibraryProxy or SharedLibraryProxy instead.

    Each static library deployed to an execution group or application, or shared library deployed to an execution group, can be represented by a LibraryProxy.

    In order to use LibraryProxy objects, applications must first obtain handles to them, by asking an execution group or an application for one or more specified static or shared libraries. Here is an example of how to do this:

         BrokerProxy b = BrokerProxy.getInstance(
             new IntegrationNodeConnectionParameters("localhost", 4414)); 
         ExecutionGroupProxy e = b.getExecutionGroupByName("default");
         LibraryProxy stlib = (LibraryProxy) e.getStaticLibraryByName("aStaticLibrary");
     
         BrokerProxy b = BrokerProxy.getInstance(
             new IntegrationNodeConnectionParameters("localhost", 4414)); 
         ExecutionGroupProxy e = b.getExecutionGroupByName("default");
         LibraryProxy shlib = (LibraryProxy) e.getSharedLibraryByName("aSharedLibrary");
     

    com.ibm.broker.config.proxy.LibraryProxy extends com.ibm.broker.config.proxy.DeployedObjectGroupProxy implements com.ibm.broker.config.proxy.DeployedObject

    Responsibilities Acts as a container of deployed message flows. Provides the ability to deploy information to the library represented by each instance.
    Internal Collaborators com.ibm.broker.config.proxy.MessageFlowProxy
    
     Change Activity:
     -------- ----------- -------------   ------------------------------------
     Reason:  Date:       Originator:     Comments:
     -------- ----------- -------------   ------------------------------------
     80006.1  2011-04-10  HDCAB           Initial creation
    
     
    • Method Detail

      • withUUID

        @Deprecated
        public static java.util.Properties withUUID(java.lang.String uuid)
        Deprecated. as of Integration Bus V10, libraries have been renamed to static libraries. Use StaticLibraryProxy.withUUID instead.
        Returns a new Properties object that has the UUID attribute set to the supplied String, and the type attribute to be the name of the subclass of AdministeredObject being used. This provides an easy way of supplying filters to the get*() calls.
      • withName

        @Deprecated
        public static java.util.Properties withName(java.lang.String name)
        Deprecated. as of Integration Bus V10, libraries have been renamed to static libraries. Use StaticLibraryProxy.withName instead.
        Returns a new Properties object that has the name attribute set to the supplied String, and the type attribute to be the name of the subclass of AdministeredObject being used. This provides an easy way of supplying filters to the get*() calls.
      • setRuntimeProperty

        public void setRuntimeProperty(java.lang.String objectAndPropertyName,
                                       java.lang.String propertyValue)
                                throws ConfigManagerProxyLoggedException,
                                       java.lang.IllegalArgumentException
        Asks the broker to configure an arbitrary library property. The set of properties configurable using this method are those available in the getRuntimePropertyNames() method.

        Constants exist for many common objectAndPropertyName values in the AttributeConstants interface, and you should use these wherever possible.

        The list of currently defined property names can be obtained using the method getRuntimePropertyNames(). However, not all runtime properties returned by this method can be set.

        Parameters:
        objectAndPropertyName - The complete object and property name of the property being manipulated
        propertyValue - The new value to associate with the property
        Throws:
        ConfigManagerProxyLoggedException - if the request could not be sent to the broker. If synchronous updates have been enabled using BrokerProxy.setSynchronous(), subclasses of this exception type will also be thrown if the request is rejected by the broker, or if the request is not processed before a timeout occurs.
        java.lang.IllegalArgumentException - if objectAndPropertyName is not of a valid syntax.
      • getRuntimePropertyNames

        public java.lang.String[] getRuntimePropertyNames()
        Returns a string array of all runtime configurable service properties associated with this object. Use getRuntimeProperty() to get the current value associated with a given property and setRuntimeProperty() to set it. Each String is of the form "ObjectName/PropertyName", where ObjectName and PropertyName are the object and property names supplied on the -o and -n parameters of mqsireportproperties. The '/' character that separates the two values is defined in AttributeConstants.OBJECT_NAME_DELIMITER.
        Returns:
        String[] containing configurable service property names that have been defined on the broker
      • getRuntimeProperty

        public java.lang.String getRuntimeProperty(java.lang.String objectAndPropertyName)
                                            throws ConfigManagerProxyPropertyNotInitializedException,
                                                   java.lang.IllegalArgumentException
        Returns the value of the runtime property with the supplied name. The set of properties discoverable in this way are those reported by the getRuntimePropertyNames() method.

        If you wish to directly look up a specific named property, use constants defined in the AttributeConstants interface wherever possible. If a constant does not exist, the objectAndpropertyName parameter can be made up of a String of the form "ObjectName/PropertyName", where ObjectName and PropertyName are the object and property names supplied on the -o and -n parameters respectively of mqsireportproperties. The '/' separator is defined as AttributeConstants.OBJECT_NAME_DELIMITER.

        Parameters:
        objectAndPropertyName - The name of the property to be reported
        Returns:
        String The value of the supplied property. A value of null means that the property does not exist or has not been set on the broker.
        Throws:
        ConfigManagerProxyPropertyNotInitializedException - if the value of the property could not be determined because the information was not supplied from the broker before a timeout occurred.
        java.lang.IllegalArgumentException - if objectAndPropertyName is not a valid syntax.
      • getDeployProperties

        public java.util.Properties getDeployProperties()
                                                 throws ConfigManagerProxyPropertyNotInitializedException
        Returns a list of the properties associated with the deployment of this library.

        This method will pause until the object has received at least one update from the broker. If an update is not received before the timeout specified in BrokerProxy.setRetryCharacteristics() is reached, AdministeredObject.hasBeenPopulatedByBroker() will return false and the returned Properties object will be null.

        Specified by:
        getDeployProperties in interface DeployedObject
        Returns:
        Properties where each key is a deploy related property with its associated value. Keywords are not returned as part of the returned properties. Returns null if no deploy related properties are found.
        Throws:
        ConfigManagerProxyPropertyNotInitializedException
      • getBARFileName

        public java.lang.String getBARFileName()
                                        throws ConfigManagerProxyPropertyNotInitializedException
        Returns the name of the BAR file that was used to deploy the application to the execution group. This method will return null if the BAR file was deployed by specifying an InputStream parameter to ExecutionGroupProxy.deploy() and a valid BAR file label was not supplied.
        Specified by:
        getBARFileName in interface DeployedObject
        Returns:
        String name of the BAR file that deployed the message flow
        Throws:
        ConfigManagerProxyPropertyNotInitializedException - if the value of the parameter could not be determined because the information was not supplied from the broker before a timeout occurred.
      • getDeployTime

        public java.util.Date getDeployTime()
        Returns the time that the current message flow was last deployed to the execution group.
        Specified by:
        getDeployTime in interface DeployedObject
        Returns:
        Date the time of the most recent deployment.
        See Also:
        DeployedObject.getDeployTime()
      • getModifyTime

        public java.util.Date getModifyTime()
        Returns the time that the current message flow was last modified, according to the file modification associated with the cmf file in the broker archive.
        Specified by:
        getModifyTime in interface DeployableObject
        Returns:
        Date the time of the last modification.
        See Also:
        DeployableObject.getModifyTime()
      • fullNameMatches

        public boolean fullNameMatches(java.lang.String fileName)
                                throws ConfigManagerProxyPropertyNotInitializedException
        Tests if the name of this deployed object matches the fileName passed in. This method returns true if the deployed object name matches either with the source extension or the compiled resource extension
        Specified by:
        fullNameMatches in interface DeployedObject
        Returns:
        boolean true if the fileName matches the deployed resource name
        Throws:
        ConfigManagerProxyPropertyNotInitializedException - if the parent object is not immediately available and has to be requested from the broker, but the request could not be sent to the broker.
      • deploy

        public DeployResult deploy(java.lang.String barFileName,
                                   boolean isIncremental,
                                   long timeToWaitMs)
                            throws ConfigManagerProxyLoggedException,
                                   java.io.IOException
        This method overrides the base class implementation, so that an exception is thrown if this method is invoked against this class. It is not possible to deploy to a library. All parameters are ignored.
        Overrides:
        deploy in class DeployedObjectGroupProxy
        Parameters:
        barFileName - Path and file name of the Bar file, relative to the current directory.
        isIncremental - If true, the contents of the Bar file will add or modify what has already been deployed on the execution group. If false, the contents of the execution group will be completely cleared before deployment (also known as a "complete" deploy).
        timeToWaitMs - A positive value describes the maximum length of time to wait for broker responses (in milliseconds) before returning the DeployResult. Alternatively:
        • A value of 0 causes the method to return immediately after the message has been successfully sent to the connected broker.
        • A value of AttributeConstants.DEPLOYRESULT_SUPPRESSION causes the method to return null immediately after the message has been successfully sent to the broker. DeployResult objects are relatively expensive to create and maintain, and so supplying this constant should be used if the DeployResult is not parsed, or if application performance is critical.
        • A value of AttributeConstants.DEPLOYRESULT_WAIT_INDEFINITELY causes the method to wait until responses have been received from the broker.
        • If batch mode is enabled the method returns immediately regardless of the value of this parameter. All completion codes in the returned DeployResult object will be 'pending' unless the value of timeToWaitMs is AttributeConstants.DEPLOYRESULT_SUPPRESSION, in which case the DeployResult will be null (as usual).
        • If the current IBM Integration API (CMP) application is deployed inside a JavaCompute or Java User Defined Node, and there is a possibility that the flow in which the IBM Integration API (CMP) application is deployed might be affected by the deployment, you must use a value of 0 or AttributeConstants.DEPLOYRESULT_SUPPRESSION.
        Returns:
        DeployResult object that can be used to query the results of the deployment.
        Throws:
        ConfigManagerProxyLoggedException - to indicate this method should not be called.
        java.io.FileNotFoundException - if the Bar file could not be found
        java.io.IOException - if the file could not be closed. In this case the deployment might have succeeded.
      • deploy

        public DeployResult deploy(java.io.InputStream barStream,
                                   java.lang.String barFileLabel,
                                   boolean isIncremental,
                                   long timeToWaitMs)
                            throws ConfigManagerProxyLoggedException
        This method overrides the base class implementation, so that an exception is thrown if this method is invoked against this class. It is not possible to deploy to a library. All parameters are ignored.
        Overrides:
        deploy in class DeployedObjectGroupProxy
        Parameters:
        barStream - InputStream containing the BAR file contents. The first byte read by the stream must be the first byte of the Bar file's contents.
        barFileLabel - the name of the Bar file being deployed. Every DeployedObject that results from this deployment will return this value (which may be null) from the getBARFileName() method.
        isIncremental - If true, the contents of the Bar file will add or modify what has already been deployed on the execution group. If false, the contents of the execution group will be completely cleared before deployment (also known as a "complete" deploy).
        timeToWaitMs - A positive value describes the maximum length of time to wait for broker responses (in milliseconds) before returning the DeployResult. Alternatively:
        • A value of 0 causes the method to return immediately after the message has been successfully sent to the connected broker.
        • A value of AttributeConstants.DEPLOYRESULT_SUPPRESSION causes the method to return null immediately after the message has been successfully sent to the connected broker. DeployResult objects are relatively expensive to create and maintain, and so supplying this constant should be used if the DeployResult is not parsed, or if application performance is critical.
        • A value of AttributeConstants.DEPLOYRESULT_WAIT_INDEFINITELY causes the method to wait until responses have been received from the broker.
        • If batch mode is enabled the method returns immediately regardless of the value of this parameter. All completion codes in the returned DeployResult object will be 'pending' unless the value of timeToWaitMs is AttributeConstants.DEPLOYRESULT_SUPPRESSION, in which case the DeployResult will be null (as usual).
        • If the current IBM Integration API (CMP) application is deployed inside a JavaCompute or Java User Defined Node, and there is a possibility that the flow in which the IBM Integration API (CMP) application is deployed might be affected by the deployment, you must use a value of 0 or AttributeConstants.DEPLOYRESULT_SUPPRESSION.
        Returns:
        DeployResult object that can be used to query the results of the deployment.
        Throws:
        ConfigManagerProxyLoggedException - to indicate this method should not be called.
      • deploy

        public void deploy(java.lang.String barFileName)
                    throws ConfigManagerProxyLoggedException,
                           java.io.IOException
        This method overrides the base class implementation, so that an exception is thrown if this method is invoked against this class. It is not possible to deploy to a library. All parameters are ignored.
        Overrides:
        deploy in class DeployedObjectGroupProxy
        Parameters:
        barFileName - Path and file name of the Bar file, relative to the current directory.
        Throws:
        ConfigManagerProxyLoggedException - to indicate this method should not be called.
        java.io.FileNotFoundException - if the Bar file could not be found
        java.io.IOException - if the file could not be closed. In this case the deployment might have succeeded.
      • deploy

        public void deploy(java.io.InputStream barStream)
                    throws ConfigManagerProxyLoggedException
        This method overrides the base class implementation, so that an exception is thrown if this method is invoked against this class. It is not possible to deploy to a library. All parameters are ignored.
        Overrides:
        deploy in class DeployedObjectGroupProxy
        Parameters:
        barStream - InputStream containing the Bar file contents. The first byte read by the stream must be the first byte of the Bar file's contents.
        Throws:
        ConfigManagerProxyLoggedException - to indicate this method should not be called.
      • deleteDeployedObjects

        public DeployResult deleteDeployedObjects(DeployedObject[] forDeletion,
                                                  long timeToWaitMs)
                                           throws ConfigManagerProxyLoggedException
        This method overrides the base class implementation, so that an exception is thrown if this method is invoked against this class. It is not possible to delete deployed objects from a library. All parameters are ignored.
        Overrides:
        deleteDeployedObjects in class DeployedObjectGroupProxy
        Parameters:
        forDeletion - representing the DeployedObject objects that require deletion (e.g. message flows, message sets). If the value is null or empty, this method does nothing. If an element in the array is null, the element is ignored.
        timeToWaitMs - A positive value describes the maximum length of time to wait for broker responses (in milliseconds) before returning the DeployResult. Alternatively:
        • A value of 0 causes the method to return immediately after the message has been successfully sent to the connected broker.
        • A value of AttributeConstants.DEPLOYRESULT_SUPPRESSION causes the method to return null immediately after the message has been successfully sent to the connected broker. DeployResult objects are relatively expensive to create and maintain, and so supplying this constant should be used if the DeployResult is not parsed, or if application performance is critical.
        • A value of AttributeConstants.DEPLOYRESULT_WAIT_INDEFINITELY causes the method to wait until the response has been received from the broker.
        • If batch mode is enabled the method returns immediately regardless of the value of this parameter. All completion codes in the returned DeployResult object will be 'pending' unless the value of timeToWaitMs is AttributeConstants.DEPLOYRESULT_SUPPRESSION, in which case the DeployResult will be null (as usual).
        • If the current IBM Integration API (CMP) application is deployed inside a JavaCompute or Java User Defined Node, and there is a possibility that the flow in which the IBM Integration API (CMP) application is deployed might be affected by the deletion, you must use a value of 0 or AttributeConstants.DEPLOYRESULT_SUPPRESSION.
        Throws:
        ConfigManagerProxyLoggedException - to indicate this method should not be called.
      • deleteDeployedObjectsByName

        public DeployResult deleteDeployedObjectsByName(java.lang.String[] forDeletion,
                                                        long timeToWaitMs)
                                                 throws ConfigManagerProxyLoggedException,
                                                        ConfigManagerProxyPropertyNotInitializedException
        This method overrides the base class implementation, so that an exception is thrown if this method is invoked against this class. It is not possible to delete deployed objects from a library. All parameters are ignored.
        Overrides:
        deleteDeployedObjectsByName in class DeployedObjectGroupProxy
        Parameters:
        forDeletion - An array of Strings, with each element being the name (e.g. "mf1") or fullname (e.g. "mf1.cmf") of an object that is to be removed from the execution group. If the array is null or empty, this method does nothing. If an element in the array is null, the element is ignored.
        timeToWaitMs - A positive value describes the maximum length of time to wait for broker responses (in milliseconds) before returning the DeployResult. Alternatively:
        • A value of 0 causes the method to return immediately after the message has been successfully sent to the connected broker.
        • A value of AttributeConstants.DEPLOYRESULT_SUPPRESSION causes the method to return null immediately after the message has been successfully sent to the broker. DeployResult objects are relatively expensive to create and maintain, and so supplying this constant should be used if the DeployResult is not parsed, or if application performance is critical.
        • A value of AttributeConstants.DEPLOYRESULT_WAIT_INDEFINITELY causes the method to wait until the response has been received from the broker affected by the deploy.
        • If batch mode is enabled the method returns immediately regardless of the value of this parameter. All completion codes in the returned DeployResult object will be 'pending' unless the value of timeToWaitMs is AttributeConstants.DEPLOYRESULT_SUPPRESSION, in which case the DeployResult will be null (as usual).
        • If the current IBM Integration API (CMP) application is deployed inside a JavaCompute or Java User Defined Node, and there is a possibility that the flow in which the IBM Integration API (CMP) application is deployed might be affected by the deletion, you must use a value of 0 or AttributeConstants.DEPLOYRESULT_SUPPRESSION.
        Throws:
        ConfigManagerProxyLoggedException - to indicate this method should not be called.
        ConfigManagerProxyPropertyNotInitializedException - if deployed object information could not be determined because the information was not supplied from the broker before a timeout occurred.