return tModel;
}
public BindingTemplate createBPELBinding(QName serviceName, String portName, URL serviceUrl, Definition wsdlDefinition) {
BindingTemplate bindingTemplate = new BindingTemplate();
// Set BusinessService Key
bindingTemplate.setServiceKey(UDDIKeyConvention.getServiceKey(properties, serviceName.getLocalPart()));
// Set Binding Key
String bindingKey = UDDIKeyConvention.getBindingKey(properties, serviceName, portName, serviceUrl);
bindingTemplate.setBindingKey(bindingKey);
// Set AccessPoint
AccessPoint accessPoint = new AccessPoint();
accessPoint.setUseType(AccessPointType.END_POINT.toString());
accessPoint.setValue(urlLocalizer.rewrite(serviceUrl));
bindingTemplate.setAccessPoint(accessPoint);
Service service = wsdlDefinition.getService(serviceName);
if (service!=null) {
TModelInstanceDetails tModelInstanceDetails = new TModelInstanceDetails();
Port port = service.getPort(portName);
if (port!=null) {
Binding binding = port.getBinding();
// Set the Binding Description
String bindingDescription = properties.getProperty(Property.BINDING_DESCRIPTION, Property.DEFAULT_BINDING_DESCRIPTION);
// Override with the service description from the WSDL if present
Element docElement = binding.getDocumentationElement();
if (docElement!=null && docElement.getTextContent()!=null) {
bindingDescription = docElement.getTextContent();
}
Description description = new Description();
description.setLang(lang);
description.setValue(bindingDescription);
bindingTemplate.getDescription().add(description);
// reference wsdl:binding tModel
TModelInstanceInfo tModelInstanceInfoBinding = new TModelInstanceInfo();
tModelInstanceInfoBinding.setTModelKey(keyDomainURI + binding.getQName().getLocalPart());
InstanceDetails instanceDetails = new InstanceDetails();
instanceDetails.setInstanceParms(portName);
tModelInstanceInfoBinding.setInstanceDetails(instanceDetails);
Description descriptionB = new Description();
descriptionB.setLang(lang);
descriptionB.setValue("The wsdl:binding that this wsdl:port implements. " + bindingDescription +
" The instanceParms specifies the port local name.");
tModelInstanceInfoBinding.getDescription().add(descriptionB);
tModelInstanceDetails.getTModelInstanceInfo().add(tModelInstanceInfoBinding);
// reference wsdl:portType tModel
PortType portType = binding.getPortType();
TModelInstanceInfo tModelInstanceInfoPortType = new TModelInstanceInfo();
tModelInstanceInfoPortType.setTModelKey(keyDomainURI + portType.getQName().getLocalPart());
String portTypeDescription = "";
docElement = portType.getDocumentationElement();
if (docElement!=null && docElement.getTextContent()!=null) {
portTypeDescription = docElement.getTextContent();
}
Description descriptionPT = new Description();
descriptionPT.setLang(lang);
descriptionPT.setValue("The wsdl:portType that this wsdl:port implements." + portTypeDescription );
tModelInstanceInfoPortType.getDescription().add(descriptionPT);
tModelInstanceDetails.getTModelInstanceInfo().add(tModelInstanceInfoPortType);
//reference bpel:process tModel
TModelInstanceInfo tModelInstanceInfoBPEL = new TModelInstanceInfo();
tModelInstanceInfoBPEL.setTModelKey(keyDomainURI + service.getQName().getLocalPart() + "Process");
Description descriptionBPEL = new Description();
// Description
String serviceDescription = properties.getProperty(Property.SERVICE_DESCRIPTION, Property.DEFAULT_SERVICE_DESCRIPTION);
// Override with the service description from the WSDL if present
docElement = wsdlDefinition.getService(serviceName).getDocumentationElement();
if (docElement!=null && docElement.getTextContent()!=null) {
serviceDescription = docElement.getTextContent();
}
descriptionBPEL.setLang(lang);
descriptionBPEL.setValue("The bpel:process this wsdl:port supports." + serviceDescription);
tModelInstanceInfoBPEL.getDescription().add(descriptionBPEL);
tModelInstanceDetails.getTModelInstanceInfo().add(tModelInstanceInfoBPEL);
bindingTemplate.setTModelInstanceDetails(tModelInstanceDetails);
} else {
log.error("Could not find Port with portName: " + portName);
}
} else {
log.error("Could not find Service with serviceName: " + serviceName.getLocalPart());