// the Java interface may be replaced by a WSDL contract picked up from JAXWS annotation
// if so we need to fluff up a WSDL contract and set it to be the normalized contract
// for the Java interface so it's used during contract mapping
if (javaInterface != null && javaInterface.getJAXWSWSDLLocation() != null){
WSDLInterface wsdlInterface = wsdlFactory.createWSDLInterface();
wsdlInterface.setUnresolved(true);
wsdlInterface.setRemotable(true);
WSDLInterfaceContract wsdlInterfaceContract = wsdlFactory.createWSDLInterfaceContract();
wsdlInterfaceContract.setInterface(wsdlInterface);
wsdlInterfaceContract.setLocation(javaInterface.getJAXWSWSDLLocation());
javaInterfaceContract.setNormalizedWSDLContract(wsdlInterfaceContract);
ProcessorContext wsdlContext = new ProcessorContext(javaInterface.getContributionContainingClass(),
context.getMonitor());
extensionProcessor.resolve(wsdlInterfaceContract, resolver, wsdlContext);
// check that the Java and WSDL contracts are compatible
interfaceContractMapper.checkCompatibility(wsdlInterfaceContract,
javaInterfaceContract,
Compatibility.SUBSET,
false,
false);
// copy policy from the WSDL interface to the Java interface
javaInterface.getPolicySets().addAll(wsdlInterface.getPolicySets());
javaInterface.getRequiredIntents().addAll(wsdlInterface.getRequiredIntents());
// TODO - is there anything else to be copied from the user specified WSDL?
}