[savara-commits] savara SVN: r564 - in branches/experimental/2.0.x/bundles: org.savara.bpel.tests/src/test/java/org/savara/bpel/generator and 11 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun Jan 9 18:22:29 EST 2011


Author: objectiser
Date: 2011-01-09 18:22:28 -0500 (Sun, 09 Jan 2011)
New Revision: 564

Modified:
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Broker.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Buyer.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at CreditAgency.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierQuoteEngine.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierTxnProcessor.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Buyer.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at CreditAgency.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Store.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Buyer.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Seller.bpel
   branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/testmodels/ESBBroker.cdm
   branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/ChoiceModelChangeRule.java
   branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionModelChangeRule.java
   branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionPatterns.java
   branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/InteractionUtil.java
   branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/PropertyName.java
   branches/experimental/2.0.x/bundles/org.savara.contract/META-INF/MANIFEST.MF
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/ContractGenerator.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractGeneratorImpl.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractIntrospector.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Contract.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/FaultDetails.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Interface.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/OneWayRequestMEP.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/RequestResponseMEP.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Type.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/TypeDefinition.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/ContractGeneratorTest.java
   branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/impl/ContractIntrospectorTest.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/CDMProtocolParser.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ChoiceConverterRuleImpl.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConditionalConverterRuleImpl.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterContext.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterUtil.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/DefaultConverterContext.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/InteractionConverterRuleImpl.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolConverterRuleImpl.java
   branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolModelConverterRuleImpl.java
Log:
Update to use contract derived from protocol model.

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/ChoiceModelChangeRule.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/ChoiceModelChangeRule.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/ChoiceModelChangeRule.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -108,18 +108,18 @@
 		java.util.List<When> paths=elem.getWhens();
 		
 		Role role=null;
-		String roleNamespace=null;
+		//String roleNamespace=null;
 	
 		if (elem.enclosingProtocol() != null) {
 			role = elem.enclosingProtocol().getRole();
 		}
 
-		Contract contract=ModelChangeUtils.getContract(context,
-				elem.enclosingProtocol().getRole());
+		//Contract contract=ModelChangeUtils.getContract(context,
+		//		elem.enclosingProtocol().getRole());
 		
-		if (contract != null) {
-			roleNamespace = contract.getNamespace();
-		}
+		//if (contract != null) {
+		//	roleNamespace = contract.getNamespace();
+		//}
 	
 		// Check if the 'If' construct is to handle responses
 		// to a preceding request being sent
@@ -169,8 +169,8 @@
 						TSequence subseq=null;
 						
 						if (//act instanceof Interaction &&
-								InteractionPatterns.isFaultResponse(path)) {
-							String faultName=InteractionPatterns.getFaultName(path);
+								InteractionUtil.isFaultResponse(path)) {
+							String faultName=InteractionUtil.getFaultName(path);
 							
 							Contract fromContract = ModelChangeUtils.getContract(context,
 										(elem.getFromRole()==null?role:elem.getFromRole()));
@@ -221,9 +221,9 @@
 								if (InteractionUtil.isRequest(path)) {
 									qname = WSDLGeneratorUtil.getRequestMessageType(fromContract.getNamespace(),
 											path.getMessageSignature().getOperation());
-								} else if (InteractionPatterns.isFaultResponse(path)) {
+								} else if (InteractionUtil.isFaultResponse(path)) {
 									qname = WSDLGeneratorUtil.getFaultMessageType(fromContract.getNamespace(),
-											InteractionPatterns.getFaultName(path));
+											InteractionUtil.getFaultName(path));
 								} else {
 									qname = WSDLGeneratorUtil.getResponseMessageType(fromContract.getNamespace(),
 														path.getMessageSignature().getOperation());
@@ -303,6 +303,8 @@
 				// other direction
 				TPartnerLink prev=
 					PartnerLinkUtil.getPartnerLink(bpelModel, prevPLName);
+				
+				Contract contract=null;
 
 				if (InteractionUtil.isRequest(path) && prev == null) {
 					
@@ -312,23 +314,25 @@
 					
 					String plt=elem.getFromRole().getName()+"To"+role.getName()+"Service"+"LT";
 										
-					pl.setPartnerLinkType(new QName(roleNamespace, plt));
-
 					contract = ModelChangeUtils.getContract(context, role);
 					
-					if (contract != null && contract.getInterfaces().size() > 0) {
-						Interface intf = contract.getInterfaces().iterator().next();
+					if (contract != null) {
+						pl.setPartnerLinkType(new QName(contract.getNamespace(), plt)); //roleNamespace, plt));
 						
-						portType = intf.getName();
-						namespace = intf.getNamespace();
-						
-						/* TODO: namespace issue
-						String prefix = bpelModel.addNamespace(intf.getNamespace());
-						
-						if (prefix != null) {
-							portType = prefix+":"+portType;
+						if (contract.getInterfaces().size() > 0) {
+							Interface intf = contract.getInterfaces().iterator().next();
+							
+							portType = intf.getName();
+							namespace = intf.getNamespace();
+							
+							/* TODO: namespace issue
+							String prefix = bpelModel.addNamespace(intf.getNamespace());
+							
+							if (prefix != null) {
+								portType = prefix+":"+portType;
+							}
+							*/
 						}
-						*/
 					}
 				} else {
 					pl.setMyRole(role.getName()+"Requester");
@@ -337,25 +341,29 @@
 					
 					String plt=role.getName()+"To"+elem.getFromRole().getName()+"Requester"+"LT";
 					
-					pl.setPartnerLinkType(new QName(roleNamespace, plt));
 
 					//portType = role.getName()+
 					//		recv.getFromRole().getName()+"CallbackPT";				
 
-					Contract fromContract = ModelChangeUtils.getContract(context, elem.getFromRole());
-					if (fromContract != null && fromContract.getInterfaces().size() > 0) {
-						Interface intf = fromContract.getInterfaces().iterator().next();
-						
-						portType = intf.getName();
-						namespace = intf.getNamespace();
-						
-						/* TODO: Namespace issue
-						String prefix = bpelModel.addNamespace(intf.getNamespace());
-						
-						if (prefix != null) {
-							portType = prefix+":"+portType;
+					contract = ModelChangeUtils.getContract(context, elem.getFromRole());
+					
+					if (contract != null) {
+						pl.setPartnerLinkType(new QName(contract.getNamespace(), plt)); //roleNamespace, plt));
+
+						if (contract.getInterfaces().size() > 0) {
+							Interface intf = contract.getInterfaces().iterator().next();
+							
+							portType = intf.getName();
+							namespace = intf.getNamespace();
+							
+							/* TODO: Namespace issue
+							String prefix = bpelModel.addNamespace(intf.getNamespace());
+							
+							if (prefix != null) {
+								portType = prefix+":"+portType;
+							}
+							*/
 						}
-						*/
 					}
 				}
 				
