Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
  * Fabric3
  * Copyright (c) 2009 Metaform Systems
  *
  * Fabric3 is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as
  * published by the Free Software Foundation, either version 3 of
  * the License, or (at your option) any later version, with the
  * following exception:
 *
 * Linking this software statically or dynamically with other
 * modules is making a combined work based on this software.
 * Thus, the terms and conditions of the GNU General Public
 * License cover the whole combination.
 *
 * As a special exception, the copyright holders of this software
 * give you permission to link this software with independent
 * modules to produce an executable, regardless of the license
 * terms of these independent modules, and to copy and distribute
 * the resulting executable under terms of your choice, provided
 * that you also meet, for each linked independent module, the
 * terms and conditions of the license of that module. An
 * independent module is a module which is not derived from or
 * based on this software. If you modify this software, you may
 * extend this exception to your version of the software, but
 * you are not obligated to do so. If you do not wish to do so,
 * delete this exception statement from your version.
 *
 * Fabric3 is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the
 * GNU General Public License along with Fabric3.
 * If not, see <http://www.gnu.org/licenses/>.
 */
 package org.fabric3.policy.resolver;
 
 import java.util.Set;
 
Resolves interaction intents and policy sets. Resolution is performed for bindings, which aggregates intents and policy sets configured on a binding element and its ancestors (e.g. services, references, and components). Resolution is also performed for operations, which evaluates intents and policies sets explicitly configured at the operation-level.

Resolution is performed in two steps to distinguish the effective policy that applies to an entire endpoint and that which applies to an operation. This is necessary to account for protocols that require policy statements to be attached at specific points. For example, web services security, which mandates some policy assertions only be placed on a WSDL binding (endpoint).

Version:
$Rev: 7458 $ $Date: 2009-08-01 00:16:19 +0200 (Sat, 01 Aug 2009) $
 
 public interface InteractionPolicyResolver {

    
Returns the set of intents configured for the binding and its ancestors that are explictly provided by the binding extension through the mayProvide attribute.

Parameters:
binding the binding configuration
Returns:
the provided intents
Throws:
org.fabric3.spi.policy.PolicyResolutionException if there are any unidentified intents
 
Returns the set of intents configured for an operation that are explictly provided by the binding extension through the mayProvide attribute.

Parameters:
operation the operation
binding the binding
Returns:
the provided intents
Throws:
org.fabric3.spi.policy.PolicyResolutionException if there are any unidentified intents
 
Returns the set of policies explicitly declared for the binding and its ancestors, including those that satisfy the intents not provided by the binding type.

Parameters:
binding the binding for which policies are to be resolved
Returns:
the resolved policies
Throws:
org.fabric3.spi.policy.PolicyResolutionException if all intents cannot be resolved
 
Returns the set of policies explicitly declared for the operation and those that satisfy the intents not provided by the binding type.

Parameters:
operation the operation for which the intents are to be resolved
binding the binding
Returns:
the resolved policies
Throws:
org.fabric3.spi.policy.PolicyResolutionException if all intents cannot be resolved
 
New to GrepCode? Check out our FAQ X