Author: objectiser
Date: 2011-01-02 16:10:02 -0500 (Sun, 02 Jan 2011)
New Revision: 525
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/src/main/java/org/savara/bpel/model/change/ChoiceModelChangeRule.java
Log:
Fixed one part of the buyer projection for the ESBBroker.cdm example, but have problem
with the interaction (request) from the performed sub-choreo, used as a when message
signature, also being re-used in the contained activities.
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-02
16:17:44 UTC (rev 524)
+++
branches/experimental/2.0.x/bundles/org.savara.bpel/src/main/java/org/savara/bpel/model/change/ChoiceModelChangeRule.java 2011-01-02
21:10:02 UTC (rev 525)
@@ -497,7 +497,79 @@
reply.setName(InteractionUtil.getName(path));
} else {
- // TODO: HANDLE REQUEST - not sure if required, need an example
+ QName qname=null;
+ if (InteractionUtil.isRequest(path)) {
+ qname = WSDLGeneratorUtil.getRequestMessageType(contract.getNamespace(),
+ path.getMessageSignature().getOperation());
+ } else if (InteractionPatterns.isFaultResponse(path)) {
+ qname = WSDLGeneratorUtil.getFaultMessageType(contract.getNamespace(),
+ InteractionPatterns.getFaultName(path));
+ } else {
+ qname = WSDLGeneratorUtil.getResponseMessageType(contract.getNamespace(),
+ path.getMessageSignature().getOperation());
+ }
+
+ String varName = qname.getLocalPart()+"Var";
+
+ TVariable var=VariableUtil.getVariable(bpelModel, varName);
+
+ if (var == null) {
+ var = new TVariable();
+ var.setName(varName);
+
+ var.setMessageType(qname);
+
+ bpelModel.getVariables().getVariable().add(var);
+ }
+
+ TInvoke invoke=new TInvoke();
+ seq.getActivity().add(invoke);
+
+ // TODO: What about if multiple 'to' roles
+ TPartnerLink pl=new TPartnerLink();
+
+ pl.setPartnerRole(elem.getToRole().getName()+"Requester");
+ pl.setName(role.getName()+"To"+elem.getToRole().getName());
+
+ String plt=role.getName()+"To"+elem.getToRole().getName()+"LT";
+
+ pl.setPartnerLinkType(new QName(roleNamespace, plt));
+
+ //portType = interaction.getToRole().getName()+"PT";
+
+ if (varName != null) {
+ invoke.setInputVariable(varName);
+ }
+
+ // Create partner link
+ TPartnerLink other=
+ PartnerLinkUtil.getPartnerLink(bpelModel, pl.getName());
+ if (other == null) {
+ bpelModel.getPartnerLinks().getPartnerLink().add(pl);
+ } else {
+ if (other.getPartnerRole() == null &&
+ pl.getPartnerRole() != null) {
+ other.setPartnerRole(pl.getPartnerRole());
+ }
+ if (other.getMyRole() == null &&
+ pl.getMyRole() != null) {
+ other.setMyRole(pl.getMyRole());
+ }
+ }
+
+ String portType=null;
+
+ if (contract.getInterfaces().size() > 0) {
+ portType = contract.getInterfaces().iterator().next().getName();
+ }
+
+ invoke.setPartnerLink(pl.getName());
+ invoke.setPortType(new QName(contract.getNamespace(),portType));
+ if (path.getMessageSignature() != null) {
+ invoke.setOperation(path.getMessageSignature().getOperation());
+ }
+
+ invoke.setName(InteractionUtil.getName(path));
}
// Process the activities within the conversation
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-02
16:17:44 UTC (rev 524)
+++
branches/experimental/2.0.x/bundles/org.savara.bpel.tests/src/test/java/org/savara/bpel/generator/GeneratorTest.java 2011-01-02
21:10:02 UTC (rev 525)
@@ -38,9 +38,10 @@
public static Test suite() {
TestSuite suite = new TestSuite("Choreography->BPEL Generator
Tests");
+ suite.addTest(new ChoreographyToBPELTester("ESBBroker",
"Buyer"));
suite.addTest(new ChoreographyToBPELTester("ESBBroker",
"Broker"));
+
/*
- suite.addTest(new ChoreographyToBPELTester("ESBBroker",
"Buyer"));
suite.addTest(new ChoreographyToBPELTester("ESBBroker",
"CreditAgency"));
suite.addTest(new ChoreographyToBPELTester("ESBBroker",
"SupplierTxnProcessor"));
@@ -54,8 +55,6 @@
suite.addTest(new ChoreographyToBPELTester("ReqRespFault",
"Buyer"));
suite.addTest(new ChoreographyToBPELTester("ReqRespFault",
"Seller"));
- /*
- */
return suite;
}
Show replies by date