Obtention de l'interface SPI du contrôleur

L'interface SPI du modèle de configuration des connexions HTTP sortantes accorde l'accès en lecture à la configuration uniquement. Vous pouvez mettre à jour le modèle de configuration des connexions HTTP sortantes à l'aide de l'interface SPI du contrôleur.

Pourquoi et quand exécuter cette tâche

Voici un exemple de fragment de code :
import com.ibm.portal.outbound.config.*;
...
OutboundConnectionModel model; // refer to the previous example for information 
                               // about how to instantiate this model
... 

javax.naming.Context ctx = new javax.naming.InitialContext();
OutboundConnectionModelControllerHome chome = (OutboundConnectionModelControllerHome) 
    ctx.lookup("portal:service/model/OutboundConnectionModelController");
OutboundConnectionModelController ctrl = 
    home.getOutboundConnectionModelControllerProvider().getOutboundConnectionModelController(model);
Le code qui appelle l'interface SPI doit s'exécuter dans le contexte du serveur de portail. Notez que l'accès à l'interface SPI du contrôleur est possible uniquement pour les utilisateurs dotés de droits d'administration.
Recherche d'éléments de configuration : vous pouvez accéder à des éléments de configuration à l'aide d'interfaces Locator fournies par le modèle de connexion sortante. Les localisateurs suivants sont définis dans l'interface SPI du modèle : OutboundConnectionProfileLocator, PolicyMappingLocator, PolicyRuleLocator CookieRuleLocator et PolicyVariableLocator. L'exemple suivant montre comment localiser des élément de configuration à l'aide des différents localisateurs :
import com.ibm.portal.outbound.config.*;

OutboundConnectionModel model; // refer to previous examples, how to instantiate this model 
...

// Locate the global outbound HTTP connection profile:
OutboundConnectionProfile profile = model.getProfileLocator().findGlobalProfile();


// Locate the mapping that is assigned with the context path "/proxy":
PolicyMapping mapping = model.getPolicyMappingLocator(profile).findByContextPath("/proxy")


// Locate a policy rule that resides in the selected mapping and has a the following URL pattern: 
PolicyRule rule = model.getPolicyRuleLocator(mapping).findByUrlPattern("http://localhost:9092/*");


// Collect a list of cookie rules that reside in the selected policy rule and start with the 
// cookie name "myCookie". The items are collected in the list "filteredCookies":

List<CookieRule> filteredCookies = new ArrayList<CookieRule>();
model.getCookieRuleLocator(rule).collectAllMatching(
   new PatternMatcher<CookieRule>() {
	public int getMatchValue (CookieRule candidate) {
	   return (candidate.getCookieNames()[0].startsWith("myCookie")) ? 1 : 0;
	}
   },filteredCookies);

// Locate a policy variable by its name:
PolicyVariable pvar = model.getPolicyVariableLocator(globalProfile).findByName("the.policy.var");