ProtocolBridgePropertiesExit2.java interface

ProtocolBridgePropertiesExit2.java


/*
 *   Licensed Materials - Property of IBM
 *
 *   "Restricted Materials of IBM"
 *
 *   5724-H72
 * 
 *    Copyright IBM Corp. 2011, 2024. All Rights Reserved.
 * 
 *   US Government Users Restricted Rights - Use, duplication or
 *   disclosure restricted by GSA ADP Schedule Contract with
 *   IBM Corp.
 */
package com.ibm.wmqfte.exitroutine.api;

import java.util.Map;
import java.util.Properties;

/**
 * An interface that is implemented by classes that are to be invoked as part of
 * user exit routine processing. This interface defines methods that will be
 * invoked by a protocol bridge agent to look up properties for protocol servers
 * that are referenced in transfers.
 * <p>
 * There will be one instance of each implementation class for each protocol
 * bridge agent. The methods can be called from different threads so the methods
 * must be synchronised.
 */
public interface ProtocolBridgePropertiesExit2 {

	/**
	 * Invoked once when a protocol bridge agent is started. It is intended to
	 * initialize any resources that are required by the exit.
	 * 
	 * @param bridgeProperties
	 *            The values of properties defined for the protocol bridge.
	 *            These values can only be read, they cannot be updated by the
	 *            implementation.
	 * @return {@code true} if the initialization is successful and {@code
	 *         false} if unsuccessful. If {@code false} is returned from an exit
	 *         the protocol bridge agent will not start.
	 */
	public boolean initialize(final Map<String, String> bridgeProperties);

      	/**
	 * Invoked when the Protocol Bridge needs to access the protocol bridge credentials XML file.
	 * 
	 * @return a {@link String} object giving the location of the ProtocolBridgeCredentials.xml 
	 */
	public String getCredentialLocation ();

	/**
	 * Obtains a set of properties for the specified protocol server name.
	 * <p>
	 * The returned {@link Properties} must contain entries with key names
	 * corresponding to the constants defined in
	 * {@link ProtocolServerPropertyConstants} and in particular must include an
	 * entry for all appropriate constants described as required.
	 * 
	 * @param protocolServerName
	 *            The name of the protocol server whose properties are to be
	 *            returned. If a null or a blank value is specified, properties
	 *            for the default protocol server are to be returned.
	 * @return The {@link Properties} for the specified protocol server, or null
	 *         if the server cannot be found.
	 */
	public Properties getProtocolServerProperties(
			final String protocolServerName);

	/**
	 * Invoked once when a protocol bridge agent is shut down. It is intended to
	 * release any resources that were allocated by the exit.
	 * 
	 * @param bridgeProperties
	 *            The values of properties defined for the protocol bridge.
	 *            These values can only be read, they cannot be updated by the
	 *            implementation.
	 */
	public void shutdown(final Map<String, String> bridgeProperties);

}