@@ -363,9 +371,9 @@
 				if (InteractionUtil.isRequest(path)) {
 					qname = WSDLGeneratorUtil.getRequestMessageType(contract.getNamespace(),
 							path.getMessageSignature().getOperation());
-				} else if (InteractionPatterns.isFaultResponse(path)) {
+				} else if (InteractionUtil.isFaultResponse(path)) {
 					qname = WSDLGeneratorUtil.getFaultMessageType(contract.getNamespace(),
-							InteractionPatterns.getFaultName(path));
+							InteractionUtil.getFaultName(path));
 				} else {
 					qname = WSDLGeneratorUtil.getResponseMessageType(contract.getNamespace(),
 							path.getMessageSignature().getOperation());
@@ -428,15 +436,26 @@
 				
 				TSequence seq=new TSequence();
 				
+				Contract contract=null;
+				
+				if ((InteractionUtil.isRequest(path) && !InteractionUtil.isSend(path)) ||
+						(InteractionUtil.isResponse(path) && InteractionUtil.isSend(path))) {
+					contract = ModelChangeUtils.getContract(context, role);
+				} else if (InteractionUtil.isRequest(path)) {
+					contract = ModelChangeUtils.getContract(context, elem.getToRole());
+				} else {
+					contract = ModelChangeUtils.getContract(context, elem.getFromRole());
+				}
+				
 				// Handle when message signature
 				if (InteractionUtil.isResponse(path)) {
 					QName qname=null;
 					if (InteractionUtil.isRequest(path)) {
 						qname = WSDLGeneratorUtil.getRequestMessageType(contract.getNamespace(),
 								path.getMessageSignature().getOperation());
-					} else if (InteractionPatterns.isFaultResponse(path)) {
+					} else if (InteractionUtil.isFaultResponse(path)) {
 						qname = WSDLGeneratorUtil.getFaultMessageType(contract.getNamespace(),
-								InteractionPatterns.getFaultName(path));
+								InteractionUtil.getFaultName(path));
 					} else {
 						qname = WSDLGeneratorUtil.getResponseMessageType(contract.getNamespace(),
 								path.getMessageSignature().getOperation());
@@ -466,12 +485,12 @@
 					
 					String plt=elem.getToRole().getName()+"To"+role.getName()+"Service"+"LT";
 					
-					pl.setPartnerLinkType(new QName(roleNamespace, plt));
+					pl.setPartnerLinkType(new QName(contract.getNamespace(), plt)); //roleNamespace, plt));
 	
 					//portType = role.getName()+"PT";
 					
-					if (InteractionPatterns.isFaultResponse(path)) {
-						String faultName=InteractionPatterns.getFaultName(path);
+					if (InteractionUtil.isFaultResponse(path)) {
+						String faultName=InteractionUtil.getFaultName(path);
 						
 						// TODO: Not sure what to do about namespace here?
 						reply.setFaultName(new QName(contract.getNamespace(), faultName));
@@ -515,9 +534,9 @@
 					if (InteractionUtil.isRequest(path)) {
 						qname = WSDLGeneratorUtil.getRequestMessageType(contract.getNamespace(),
 								path.getMessageSignature().getOperation());
-					} else if (InteractionPatterns.isFaultResponse(path)) {
+					} else if (InteractionUtil.isFaultResponse(path)) {
 						qname = WSDLGeneratorUtil.getFaultMessageType(contract.getNamespace(),
-								InteractionPatterns.getFaultName(path));
+								InteractionUtil.getFaultName(path));
 					} else {
 						qname = WSDLGeneratorUtil.getResponseMessageType(contract.getNamespace(),
 								path.getMessageSignature().getOperation());
@@ -547,7 +566,7 @@
 					
 					String plt=role.getName()+"To"+elem.getToRole().getName()+"LT";
 					
-					pl.setPartnerLinkType(new QName(roleNamespace, plt));
+					pl.setPartnerLinkType(new QName(contract.getNamespace(), plt)); //roleNamespace, plt));
 
 					//portType = interaction.getToRole().getName()+"PT";
 					

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionModelChangeRule.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionModelChangeRule.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionModelChangeRule.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -122,17 +122,29 @@
 		
 		//String mainPrefix=null;
 		
-		Contract contract=ModelChangeUtils.getContract(context,
-						interaction.enclosingProtocol().getRole());
+		//Contract contract=ModelChangeUtils.getContract(context,
+		//				interaction.enclosingProtocol().getRole());
 		
+		Contract contract=null;
+		
+		if ((InteractionUtil.isRequest(interaction) && !InteractionUtil.isSend(interaction)) ||
+				(InteractionUtil.isResponse(interaction) && InteractionUtil.isSend(interaction))) {
+			contract = ModelChangeUtils.getContract(context, role);
+		} else if (InteractionUtil.isRequest(interaction)) {
+			contract = ModelChangeUtils.getContract(context, interaction.getToRoles().get(0));
+		} else {
+			contract = ModelChangeUtils.getContract(context, interaction.getFromRole());
+		}
+		
 		/* TODO: Namespace issue
 		if (contract != null) {
 			mainPrefix = bpelModel.getBPELProcess().addNamespace(contract.getNamespace());
 		}
 		*/
 		
-		if (contract != null) {
-			roleNamespace = contract.getNamespace();
+		Contract roleContract=ModelChangeUtils.getContract(context, role);
+		if (roleContract != null) {
+			roleNamespace = roleContract.getNamespace();
 		}
 		
 		Role roleType=null;
@@ -153,7 +165,7 @@
 		}
 		
 		if (roleType != null) {
-			contract = ModelChangeUtils.getContract(context, roleType);
+			//contract = ModelChangeUtils.getContract(context, roleType);
 
 			if (contract != null) {			
 				if (interaction.getProperties().containsKey(INTERFACE_NAME)) {
@@ -189,9 +201,9 @@
 			if (InteractionUtil.isRequest(interaction)) {
 				qname = WSDLGeneratorUtil.getRequestMessageType(contract.getNamespace(),
 									interaction.getMessageSignature().getOperation());
-			} else if (InteractionPatterns.isFaultResponse(interaction)) {
+			} else if (InteractionUtil.isFaultResponse(interaction)) {
 				qname = WSDLGeneratorUtil.getFaultMessageType(contract.getNamespace(),
-						InteractionPatterns.getFaultName(interaction));
+						InteractionUtil.getFaultName(interaction));
 			} else {
 				qname = WSDLGeneratorUtil.getResponseMessageType(contract.getNamespace(),
 									interaction.getMessageSignature().getOperation());
@@ -282,8 +294,8 @@
 
 				//portType = role.getName()+"PT";
 				
-				if (InteractionPatterns.isFaultResponse(interaction)) {
-					String faultName=InteractionPatterns.getFaultName(interaction);
+				if (InteractionUtil.isFaultResponse(interaction)) {
+					String faultName=InteractionUtil.getFaultName(interaction);
 					
 					// Find namespace prefix
 					//if (intf != null) {

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionPatterns.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionPatterns.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/InteractionPatterns.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -328,40 +328,6 @@
 		return(getRequestForResponseInFaultHandler(interaction) != null);
 	}
 	
-	public static boolean isFaultResponse(Interaction interaction) {
-		boolean ret=false;
-		
-		if (InteractionUtil.isRequest(interaction) == false &&
-				interaction.getMessageSignature().getProperties().
-						keySet().contains(PropertyName.FAULT_NAME)) {
-			ret = true;
-		}
-
-		return(ret);
-	}
-	
-	public static boolean isFaultResponse(When interaction) {
-		boolean ret=false;
-		
-		if (InteractionUtil.isRequest(interaction) == false &&
-				interaction.getMessageSignature().getProperties().
-						keySet().contains(PropertyName.FAULT_NAME)) {
-			ret = true;
-		}
-
-		return(ret);
-	}
-	
-	public static String getFaultName(Interaction interaction) {
-		return((String)interaction.
-			getMessageSignature().getProperties().get(PropertyName.FAULT_NAME));
-	}
-	
-	public static String getFaultName(When interaction) {
-		return((String)interaction.
-			getMessageSignature().getProperties().get(PropertyName.FAULT_NAME));
-	}
-	
 	/*
 	public static String getMessageTypeLocalPart(Interaction interaction) {
 		return((String)interaction.

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -26,7 +26,9 @@
 import org.savara.bpel.util.BPELModelUtil;
 import org.savara.common.model.generator.ModelGenerator;
 import org.savara.common.model.util.PropertyName;
+import org.savara.common.util.ScribbleServices;
 import org.scribble.common.logging.CachedJournal;
+import org.scribble.protocol.model.Role;
 import org.savara.pi4soa.cdm.parser.CDMProtocolParser;
 
 public class GeneratorTest {
@@ -34,7 +36,7 @@
     public static Test suite() {
         TestSuite suite = new TestSuite("Choreography->BPEL Generator Tests");
 
-        suite.addTest(new ChoreographyToBPELTester("ESBBroker", "Buyer"));        
+        suite.addTest(new ChoreographyToBPELTester("ESBBroker", "Buyer"));     
         suite.addTest(new ChoreographyToBPELTester("ESBBroker", "SupplierTxnProcessor"));
         suite.addTest(new ChoreographyToBPELTester("ESBBroker", "CreditAgency"));
         suite.addTest(new ChoreographyToBPELTester("ESBBroker", "Broker"));
@@ -46,7 +48,7 @@
         
         suite.addTest(new ChoreographyToBPELTester("ReqRespFault", "Buyer"));
         suite.addTest(new ChoreographyToBPELTester("ReqRespFault", "Seller"));
-        
+
         return suite;
     }
     
@@ -89,6 +91,11 @@
     	 * @param result The test result
     	 */
     	public void run(TestResult result) {
+    		// Setup scribble services
+    		ScribbleServices.setProtocolProjector(
+    				new org.scribble.protocol.projection.impl.ProtocolProjectorImpl());
+    		
+    		// Run test
     		result.startTest(this);
     		
     		String filename="generator/testmodels/"+m_name+".cdm";
@@ -159,6 +166,8 @@
     					}
     					 */
     					
+    					java.util.List<Role> projectedRoles=projected.getRoles();
+    					
     					ModelGenerator generator=new ProtocolToBPELModelGenerator();
     				
      					//defn = projected.getProtocol();

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Broker.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Broker.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Broker.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -2,7 +2,7 @@
 <process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" targetNamespace="http://www.pi4soa.org/ESBBroker/Broker" name="ESBBrokerProcess_Broker">
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Broker.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_CreditAgency.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Supplier.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_SupplierTxnProcessor.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_BrokerArtifacts.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
     <partnerLinks>
         <partnerLink myRole="Broker" partnerLinkType="brk:BuyerToBrokerServiceLT" name="BuyerToBroker"/>
@@ -25,37 +25,37 @@
         <variable messageType="brk:cancelRequest" name="cancelRequestVar"/>
     </variables>
     <sequence>
-        <receive createInstance="yes" variable="makeEnquiryRequestVar" operation="makeEnquiry" portType="brk:BrokerBehavior" partnerLink="BuyerToBroker" name="Receive_enquiry"/>
+        <receive createInstance="yes" variable="makeEnquiryRequestVar" operation="makeEnquiry" portType="brk:Broker" partnerLink="BuyerToBroker" name="Receive_enquiry"/>
         <while>
             <sequence>
                 <scope>
                     <sequence>
-                        <invoke outputVariable="getQuoteResponseVar" inputVariable="getQuoteRequestVar" operation="getQuote" portType="spr:SupplierBehavior" partnerLink="BrokerToSupplierQuoteEngine" name="Send_requestForQuote"/>
+                        <invoke outputVariable="getQuoteResponseVar" inputVariable="getQuoteRequestVar" operation="getQuote" portType="spr:SupplierQuoteEngine" partnerLink="BrokerToSupplierQuoteEngine" name="Send_requestForQuote"/>
                     </sequence>
                 </scope>
             </sequence>
         </while>
-        <reply variable="makeEnquiryResponseVar" operation="makeEnquiry" portType="brk:BrokerBehavior" partnerLink="BuyerToBroker" name="Send_quoteList"/>
+        <reply variable="makeEnquiryResponseVar" operation="makeEnquiry" portType="brk:Broker" partnerLink="BuyerToBroker" name="Send_quoteList"/>
         <pick>
-            <onMessage variable="buyRequestVar" operation="buy" portType="brk:BrokerBehavior" partnerLink="BuyerToBroker">
+            <onMessage variable="buyRequestVar" operation="buy" portType="brk:Broker" partnerLink="BuyerToBroker">
                 <sequence>
                     <scope>
                         <faultHandlers>
                             <catch faultMessageType="cay:invalidCreditFault" faultVariable="invalidCreditFaultVar" faultName="cay:invalidCredit">
 <sequence>
-    <reply faultName="brk:rejected" variable="rejectedFaultVar" operation="buy" portType="brk:BrokerBehavior" partnerLink="BuyerToBroker" name="Send_orderRejected"/>
+    <reply faultName="brk:rejected" variable="rejectedFaultVar" operation="buy" portType="brk:Broker" partnerLink="BuyerToBroker" name="Send_orderRejected"/>
 </sequence>
                             </catch>
                         </faultHandlers>
                         <sequence>
-                            <invoke outputVariable="checkCreditResponseVar" inputVariable="checkCreditRequestVar" operation="checkCredit" portType="cay:CreditAgencyBehavior" partnerLink="BrokerToCreditAgency" name="Send_CreditCheckRequest"/>
-                            <invoke outputVariable="confirmResponseVar" inputVariable="confirmRequestVar" operation="confirm" portType="spr:SupplierBehavior" partnerLink="BrokerToSupplierTxnProcessor" name="Send_orderConfirmed"/>
-                            <reply variable="buyResponseVar" operation="buy" portType="brk:BrokerBehavior" partnerLink="BuyerToBroker" name="Send_bookingReference"/>
+                            <invoke outputVariable="checkCreditResponseVar" inputVariable="checkCreditRequestVar" operation="checkCredit" portType="cay:CreditAgency" partnerLink="BrokerToCreditAgency" name="Send_CreditCheckRequest"/>
+                            <invoke outputVariable="confirmResponseVar" inputVariable="confirmRequestVar" operation="confirm" portType="spr:SupplierTxnProcessor" partnerLink="BrokerToSupplierTxnProcessor" name="Send_orderConfirmed"/>
+                            <reply variable="buyResponseVar" operation="buy" portType="brk:Broker" partnerLink="BuyerToBroker" name="Send_bookingReference"/>
                         </sequence>
                     </scope>
                 </sequence>
             </onMessage>
-            <onMessage variable="cancelRequestVar" operation="cancel" portType="brk:BrokerBehavior" partnerLink="BuyerToBroker">
+            <onMessage variable="cancelRequestVar" operation="cancel" portType="brk:Broker" partnerLink="BuyerToBroker">
                 <sequence/>
             </onMessage>
         </pick>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Buyer.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Buyer.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at Buyer.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -2,7 +2,7 @@
 <process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" targetNamespace="http://www.pi4soa.org/ESBBroker/Buyer" name="ESBBrokerProcess_Buyer">
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Broker.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_CreditAgency.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Supplier.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_SupplierTxnProcessor.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_BuyerArtifacts.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Buyer"/>
     <partnerLinks>
         <partnerLink partnerRole="BrokerRequester" partnerLinkType="byr:BuyerToBrokerLT" name="BuyerToBroker"/>
@@ -10,12 +10,12 @@
     <variables>
         <variable messageType="brk:makeEnquiryRequest" name="makeEnquiryRequestVar"/>
         <variable messageType="brk:makeEnquiryResponse" name="makeEnquiryResponseVar"/>
-        <variable messageType="byr:buyRequest" name="buyRequestVar"/>
+        <variable messageType="brk:buyRequest" name="buyRequestVar"/>
         <variable messageType="brk:buyResponse" name="buyResponseVar"/>
-        <variable messageType="byr:cancelRequest" name="cancelRequestVar"/>
+        <variable messageType="brk:cancelRequest" name="cancelRequestVar"/>
     </variables>
     <sequence>
-        <invoke outputVariable="makeEnquiryResponseVar" inputVariable="makeEnquiryRequestVar" operation="makeEnquiry" portType="brk:BrokerBehavior" partnerLink="BuyerToBroker" name="Send_enquiry"/>
+        <invoke outputVariable="makeEnquiryResponseVar" inputVariable="makeEnquiryRequestVar" operation="makeEnquiry" portType="brk:Broker" partnerLink="BuyerToBroker" name="Send_enquiry"/>
         <if>
             <sequence>
                 <scope>
@@ -25,13 +25,13 @@
                         </catch>
                     </faultHandlers>
                     <sequence>
-                        <invoke outputVariable="buyResponseVar" inputVariable="buyRequestVar" operation="buy" portType="byr:BuyerBehavior" partnerLink="BuyerToBroker" name="Send_buy"/>
+                        <invoke outputVariable="buyResponseVar" inputVariable="buyRequestVar" operation="buy" portType="brk:Broker" partnerLink="BuyerToBroker" name="Send_buy"/>
                     </sequence>
                 </scope>
             </sequence>
             <else>
                 <sequence>
-                    <invoke inputVariable="cancelRequestVar" operation="cancel" portType="byr:BuyerBehavior" partnerLink="BuyerToBroker" name="Send_cancel"/>
+                    <invoke inputVariable="cancelRequestVar" operation="cancel" portType="brk:Broker" partnerLink="BuyerToBroker" name="Send_cancel"/>
                 </sequence>
             </else>
         </if>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at CreditAgency.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at CreditAgency.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at CreditAgency.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -2,7 +2,6 @@
 <process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" targetNamespace="http://www.pi4soa.org/ESBBroker/CreditAgency" name="ESBBrokerProcess_CreditAgency">
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_CreditAgency.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Broker.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Supplier.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_SupplierTxnProcessor.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
     <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_CreditAgencyArtifacts.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
     <partnerLinks>
@@ -14,14 +13,14 @@
         <variable messageType="cay:invalidCreditFault" name="invalidCreditFaultVar"/>
     </variables>
     <sequence>
-        <receive createInstance="yes" variable="checkCreditRequestVar" operation="checkCredit" portType="cay:CreditAgencyBehavior" partnerLink="BrokerToCreditAgency" name="Receive_CreditCheckRequest"/>
+        <receive createInstance="yes" variable="checkCreditRequestVar" operation="checkCredit" portType="cay:CreditAgency" partnerLink="BrokerToCreditAgency" name="Receive_CreditCheckRequest"/>
         <if>
             <sequence>
-                <reply variable="checkCreditResponseVar" operation="checkCredit" portType="cay:CreditAgencyBehavior" partnerLink="BrokerToCreditAgency" name="Send_CreditCheckOk"/>
+                <reply variable="checkCreditResponseVar" operation="checkCredit" portType="cay:CreditAgency" partnerLink="BrokerToCreditAgency" name="Send_CreditCheckOk"/>
             </sequence>
             <else>
                 <sequence>
-                    <reply faultName="cay:invalidCredit" variable="invalidCreditFaultVar" operation="checkCredit" portType="cay:CreditAgencyBehavior" partnerLink="BrokerToCreditAgency" name="Send_CreditCheckInvalid"/>
+                    <reply faultName="cay:invalidCredit" variable="invalidCreditFaultVar" operation="checkCredit" portType="cay:CreditAgency" partnerLink="BrokerToCreditAgency" name="Send_CreditCheckInvalid"/>
                 </sequence>
             </else>
         </if>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierQuoteEngine.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierQuoteEngine.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierQuoteEngine.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -10,7 +10,7 @@
         <variable messageType="spr:getQuoteResponse" name="getQuoteResponseVar"/>
     </variables>
     <sequence>
-        <receive createInstance="yes" variable="getQuoteRequestVar" operation="getQuote" portType="spr:SupplierBehavior" partnerLink="BrokerToSupplierQuoteEngine" name="Receive_requestForQuote"/>
-        <reply variable="getQuoteResponseVar" operation="getQuote" portType="spr:SupplierBehavior" partnerLink="BrokerToSupplierQuoteEngine" name="Send_quote"/>
+        <receive createInstance="yes" variable="getQuoteRequestVar" operation="getQuote" portType="spr:SupplierQuoteEngine" partnerLink="BrokerToSupplierQuoteEngine" name="Receive_requestForQuote"/>
+        <reply variable="getQuoteResponseVar" operation="getQuote" portType="spr:SupplierQuoteEngine" partnerLink="BrokerToSupplierQuoteEngine" name="Send_quote"/>
     </sequence>
 </process>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierTxnProcessor.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierTxnProcessor.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ESBBroker at SupplierTxnProcessor.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" targetNamespace="http://www.pi4soa.org/ESBBroker/Supplier" name="CompleteTransaction_SupplierTxnProcessor">
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="CompleteTransaction_SupplierTxnProcessor.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
-    <import importType="http://schemas.xmlsoap.org/wsdl/" location="CompleteTransaction_SupplierTxnProcessorArtifacts.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
+<process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:spr="http://www.pi4soa.org/ESBBroker/Supplier" xmlns:tns="http://www.pi4soa.org/ESBBroker" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cay="http://www.pi4soa.org/ESBBroker/CreditAgency" xmlns:byr="http://www.pi4soa.org/ESBBroker/Buyer" xmlns:brk="http://www.pi4soa.org/ESBBroker/Broker" targetNamespace="http://www.pi4soa.org/ESBBroker/Supplier" name="ESBBrokerProcess_SupplierTxnProcessor">
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_SupplierTxnProcessor.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_Broker.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Broker"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_CreditAgency.wsdl" namespace="http://www.pi4soa.org/ESBBroker/CreditAgency"/>
+    <import importType="http://schemas.xmlsoap.org/wsdl/" location="ESBBrokerProcess_SupplierTxnProcessorArtifacts.wsdl" namespace="http://www.pi4soa.org/ESBBroker/Supplier"/>
     <partnerLinks>
         <partnerLink myRole="SupplierTxnProcessor" partnerLinkType="spr:BrokerToSupplierTxnProcessorServiceLT" name="BrokerToSupplierTxnProcessor"/>
     </partnerLinks>
@@ -10,7 +12,7 @@
         <variable messageType="spr:confirmResponse" name="confirmResponseVar"/>
     </variables>
     <sequence>
-        <receive createInstance="yes" variable="confirmRequestVar" operation="confirm" portType="spr:SupplierBehavior" partnerLink="BrokerToSupplierTxnProcessor" name="Receive_orderConfirmed"/>
-        <reply variable="confirmResponseVar" operation="confirm" portType="spr:SupplierBehavior" partnerLink="BrokerToSupplierTxnProcessor" name="Send_bookingReference"/>
+        <receive createInstance="yes" variable="confirmRequestVar" operation="confirm" portType="spr:SupplierTxnProcessor" partnerLink="BrokerToSupplierTxnProcessor" name="Receive_orderConfirmed"/>
+        <reply variable="confirmResponseVar" operation="confirm" portType="spr:SupplierTxnProcessor" partnerLink="BrokerToSupplierTxnProcessor" name="Send_bookingReference"/>
     </sequence>
 </process>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Buyer.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Buyer.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Buyer.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -18,7 +18,7 @@
                 </catch>
             </faultHandlers>
             <sequence>
-                <invoke outputVariable="buyResponseVar" inputVariable="buyRequestVar" operation="buy" portType="sto:StoreInterface" partnerLink="BuyerToStore" name="Send_BuyRequest"/>
+                <invoke outputVariable="buyResponseVar" inputVariable="buyRequestVar" operation="buy" portType="sto:Store" partnerLink="BuyerToStore" name="Send_BuyRequest"/>
             </sequence>
         </scope>
     </sequence>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at CreditAgency.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at CreditAgency.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at CreditAgency.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -12,14 +12,14 @@
         <variable messageType="pur:CreditCheckFailedFault" name="CreditCheckFailedFaultVar"/>
     </variables>
     <sequence>
-        <receive createInstance="yes" variable="checkCreditRequestVar" operation="checkCredit" portType="pur:CreditAgencyInterface" partnerLink="StoreToCreditAgency" name="Receive_CreditCheckRequest"/>
+        <receive createInstance="yes" variable="checkCreditRequestVar" operation="checkCredit" portType="pur:CreditAgency" partnerLink="StoreToCreditAgency" name="Receive_CreditCheckRequest"/>
         <if>
             <sequence>
-                <reply variable="checkCreditResponseVar" operation="checkCredit" portType="pur:CreditAgencyInterface" partnerLink="StoreToCreditAgency" name="Send_CreditCheckOk"/>
+                <reply variable="checkCreditResponseVar" operation="checkCredit" portType="pur:CreditAgency" partnerLink="StoreToCreditAgency" name="Send_CreditCheckOk"/>
             </sequence>
             <else>
                 <sequence>
-                    <reply faultName="pur:CreditCheckFailed" variable="CreditCheckFailedFaultVar" operation="checkCredit" portType="pur:CreditAgencyInterface" partnerLink="StoreToCreditAgency" name="Send_CreditCheckInvalid"/>
+                    <reply faultName="pur:CreditCheckFailed" variable="CreditCheckFailedFaultVar" operation="checkCredit" portType="pur:CreditAgency" partnerLink="StoreToCreditAgency" name="Send_CreditCheckInvalid"/>
                 </sequence>
             </else>
         </if>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Store.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Store.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/PurchaseGoods at Store.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -15,18 +15,18 @@
         <variable messageType="sto:BuyFailedFault" name="BuyFailedFaultVar"/>
     </variables>
     <sequence>
-        <receive createInstance="yes" variable="buyRequestVar" operation="buy" portType="sto:StoreInterface" partnerLink="BuyerToStore" name="Receive_BuyRequest"/>
+        <receive createInstance="yes" variable="buyRequestVar" operation="buy" portType="sto:Store" partnerLink="BuyerToStore" name="Receive_BuyRequest"/>
         <scope>
             <faultHandlers>
                 <catch faultMessageType="pur:CreditCheckFailedFault" faultVariable="CreditCheckFailedFaultVar" faultName="pur:CreditCheckFailed">
                     <sequence>
-                        <reply faultName="sto:BuyFailed" variable="BuyFailedFaultVar" operation="buy" portType="sto:StoreInterface" partnerLink="BuyerToStore" name="Send_BuyFailed"/>
+                        <reply faultName="sto:BuyFailed" variable="BuyFailedFaultVar" operation="buy" portType="sto:Store" partnerLink="BuyerToStore" name="Send_BuyFailed"/>
                     </sequence>
                 </catch>
             </faultHandlers>
             <sequence>
-                <invoke outputVariable="checkCreditResponseVar" inputVariable="checkCreditRequestVar" operation="checkCredit" portType="pur:CreditAgencyInterface" partnerLink="StoreToCreditAgency" name="Send_CreditCheckRequest"/>
-                <reply variable="buyResponseVar" operation="buy" portType="sto:StoreInterface" partnerLink="BuyerToStore" name="Send_BuyConfirmed"/>
+                <invoke outputVariable="checkCreditResponseVar" inputVariable="checkCreditRequestVar" operation="checkCredit" portType="pur:CreditAgency" partnerLink="StoreToCreditAgency" name="Send_CreditCheckRequest"/>
+                <reply variable="buyResponseVar" operation="buy" portType="sto:Store" partnerLink="BuyerToStore" name="Send_BuyConfirmed"/>
             </sequence>
         </scope>
     </sequence>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Buyer.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Buyer.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Buyer.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -17,7 +17,7 @@
                 </catch>
             </faultHandlers>
             <sequence>
-                <invoke outputVariable="checkCreditResponseVar" inputVariable="checkCreditRequestVar" operation="checkCredit" portType="slr:SellerBehavior" partnerLink="BuyerToSeller" name="Send_CreditCheckRequest"/>
+                <invoke outputVariable="checkCreditResponseVar" inputVariable="checkCreditRequestVar" operation="checkCredit" portType="slr:Seller" partnerLink="BuyerToSeller" name="Send_CreditCheckRequest"/>
             </sequence>
         </scope>
     </sequence>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Seller.bpel
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Seller.bpel	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/results/ReqRespFault at Seller.bpel	2011-01-09 23:22:28 UTC (rev 564)
@@ -11,14 +11,14 @@
         <variable messageType="slr:insufficientCreditFault" name="insufficientCreditFaultVar"/>
     </variables>
     <sequence>
-        <receive createInstance="yes" variable="checkCreditRequestVar" operation="checkCredit" portType="slr:SellerBehavior" partnerLink="BuyerToSeller" name="Receive_CreditCheckRequest"/>
+        <receive createInstance="yes" variable="checkCreditRequestVar" operation="checkCredit" portType="slr:Seller" partnerLink="BuyerToSeller" name="Receive_CreditCheckRequest"/>
         <if>
             <sequence>
-                <reply variable="checkCreditResponseVar" operation="checkCredit" portType="slr:SellerBehavior" partnerLink="BuyerToSeller" name="Send_CreditCheckOk"/>
+                <reply variable="checkCreditResponseVar" operation="checkCredit" portType="slr:Seller" partnerLink="BuyerToSeller" name="Send_CreditCheckOk"/>
             </sequence>
             <else>
                 <sequence>
-                    <reply faultName="slr:insufficientCredit" variable="insufficientCreditFaultVar" operation="checkCredit" portType="slr:SellerBehavior" partnerLink="BuyerToSeller" name="Send_CreditCheckInvalid"/>
+                    <reply faultName="slr:insufficientCredit" variable="insufficientCreditFaultVar" operation="checkCredit" portType="slr:Seller" partnerLink="BuyerToSeller" name="Send_CreditCheckInvalid"/>
                 </sequence>
             </else>
         </if>

Modified: branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/testmodels/ESBBroker.cdm
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/testmodels/ESBBroker.cdm	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/resources/generator/testmodels/ESBBroker.cdm	2011-01-09 23:22:28 UTC (rev 564)
@@ -54,7 +54,7 @@
   </typeDefinitions>
   <choreographies description="Choreography flow for the ESBBroker process" name="ESBBrokerProcess" root="true">
     <enclosedChoreographies name="CompleteTransaction">
-      <participantDefinitions name="SupplierTxnProcessor" roleTypes="//@typeDefinitions/@roleTypes.3">
+      <participantDefinitions name="spr:SupplierTxnProcessor" roleTypes="//@typeDefinitions/@roleTypes.3">
         <semanticAnnotations annotation="overlord.cdl.samples.LoanBroker at SupplierTxnProcessor" name="conversationType"/>
       </participantDefinitions>
       <variableDefinitions description="Channel to facilitate interaction to Broker" name="BrokerChannel" type="//@typeDefinitions/@channelTypes.0" free="true" roleTypes="//@typeDefinitions/@roleTypes.0 //@typeDefinitions/@roleTypes.1"/>
@@ -90,7 +90,7 @@
       </activities>
     </enclosedChoreographies>
     <enclosedChoreographies name="RequestForQuote">
-      <participantDefinitions name="SupplierQuoteEngine" roleTypes="//@typeDefinitions/@roleTypes.3">
+      <participantDefinitions name="spr:SupplierQuoteEngine" roleTypes="//@typeDefinitions/@roleTypes.3">
         <semanticAnnotations annotation="overlord.cdl.samples.LoanBroker at SupplierQuoteEngine" name="conversationType"/>
       </participantDefinitions>
       <variableDefinitions description="Channel to facilitate interaction to Supplier" name="SupplierChannel" type="//@typeDefinitions/@channelTypes.2"/>

Modified: branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/InteractionUtil.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/InteractionUtil.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/InteractionUtil.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -17,8 +17,6 @@
  */
 package org.savara.common.model.util;
 
-import java.util.logging.Logger;
-
 import org.scribble.protocol.model.*;
 
 /**
@@ -26,8 +24,6 @@
  */
 public class InteractionUtil {
 	
-	private static Logger logger = Logger.getLogger(InteractionUtil.class.getName());
-
 	/**
 	 * This method returns the name associated with the interaction.
 	 * 
@@ -212,4 +208,66 @@
 		return(ret);
 	}
 	
+	/**
+	 * This method determines if the supplied interaction is a fault
+	 * response.
+	 * 
+	 * @param interaction The interaction
+	 * @return Whether the interaction is a fault response
+	 */
+	public static boolean isFaultResponse(Interaction interaction) {
+		boolean ret=false;
+		
+		if (isResponse(interaction) &&
+				interaction.getMessageSignature().getProperties().
+						keySet().contains(PropertyName.FAULT_NAME)) {
+			ret = true;
+		}
+
+		return(ret);
+	}
+	
+	/**
+	 * This method determines if the supplied interaction is a fault
+	 * response.
+	 * 
+	 * @param interaction The interaction
+	 * @return Whether the interaction is a fault response
+	 */
+	public static boolean isFaultResponse(When interaction) {
+		boolean ret=false;
+		
+		if (InteractionUtil.isResponse(interaction) &&
+				interaction.getMessageSignature().getProperties().
+						keySet().contains(PropertyName.FAULT_NAME)) {
+			ret = true;
+		}
+
+		return(ret);
+	}
+	
+	/**
+	 * This method returns the fault name associated with the supplied
+	 * interaction.
+	 * 
+	 * @param interaction The interaction
+	 * @return The fault name, or null if not found
+	 */
+	public static String getFaultName(Interaction interaction) {
+		return((String)interaction.
+			getMessageSignature().getProperties().get(PropertyName.FAULT_NAME));
+	}
+	
+	/**
+	 * This method returns the fault name associated with the supplied
+	 * interaction.
+	 * 
+	 * @param interaction The interaction
+	 * @return The fault name, or null if not found
+	 */
+	public static String getFaultName(When interaction) {
+		return((String)interaction.
+			getMessageSignature().getProperties().get(PropertyName.FAULT_NAME));
+	}
+	
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/PropertyName.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/PropertyName.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.common/src/main/java/org/savara/common/model/util/PropertyName.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -23,7 +23,9 @@
 	
 	public static final String SCHEMA_LOCATIONS="SchemaLocations";
 	
-	public static final String MESSAGE_TYPE = "MessageType";
+	public static final String NAMESPACE = "Namespace";
+	
+	public static final String DATA_TYPE = "DataType";
 
 	public static final String INTERFACE_NAME = "InterfaceName";
 	

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/META-INF/MANIFEST.MF
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/META-INF/MANIFEST.MF	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/META-INF/MANIFEST.MF	2011-01-09 23:22:28 UTC (rev 564)
@@ -10,4 +10,5 @@
  org.osgi.framework
 Require-Bundle: org.scribble.common,
  org.savara.common
-Export-Package: org.savara.contract.model
+Export-Package: org.savara.contract.generator,
+ org.savara.contract.model

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/ContractGenerator.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/ContractGenerator.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/ContractGenerator.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -18,7 +18,9 @@
 package org.savara.contract.generator;
 
 import org.savara.contract.model.Contract;
+import org.scribble.common.logging.Journal;
 import org.scribble.protocol.model.Protocol;
+import org.scribble.protocol.model.ProtocolModel;
 
 /**
  * This interface represents the capability that generates a contract
@@ -28,12 +30,24 @@
 public interface ContractGenerator {
 
 	/**
+	 * This method creates contracts for the roles associated with the
+	 * supplied protocol model and associates them with the relevant
+	 * roles.
+	 * 
+	 * @param pm The protocol model
+	 * @param journal The journal
+	 * @throws IllegalArgumentException
+	 */
+	public void generate(ProtocolModel pm, Journal journal) throws IllegalArgumentException;
+	
+	/**
 	 * This method generates a contract associated with a supplied located
 	 * protocol.
 	 * 
 	 * @param cm The protocol
+	 * @param journal The journal
 	 * @return The contract
 	 */
-	public Contract generate(Protocol cm) throws IllegalArgumentException;
+	public Contract generate(Protocol cm, Journal journal) throws IllegalArgumentException;
 	
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractGeneratorImpl.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractGeneratorImpl.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractGeneratorImpl.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -19,9 +19,15 @@
 
 import java.text.MessageFormat;
 
+import org.savara.common.util.ScribbleServices;
 import org.savara.contract.model.Contract;
 import org.savara.contract.generator.ContractGenerator;
+import org.scribble.common.logging.CachedJournal;
+import org.scribble.common.logging.Journal;
 import org.scribble.protocol.model.Protocol;
+import org.scribble.protocol.model.ProtocolModel;
+import org.scribble.protocol.model.Role;
+import org.scribble.protocol.model.RoleList;
 
 /**
  * This class generates a contract from a protocol defining the behaviour of
@@ -31,13 +37,51 @@
 public class ContractGeneratorImpl implements ContractGenerator {
 
 	/**
+	 * This method creates contracts for the roles associated with the
+	 * supplied protocol model and associates them with the relevant
+	 * roles.
+	 * 
+	 * @param pm The protocol model
+	 * @param journal The journal
+	 * @throws IllegalArgumentException
+	 */
+	public void generate(ProtocolModel pm, Journal journal) throws IllegalArgumentException {
+		java.util.List<Role> roles=pm.getRoles();
+		
+		for (Role r : roles) {
+			ProtocolModel lm=ScribbleServices.getProtocolProjector().project(pm, r, journal);
+			
+			if (lm != null) {
+				Contract c=generate(lm.getProtocol(), journal);
+				
+				if (c != null) {
+					r.getProperties().put(Contract.class.getName(), c);	
+					
+					/*
+					// Find role definition in local projection
+					java.util.List<Role> localRoles=lm.getRoles();
+					
+					for (Role lr : localRoles) {
+						if (lr.getName().equals(r.getName())) {
+							lr.getProperties().put(Contract.class.getName(), c);	
+							break;
+						}
+					}
+					*/
+				}
+			}
+		}
+	}
+	
+	/**
 	 * This method generates a contract associated with a supplied located
 	 * protocol.
 	 * 
 	 * @param cm The protocol
+	 * @param journal The journal
 	 * @return The contract
 	 */
-	public Contract generate(Protocol cm) throws IllegalArgumentException {
+	public Contract generate(Protocol cm, Journal journal) throws IllegalArgumentException {
 		
 		// Check parameters
 		if (cm == null) {
@@ -53,7 +97,7 @@
 							getString("SAVARAPC-00002"), (Object)null));
 		}
 		
-		ContractIntrospector introspector=new ContractIntrospector(cm);
+		ContractIntrospector introspector=new ContractIntrospector(cm, journal);
 		
 		introspector.process();
 		

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractIntrospector.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractIntrospector.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/generator/impl/ContractIntrospector.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -27,19 +27,23 @@
 import org.savara.common.model.util.InteractionUtil;
 import org.savara.common.model.util.PropertyName;
 import org.savara.contract.model.Contract;
+import org.savara.contract.model.FaultDetails;
 import org.savara.contract.model.Interface;
 import org.savara.contract.model.MessageExchangePattern;
 import org.savara.contract.model.OneWayRequestMEP;
 import org.savara.contract.model.RequestResponseMEP;
 import org.savara.contract.model.Type;
 import org.savara.contract.model.TypeDefinition;
+import org.scribble.common.logging.Journal;
 import org.scribble.protocol.model.AbstractModelObjectVisitor;
+import org.scribble.protocol.model.Choice;
 import org.scribble.protocol.model.Protocol;
 import org.scribble.protocol.model.Interaction;
 import org.scribble.protocol.model.Run;
 import org.scribble.protocol.model.ModelObject;
 import org.scribble.protocol.model.Role;
 import org.scribble.protocol.model.TypeReference;
+import org.scribble.protocol.model.When;
 
 /**
  * This class examines a protocol to determine the contract that represents
@@ -52,6 +56,7 @@
 	private java.util.Set<Protocol> m_processedProtocols=null;
 	private Role m_role=null;
 	private Protocol m_protocol=null;
+	private Journal m_journal=null;
 	
 	private static Logger logger = Logger.getLogger(ContractIntrospector.class.getName());	
 	
@@ -60,8 +65,8 @@
 	 * 
 	 * @param protocol The protocol to introspect
 	 */
-	public ContractIntrospector(Protocol protocol) {
-		this(protocol, null, null);
+	public ContractIntrospector(Protocol protocol, Journal journal) {
+		this(protocol, null, null, journal);
 	}
 	
 	/**
@@ -72,11 +77,23 @@
 	 * @param processed The optional set of protocols currently processed
 	 */
 	public ContractIntrospector(Protocol protocol, Contract contract,
-						java.util.Set<Protocol> processed) {
+						java.util.Set<Protocol> processed, Journal journal) {
 		m_contract = contract;
 		
+		if (protocol != null) {
+			m_role = protocol.getRole();
+		}
+		
 		if (m_contract == null) {
 			m_contract = new Contract();
+			
+			m_contract.setName(m_role.getName());
+			
+			String namespace=(String)m_role.getProperties().get(PropertyName.NAMESPACE);
+			
+			if (namespace != null) {
+				m_contract.setNamespace(namespace);
+			}			
 		}
 		
 		if (processed != null) {
@@ -86,10 +103,6 @@
 		}
 		
 		m_protocol = protocol;
-		
-		if (protocol != null) {
-			m_role = protocol.getRole();
-		}
 	}
 	
 	/**
@@ -102,6 +115,15 @@
 	}
 	
 	/**
+	 * This method returns the journal.
+	 * 
+	 * @return The journal
+	 */
+	public Journal getJournal() {
+		return(m_journal);
+	}
+	
+	/**
 	 * This method returns the interface.
 	 * 
 	 * @return The interface
@@ -114,6 +136,18 @@
 			ret = new Interface();
 			ret.setName(m_role.getName());
 			
+			// TODO: Need to consider how to manage different interfaces,
+			// in case the choreography has multiple interfaces. Each
+			// interaction could have an 'INTERFACE_NAME' property which
+			// could determine the interface - and if not defined default
+			// to using an interface named after the role
+			
+			String namespace=(String)m_role.getProperties().get(PropertyName.NAMESPACE);
+			
+			if (namespace != null) {
+				ret.setNamespace(namespace);
+			}
+			
 			getContract().getInterfaces().add(ret);
 		}
 		
@@ -166,7 +200,7 @@
 				m_processedProtocols.add(toProtocol);
 
 				ContractIntrospector ci=new ContractIntrospector(toProtocol,
-							getContract(), getProcessedProtocols());
+							getContract(), getProcessedProtocols(), getJournal());
 					
 				ci.process();
 			} else {
@@ -187,6 +221,10 @@
 	 */
 	public void accept(Interaction interaction) {
 		
+		// Receiving a request - so record this in the contract
+		Interface intf=getInterface();
+
+		/*
 		// Check if the interacton is being received
 		if (interaction.getFromRole() != null &&
 				interaction.getFromRole().equals(m_role) == false) {
@@ -195,10 +233,11 @@
 			// has been set, indicating it is receiving a response
 			if (InteractionUtil.getReplyToLabel(interaction) == null ||
 					InteractionUtil.getReplyToLabel(interaction).trim().length() == 0) {
+		*/
+		
+		// Check if receiving a request
+		if (InteractionUtil.isRequest(interaction) && !InteractionUtil.isSend(interaction)) {
 				
-				// Receiving a request - so record this in the contract
-				Interface intf=getInterface();
-				
 				if (interaction.getMessageSignature().getOperation() != null) {
 					
 					// Check if message exchange pattern exists for operation
@@ -223,10 +262,170 @@
 					}
 				}
 
+			//} else {
+				
+			//}
+				
+		} else if (InteractionUtil.isResponse(interaction) && InteractionUtil.isSend(interaction)) {
+			
+			if (interaction.getMessageSignature().getOperation() != null) {
+				
+				// Check if message exchange pattern exists for operation
+				MessageExchangePattern mep=intf.getMessageExchangePatternForOperation(
+							interaction.getMessageSignature().getOperation());
+				
+				if (mep instanceof RequestResponseMEP) {
+					RequestResponseMEP rrmep=(RequestResponseMEP)mep;
+					
+					if (InteractionUtil.isFaultResponse(interaction)) {
+						String faultName=InteractionUtil.getFaultName(interaction);
+												
+						if (rrmep.getFaultDetails(faultName) == null) {
+							FaultDetails fd=new FaultDetails();
+							fd.setName(faultName);
+							
+							for (int i=0; i < interaction.getMessageSignature().getTypeReferences().size(); i++) {
+								fd.getTypes().add(convertType(interaction.getMessageSignature().getTypeReferences().get(i)));
+							}
+							
+							rrmep.getFaultDetails().add(fd);
+						}
+						
+					} else if (rrmep.getResponseTypes().size() == 0) {
+						
+						if (interaction.getMessageSignature().getTypeReferences().size() > 1) {
+							getJournal().error("Response has more than one type", null);
+						} else if (interaction.getMessageSignature().getTypeReferences().size() == 1) {
+							rrmep.getResponseTypes().add(convertType(
+									interaction.getMessageSignature().getTypeReferences().get(0)));
+						}
+					}
+				}
+			}
+		}
+	}
+	
+	/**
+	 * This method introspects the supplied interaction to generate Message Exchange
+	 * Patterns on the contract interface.
+	 * 
+	 * @param interaction The interaction
+	 */
+	public boolean start(When when) {	
+		
+		// Receiving a request - so record this in the contract
+		Interface intf=getInterface();
+
+		// Check if receiving a request
+		if (InteractionUtil.isRequest(when) && !InteractionUtil.isSend(when)) {
+				
+			if (when.getMessageSignature().getOperation() != null) {
+				
+				// Check if message exchange pattern exists for operation
+				MessageExchangePattern mep=intf.getMessageExchangePatternForOperation(
+						when.getMessageSignature().getOperation());
+				
+				if (mep == null) {
+					// Create new MEP
+					if (InteractionUtil.getRequestLabel(when) != null) {
+						mep = new RequestResponseMEP();
+					} else {
+						mep = new OneWayRequestMEP();
+					}
+					
+					mep.setOperation(when.getMessageSignature().getOperation());
+					
+					for (int i=0; i < when.getMessageSignature().getTypeReferences().size(); i++) {
+						mep.getTypes().add(convertType(when.getMessageSignature().getTypeReferences().get(i)));
+					}
+					
+					intf.getMessageExchangePatterns().add(mep);
+				}
+			}
+		} else if (InteractionUtil.isResponse(when) && InteractionUtil.isSend(when)) {
+			
+			if (when.getMessageSignature().getOperation() != null) {
+				
+				// Check if message exchange pattern exists for operation
+				MessageExchangePattern mep=intf.getMessageExchangePatternForOperation(
+						when.getMessageSignature().getOperation());
+				
+				if (mep instanceof RequestResponseMEP) {
+					RequestResponseMEP rrmep=(RequestResponseMEP)mep;
+					
+					if (InteractionUtil.isFaultResponse(when)) {
+						String faultName=InteractionUtil.getFaultName(when);
+												
+						if (rrmep.getFaultDetails(faultName) == null) {
+							FaultDetails fd=new FaultDetails();
+							fd.setName(faultName);
+							
+							for (int i=0; i < when.getMessageSignature().getTypeReferences().size(); i++) {
+								fd.getTypes().add(convertType(when.getMessageSignature().getTypeReferences().get(i)));
+							}
+							
+							rrmep.getFaultDetails().add(fd);
+						}
+						
+					} else if (rrmep.getResponseTypes().size() == 0) {
+						
+						if (when.getMessageSignature().getTypeReferences().size() > 1) {
+							getJournal().error("Response has more than one type", null);
+						} else if (when.getMessageSignature().getTypeReferences().size() == 1) {
+							rrmep.getResponseTypes().add(convertType(
+									when.getMessageSignature().getTypeReferences().get(0)));
+						}
+					}
+				}
+			}
+		}
+
+		/*
+		Choice choice=(Choice)when.getParent();
+		
+		// Check if the interacton is being received
+		if (choice.getFromRole() != null &&
+				choice.getFromRole().equals(m_role) == false) {
+			
+			// Received by the role, but need to check if its replyTo
+			// has been set, indicating it is receiving a response
+			if (InteractionUtil.getReplyToLabel(when) == null ||
+					InteractionUtil.getReplyToLabel(when).trim().length() == 0) {
+				
+				// Receiving a request - so record this in the contract
+				Interface intf=getInterface();
+				
+				if (when.getMessageSignature().getOperation() != null) {
+					
+					// Check if message exchange pattern exists for operation
+					MessageExchangePattern mep=intf.getMessageExchangePatternForOperation(
+							when.getMessageSignature().getOperation());
+					
+					if (mep == null) {
+						// Create new MEP
+						if (InteractionUtil.getRequestLabel(when) != null) {
+							mep = new RequestResponseMEP();
+						} else {
+							mep = new OneWayRequestMEP();
+						}
+						
+						mep.setOperation(when.getMessageSignature().getOperation());
+						
+						for (int i=0; i < when.getMessageSignature().getTypeReferences().size(); i++) {
+							mep.getTypes().add(convertType(when.getMessageSignature().getTypeReferences().get(i)));
+						}
+						
+						intf.getMessageExchangePatterns().add(mep);
+					}
+				}
+
 			} else {
 				
 			}
 		}
+		*/
+		
+		return(true);
 	}
 	
 	/**
@@ -242,7 +441,7 @@
 			TypeDefinition td=new TypeDefinition();
 			td.setName(tref.getName());
 			
-			td.setDataType((String)tref.getProperties().get(PropertyName.MESSAGE_TYPE));
+			td.setDataType((String)tref.getProperties().get(PropertyName.DATA_TYPE));
 			
 			// Copy properties that may provide additional information about the type
 			td.getProperties().putAll(tref.getProperties());

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Contract.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Contract.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Contract.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -148,4 +148,22 @@
 	public java.util.Set<Namespace> getNamespaces() {
 		return(m_namespaces);
 	}
+	
+	public String toString() {
+		StringBuffer buf=new StringBuffer();
+		
+		buf.append("Contract {"+m_namespace+"}"+m_name+" {\r\n");
+		
+		for (TypeDefinition td : getTypeDefinitions()) {
+			buf.append(td.toString());
+		}
+		
+		for (Interface intf : getInterfaces()) {
+			buf.append(intf.toString());
+		}
+		
+		buf.append("}\r\n");
+		
+		return(buf.toString());
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/FaultDetails.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/FaultDetails.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/FaultDetails.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -23,7 +23,6 @@
 public class FaultDetails extends ContractObject {
 
 	private String m_name=null;
-	private String m_namespace=null;
 	private java.util.List<Type> m_types=
 						new java.util.Vector<Type>();	
 	
@@ -53,25 +52,6 @@
 	}
 	
 	/**
-	 * This method returns the namespace associated with the
-	 * fault.
-	 * 
-	 * @return The namespace
-	 */
-	public String getNamespace() {
-		return(m_namespace);
-	}
-	
-	/**
-	 * This method sets the namespace of the fault.
-	 * 
-	 * @param namespace The namespace
-	 */
-	public void setNamespace(String namespace) {
-		m_namespace = namespace;
-	}
-	
-	/**
 	 * This method returns the list of types.
 	 * 
 	 * @return The list of types
@@ -79,4 +59,19 @@
 	public java.util.List<Type> getTypes() {
 		return(m_types);
 	}
+	
+	public String toString() {
+		StringBuffer buf=new StringBuffer();
+		
+		buf.append("Fault "+getName()+"( ");
+		
+		for (Type t : getTypes()) {
+			buf.append(t.toString()+" ");
+		}
+		
+		buf.append(")");
+		
+		return(buf.toString());
+	}
+
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Interface.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Interface.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Interface.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -103,4 +103,18 @@
 		
 		return(ret);
 	}
+
+	public String toString() {
+		StringBuffer buf=new StringBuffer();
+		
+		buf.append("\tInterface {"+m_namespace+"}"+m_name+" {\r\n");
+		
+		for (MessageExchangePattern mep : getMessageExchangePatterns()) {
+			buf.append(mep.toString());
+		}
+		
+		buf.append("\t}\r\n");
+		
+		return(buf.toString());
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/OneWayRequestMEP.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/OneWayRequestMEP.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/OneWayRequestMEP.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -28,4 +28,17 @@
 	public OneWayRequestMEP() {
 	}
 	
+	public String toString() {
+		StringBuffer buf=new StringBuffer();
+		
+		buf.append("\t\tOneWayRequestMEP "+getOperation()+"( ");
+		
+		for (Type t : getTypes()) {
+			buf.append(t.toString()+" ");
+		}
+		
+		buf.append(")\r\n");
+		
+		return(buf.toString());
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/RequestResponseMEP.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/RequestResponseMEP.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/RequestResponseMEP.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -50,4 +50,44 @@
 	public java.util.List<FaultDetails> getFaultDetails() {
 		return(m_faultDetails);
 	}
+	
+	/**
+	 * This method returns the fault details for the supplied
+	 * name.
+	 * 
+	 * @param faultName The fault name
+	 * @return The fault details, or null if not found
+	 */
+	public FaultDetails getFaultDetails(String faultName) {
+		for (FaultDetails fd : m_faultDetails) {
+			if (fd.getName().equals(faultName)) {
+				return(fd);
+			}
+		}
+		return(null);
+	}
+	
+	public String toString() {
+		StringBuffer buf=new StringBuffer();
+		
+		buf.append("\t\tRequestResponseMEP "+getOperation()+"( ");
+		
+		for (Type t : getTypes()) {
+			buf.append(t.toString()+" ");
+		}
+		
+		buf.append(") : ");
+		
+		for (Type t : getResponseTypes()) {
+			buf.append(t.toString()+" ");
+		}
+		
+		for (FaultDetails fd : getFaultDetails()) {
+			buf.append(fd.toString()+" ");
+		}
+		
+		buf.append("\r\n");
+		
+		return(buf.toString());
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Type.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Type.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/Type.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -51,4 +51,7 @@
 		m_name = name;
 	}
 	
+	public String toString() {
+		return(getName());
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/TypeDefinition.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/TypeDefinition.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/main/java/org/savara/contract/model/TypeDefinition.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -109,4 +109,9 @@
 	public void setTypeSystem(String typeSystem) {
 		m_typeSystem = typeSystem;
 	}
+
+	public String toString() {
+		return("\tTypeDef "+m_name+" type="+m_dataType+
+				" location="+m_location+" typeSystem="+m_typeSystem+"\r\n");
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/ContractGeneratorTest.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/ContractGeneratorTest.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/ContractGeneratorTest.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -4,8 +4,14 @@
 
 import org.savara.contract.generator.ContractGenerator;
 import org.savara.contract.generator.ContractGeneratorFactory;
+import org.savara.contract.model.Contract;
+import org.scribble.common.logging.CachedJournal;
+import org.scribble.common.logging.Journal;
+import org.scribble.protocol.model.Interaction;
+import org.scribble.protocol.model.MessageSignature;
 import org.scribble.protocol.model.Protocol;
 import org.scribble.protocol.model.Role;
+import org.scribble.protocol.model.TypeReference;
 
 public class ContractGeneratorTest {
 
@@ -17,8 +23,10 @@
 		try {
 			Protocol conv=null;
 			
-			generator.generate(conv);
+			Journal journal=new CachedJournal();
 			
+			generator.generate(conv, journal);
+			
 			fail("Should have thrown IllegalArgumentException");
 			
 		} catch(IllegalArgumentException iae) {
@@ -35,8 +43,10 @@
 			Protocol conv=new Protocol();
 			conv.setName("NonLocatedProtocol");
 			
-			generator.generate(conv);
+			Journal journal=new CachedJournal();
 			
+			generator.generate(conv, journal);
+			
 			fail("Should have thrown IllegalArgumentException");
 			
 		} catch(IllegalArgumentException iae) {
@@ -54,10 +64,61 @@
 			conv.setRole(new Role());
 			conv.setName("LocatedProtocol");
 			
-			generator.generate(conv);
+			Journal journal=new CachedJournal();
 			
+			generator.generate(conv, journal);
+			
 		} catch(IllegalArgumentException iae) {			
 			fail("Should NOT have thrown IllegalArgumentException");
 		}
 	}
+
+	@org.junit.Test
+	public void testGenerateOneWayRequestSend() {
+		
+		ContractGenerator generator=ContractGeneratorFactory.getContractGenerator();
+		
+		try {
+			Role fromRole=new Role();
+			fromRole.setName("from");
+			
+			Role toRole=new Role();
+			toRole.setName("to");
+			
+			Protocol conv=new Protocol();
+			conv.setRole(fromRole);
+			conv.setName("LocatedProtocol");
+			
+			Interaction interaction=new Interaction();
+			interaction.getToRoles().add(toRole);
+			
+			MessageSignature ms=new MessageSignature();			
+			ms.setOperation("op");
+			
+			interaction.setMessageSignature(ms);
+			
+			TypeReference tref1=new TypeReference();
+			tref1.setName("type");
+			ms.getTypeReferences().add(tref1);
+			
+			conv.getBlock().add(interaction);
+			
+			Journal journal=new CachedJournal();
+			
+			Contract c=generator.generate(conv, journal);
+					
+			if (c == null) {
+				fail("Contract is null");
+			}
+			
+			if (c.getInterfaces().size() != 1) {
+				fail("Only one interface expected");
+			}
+			
+			
+			
+		} catch(IllegalArgumentException iae) {			
+			fail("Should NOT have thrown IllegalArgumentException");
+		}
+	}
 }

Modified: branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/impl/ContractIntrospectorTest.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/impl/ContractIntrospectorTest.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.contract/src/test/java/org/savara/contract/generator/impl/ContractIntrospectorTest.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -29,6 +29,8 @@
 import org.savara.contract.model.RequestResponseMEP;
 import org.savara.contract.model.Type;
 import org.savara.contract.generator.impl.ContractIntrospector;
+import org.scribble.common.logging.CachedJournal;
+import org.scribble.common.logging.Journal;
 import org.scribble.protocol.model.Protocol;
 import org.scribble.protocol.model.Interaction;
 import org.scribble.protocol.model.ProtocolReference;
@@ -76,8 +78,10 @@
 		mid.getBlock().getContents().add(run);
 		mid.getBlock().getContents().add(sub);
 		
-		ContractIntrospector introspector=new ContractIntrospector(top);
+		Journal journal=new CachedJournal();
 		
+		ContractIntrospector introspector=new ContractIntrospector(top, journal);
+		
 		introspector.process();
 		
 		if (introspector.getProcessedProtocols().size() != 0) {
@@ -124,8 +128,10 @@
 		mid.getBlock().getContents().add(run2);
 		mid.getBlock().getContents().add(sub);
 		
-		ContractIntrospector introspector=new ContractIntrospector(top);
+		Journal journal=new CachedJournal();
 		
+		ContractIntrospector introspector=new ContractIntrospector(top, journal);
+		
 		introspector.process();
 		
 		if (introspector.getProcessedProtocols().size() != 2) {
@@ -148,8 +154,10 @@
 		role.setName(MY_ROLE);
 		protocol.setRole(role);
 		
-		ContractIntrospector introspector=new ContractIntrospector(protocol);
+		Journal journal=new CachedJournal();
 		
+		ContractIntrospector introspector=new ContractIntrospector(protocol, journal);
+		
 		if (introspector.getContract().getInterfaces().size() != 0) {
 			fail("Should be 0 interfaces: "+introspector.getContract().getInterfaces().size());
 		}
@@ -182,8 +190,10 @@
 		role.setName(MY_ROLE);
 		protocol.setRole(role);
 		
-		ContractIntrospector introspector=new ContractIntrospector(protocol);
+		Journal journal=new CachedJournal();
 		
+		ContractIntrospector introspector=new ContractIntrospector(protocol, journal);
+		
 		Interaction interaction=new Interaction();
 		
 		MessageSignature msig=new MessageSignature();
@@ -236,8 +246,10 @@
 		role.setName(MY_ROLE);
 		protocol.setRole(role);
 		
-		ContractIntrospector introspector=new ContractIntrospector(protocol);
+		Journal journal=new CachedJournal();
 		
+		ContractIntrospector introspector=new ContractIntrospector(protocol, journal);
+		
 		Interaction interaction=new Interaction();
 		
 		MessageSignature msig=new MessageSignature();

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/CDMProtocolParser.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/CDMProtocolParser.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/CDMProtocolParser.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -61,7 +61,7 @@
 			
 				if (rule != null) {
 					ConverterContext cctxt=
-						new DefaultConverterContext();
+						new DefaultConverterContext(journal);
 					
 					ret = (ProtocolModel)rule.convert(cctxt,
 							ProtocolModel.class, cdlpack);

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ChoiceConverterRuleImpl.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ChoiceConverterRuleImpl.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ChoiceConverterRuleImpl.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -24,6 +24,8 @@
 import org.pi4soa.cdl.Package;
 import org.pi4soa.cdl.Parallel;
 import org.pi4soa.cdl.util.CDLTypeUtil;
+import org.pi4soa.cdl.util.InteractionUtil;
+import org.savara.common.model.util.PropertyName;
 import org.scribble.protocol.model.*;
 import org.scribble.protocol.model.Choice;
 import org.scribble.protocol.model.When;
@@ -128,7 +130,16 @@
 								}
 								
 								if (ed.getAction() == ExchangeActionType.RESPOND) {
-									block.getProperties().put("ReplyToLabel", ConverterUtil.getLabel(ed));
+									block.getProperties().put(PropertyName.REPLY_TO_LABEL, ConverterUtil.getLabel(ed));
+								} else {
+									// Check if request has response/fault exchanges
+									java.util.List<ExchangeDetails> resps=
+											InteractionUtil.getResponseExchangeDetails(ed);
+									
+									if (resps != null && resps.size() > 0) {
+										block.getProperties().put(PropertyName.REQUEST_LABEL,
+														ConverterUtil.getLabel(ed));
+									}
 								}
 							}
 						}

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConditionalConverterRuleImpl.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConditionalConverterRuleImpl.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConditionalConverterRuleImpl.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -21,6 +21,8 @@
 
 import org.pi4soa.cdl.*;
 import org.pi4soa.cdl.util.CDLTypeUtil;
+import org.pi4soa.cdl.util.InteractionUtil;
+import org.savara.common.model.util.PropertyName;
 import org.savara.pi4soa.cdm.parser.rules.ChoiceConverterRuleImpl.InteractionLocator;
 import org.scribble.protocol.model.*;
 import org.scribble.protocol.model.When;
@@ -95,6 +97,19 @@
 				
 				ret.setToRole(new Role(InteractionConverterRuleImpl.getToRole(context,
 											ed)));
+				
+				if (ed.getAction() == ExchangeActionType.RESPOND) {
+					block.getProperties().put(PropertyName.REPLY_TO_LABEL, ConverterUtil.getLabel(ed));
+				} else {
+					// Check if request has response/fault exchanges
+					java.util.List<ExchangeDetails> resps=
+							InteractionUtil.getResponseExchangeDetails(ed);
+					
+					if (resps != null && resps.size() > 0) {
+						block.getProperties().put(PropertyName.REQUEST_LABEL,
+										ConverterUtil.getLabel(ed));
+					}
+				}
 			}
 		}
 

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterContext.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterContext.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterContext.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -21,11 +21,19 @@
 
 import org.pi4soa.cdl.Choreography;
 import org.pi4soa.cdl.ExchangeDetails;
+import org.scribble.common.logging.Journal;
 import org.scribble.protocol.model.*;
 
 public interface ConverterContext {
 
 	/**
+	 * This method returns the journal for reporting issues.
+	 * 
+	 * @return The journal
+	 */
+	public Journal getJournal();
+	
+	/**
 	 * This method returns the source model reference.
 	 * 
 	 * @return The source model reference

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterUtil.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterUtil.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ConverterUtil.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -22,6 +22,8 @@
 import javax.xml.namespace.QName;
 
 import org.pi4soa.cdl.ExchangeDetails;
+import org.savara.common.model.util.PropertyName;
+import org.savara.common.model.util.TypeSystem;
 import org.scribble.protocol.model.*;
 
 /**
@@ -54,17 +56,20 @@
 		
 		if (org.pi4soa.common.util.NamesUtil.isSet(infoType.getTypeName())) {
 			typeName = infoType.getTypeName();
+			ret.getProperties().put(PropertyName.XSD_TYPE, "true");
 		} else if (org.pi4soa.common.util.NamesUtil.isSet(infoType.getElementName())) {
 			typeName = infoType.getElementName();
+			ret.getProperties().put(PropertyName.XSD_ELEMENT, "true");
 		}
 		
 		if (typeName != null) {
 			ret.setName(org.pi4soa.common.xml.XMLUtils.getLocalname(typeName));
 			
-			ret.getProperties().put(QNAME,
+			ret.getProperties().put(PropertyName.DATA_TYPE,
 					(new QName(org.pi4soa.common.xml.XMLUtils.getNamespace(typeName, resolver, null),
 							org.pi4soa.common.xml.XMLUtils.getLocalname(typeName))).toString());
 			
+			ret.getProperties().put(PropertyName.TYPE_SYSTEM, TypeSystem.XSD);
 			//ret.setNamespace(org.pi4soa.common.xml.XMLUtils.getNamespace(typeName, resolver, null));
 		}
 		

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/DefaultConverterContext.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/DefaultConverterContext.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/DefaultConverterContext.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -23,6 +23,7 @@
 
 import org.pi4soa.cdl.Choreography;
 import org.pi4soa.cdl.ExchangeDetails;
+import org.scribble.common.logging.Journal;
 import org.scribble.protocol.model.*;
 
 /**
@@ -30,10 +31,13 @@
  */
 public class DefaultConverterContext implements ConverterContext {
 
+	private Journal m_journal=null;
+	
 	/**
 	 * Default constructor.
 	 */
-	public DefaultConverterContext() {
+	public DefaultConverterContext(Journal journal) {
+		m_journal = journal;
 	}
 	
 	/**
@@ -60,6 +64,15 @@
 	*/
 	
 	/**
+	 * This method returns the journal for reporting issues.
+	 * 
+	 * @return The journal
+	 */
+	public Journal getJournal() {
+		return(m_journal);
+	}
+	
+	/**
 	 * This method returns the declaration associated
 	 * with the supplied name.
 	 * 

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/InteractionConverterRuleImpl.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/InteractionConverterRuleImpl.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/InteractionConverterRuleImpl.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -382,7 +382,7 @@
 						InteractionUtil.getResponseExchangeDetails(details);
 				
 				if (resps != null && resps.size() > 0) {
-					interaction.getProperties().put("RequestLabel", ConverterUtil.getLabel(details));
+					interaction.getProperties().put(PropertyName.REQUEST_LABEL, ConverterUtil.getLabel(details));
 				}
 				
 				// Check if fault thrown
@@ -438,7 +438,7 @@
 				}
 				
 				if (details.getAction() == ExchangeActionType.RESPOND) {
-					interaction.getProperties().put("ReplyToLabel", ConverterUtil.getLabel(details));
+					interaction.getProperties().put(PropertyName.REPLY_TO_LABEL, ConverterUtil.getLabel(details));
 				}
 
 				// Check if fault thrown
@@ -751,7 +751,7 @@
 				String lp=XMLUtils.getLocalname(itype.getTypeName());
 				
 				QName qname=new QName(ns, lp);
-				ms.getProperties().put(PropertyName.MESSAGE_TYPE, qname.toString());
+				ms.getProperties().put(PropertyName.DATA_TYPE, qname.toString());
 				
 				ms.getProperties().put(PropertyName.XSD_TYPE, "true");
 				
@@ -771,7 +771,7 @@
 				String lp=XMLUtils.getLocalname(itype.getElementName());
 		
 				QName qname=new QName(ns, lp);
-				ms.getProperties().put(PropertyName.MESSAGE_TYPE, qname.toString());
+				ms.getProperties().put(PropertyName.DATA_TYPE, qname.toString());
 								
 				ms.getProperties().put(PropertyName.XSD_ELEMENT, "true");
 				

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolConverterRuleImpl.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolConverterRuleImpl.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolConverterRuleImpl.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -41,8 +41,6 @@
 
 public class ProtocolConverterRuleImpl implements ConverterRule {
 
-	private static final String CONVERSATION_TYPE = "conversationType";
-
 	/**
 	 * This method determines whether the rule can be applied
 	 * to the supplied CDL type.
@@ -256,8 +254,8 @@
 	protected static void defineRoles(ConverterContext context,
 			final Choreography choreo, Block block) {
 	
-		org.pi4soa.cdl.interfaces.InterfaceDeriver intfDeriver=
-					org.pi4soa.cdl.interfaces.InterfaceFactory.getInterfaceDeriver();
+		//org.pi4soa.cdl.interfaces.InterfaceDeriver intfDeriver=
+		//			org.pi4soa.cdl.interfaces.InterfaceFactory.getInterfaceDeriver();
 		
 		final java.util.List<ParticipantType> partTypes=new java.util.Vector<ParticipantType>();
 		final java.util.List<Participant> partInstances=new java.util.Vector<Participant>();
@@ -310,7 +308,9 @@
 		while (piter.hasNext()) {
 			Role role=new Role();
 			Participant pinst=piter.next();
-			role.setName(pinst.getName());
+			role.setName(XMLUtils.getLocalname(pinst.getName()));
+			role.getProperties().put(PropertyName.NAMESPACE,
+						CDLTypeUtil.getNamespace(pinst.getName(), pinst, true));
 			
 			if (roleList == null) {
 				roleList = new RoleList();
@@ -326,6 +326,7 @@
 			//registerRole(context, choreo, conv, roleList, role, pinst);
 			
 			// Setup interfaces
+			/*
 			for (int i=0; i < pinst.getRoleTypes().size(); i++) {
 				Contract contract=null;
 				
@@ -373,6 +374,7 @@
 				setupInterfaces((org.pi4soa.cdl.RoleType)pinst.getRoleTypes().get(i),
 								contract, intfDeriver);
 			}
+			*/
 		}
 
 		java.util.Iterator<ParticipantType> ptiter=partTypes.iterator();
@@ -387,6 +389,8 @@
 			Role role=new Role();
 			ParticipantType ptype=ptiter.next();
 			role.setName(XMLUtils.getLocalname(ptype.getName()));
+			role.getProperties().put(PropertyName.NAMESPACE,
+						CDLTypeUtil.getNamespace(ptype.getName(), ptype, true));
 			
 			if (roleList == null) {
 				roleList = new RoleList();
@@ -406,6 +410,7 @@
 				//registerRole(context, choreo, conv, roleList, role, ptype);
 				
 				// Setup interfaces
+				/*
 				for (int i=0; i < ptype.getRoleTypes().size(); i++) {
 					Contract contract=null;
 					
@@ -439,10 +444,12 @@
 					setupInterfaces((org.pi4soa.cdl.RoleType)ptype.getRoleTypes().get(i),
 									contract, intfDeriver);
 				}
+				*/
 			}
 		}
 	}
 	
+	/*
 	protected static void setupInterfaces(org.pi4soa.cdl.RoleType roleType, Contract contract,
 					org.pi4soa.cdl.interfaces.InterfaceDeriver intfDeriver) {
 		
@@ -453,6 +460,7 @@
 		
 		rtd.visit(iv);
 	}
+	*/
 	
 	/*
 	protected void convertVariables(ConverterContext context,
@@ -737,7 +745,7 @@
 					FaultDetails fault=new FaultDetails();
 					
 					fault.setName(defn.getFaultName());
-					fault.setNamespace(defn.getFaultNamespace());
+					//fault.setNamespace(defn.getFaultNamespace());
 					
 					fault.getTypes().add(createType(defn));
 					

Modified: branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolModelConverterRuleImpl.java
===================================================================
--- branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolModelConverterRuleImpl.java	2011-01-08 23:39:18 UTC (rev 563)
+++ branches/experimental/2.0.x/bundles/org.savara.pi4soa.cdm/src/main/java/org/savara/pi4soa/cdm/parser/rules/ProtocolModelConverterRuleImpl.java	2011-01-09 23:22:28 UTC (rev 564)
@@ -24,6 +24,8 @@
 import org.pi4soa.cdl.*;
 import org.pi4soa.cdl.util.CDLTypeUtil;
 import org.savara.common.model.util.PropertyName;
+import org.savara.contract.generator.ContractGenerator;
+import org.savara.contract.generator.ContractGeneratorFactory;
 import org.scribble.protocol.model.*;
 
 public class ProtocolModelConverterRuleImpl implements ConverterRule {
@@ -145,6 +147,12 @@
 		}
 		*/
 		
+		// Derive contracts associated with the protocol model
+		ContractGenerator cg=ContractGeneratorFactory.getContractGenerator();
+		if (cg != null) {
+			cg.generate(ret, context.getJournal());
+		}
+		
 		return(ret);
 	}
 



More information about the savara-commits mailing list