Index: trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java
===================================================================
--- trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java	(revision 1995)
+++ trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java	(revision 1998)
@@ -26,7 +26,7 @@
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.logging.Level;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.logging.Level;
 
 import org.eclipse.emf.common.util.EList;
@@ -59,4 +59,5 @@
 import org.eclipse.uml2.uml.MessageSort;
 import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.Operation;
 import org.eclipse.uml2.uml.Package;
@@ -73,8 +74,8 @@
 import org.eclipse.uml2.uml.Trigger;
 import org.eclipse.uml2.uml.UMLPackage;
-import org.eclipse.uml2.uml.ValueSpecification;
 import org.eclipse.uml2.uml.Vertex;
 
 import de.ugoe.cs.autoquest.eventcore.Event;
+import de.ugoe.cs.autoquest.eventcore.EventUtils;
 import de.ugoe.cs.autoquest.plugin.http.SOAPUtils;
 import de.ugoe.cs.autoquest.plugin.http.eventcore.SOAPEventType;
@@ -559,5 +560,5 @@
                     Message callMessage = interaction.createMessage(prefix + "call");
                     callMessage.setSignature(calledOperation);
-                    setCallMessageParameters(callMessage, calledOperation, event,
+                    setMessageParameters(callMessage, calledOperation, event,
                                              useRandomRequestBodies, prefix);
                     callMessage.setConnector(connector);
@@ -610,5 +611,6 @@
                     replyMessage.setMessageSort(MessageSort.REPLY_LITERAL);
                     replyMessage.setSignature(calledOperation);
-                    setReplyMessageParameters(replyMessage, calledOperation);
+                    //setReplyMessageParameters(replyMessage, calledOperation);
+                    setMessageParameters(replyMessage, calledOperation, event, useRandomRequestBodies, prefix);
                     replyMessage.setConnector(connector);
                     replyMessage.setSendEvent(replySendFragment);
@@ -647,16 +649,30 @@
                 Message message =
                     ((MessageOccurrenceSpecification) interactionFragment).getMessage();
-                if (message.getReceiveEvent().equals(interactionFragment) && isCallMessage(message))
+                //if (message.getReceiveEvent().equals(interactionFragment) && isCallMessage(message))
+                if (message.getReceiveEvent().equals(interactionFragment))
                 {
-                    String clientName =
-                        ((MessageOccurrenceSpecification) message.getSendEvent()).getCovereds()
-                            .get(0).getName();
-                    String serviceName =
-                        ((MessageOccurrenceSpecification) message.getReceiveEvent()).getCovereds()
-                            .get(0).getName();
+                    String clientName;
+                    String serviceName;
                     String methodName = message.getSignature().getName();
-                    // TODO must be updated
+                    CallType callType;
+                    if( isCallMessage(message) ) {
+                        clientName =
+                                ((MessageOccurrenceSpecification) message.getSendEvent()).getCovereds()
+                                    .get(0).getName();
+                        serviceName =
+                                ((MessageOccurrenceSpecification) message.getReceiveEvent()).getCovereds()
+                                    .get(0).getName();
+                        callType = CallType.REQUEST;
+                    } else {
+                        clientName =
+                                ((MessageOccurrenceSpecification) message.getReceiveEvent()).getCovereds()
+                                    .get(0).getName();
+                        serviceName =
+                                ((MessageOccurrenceSpecification) message.getSendEvent()).getCovereds()
+                                    .get(0).getName();
+                        callType = CallType.RESPONSE;
+                    }
                     eventSequence.add(new Event(new SimpleSOAPEventType(methodName, serviceName,
-                                                                        clientName, null, null, null)));
+                                                                        clientName, null, null, callType)));
                 }
             }
@@ -838,5 +854,5 @@
         Set<Interface> interfaces = new HashSet<>();
         // Interface myInterface = null;
-        for (Property property : component.getAttributes()) {
+        for (Property property : component.getAllAttributes()) {
             if (property instanceof Port) {
                 Port port = (Port) property;
@@ -1035,5 +1051,5 @@
      * </p>
      * 
-     * @param callMessage
+     * @param message
      *            call message for which the parameters are set
      * @param calledOperation
@@ -1041,17 +1057,23 @@
      * @param event
      *            event that provides the parameters; in case of null, default values are assumed
-     * @param useRandomRequestBodies
+     * @param useRandomMsgBodies
      *            defines is random request bodies are used or the body of the associated event
      * @param prefix
      *            prefix of the call message; used to create good warnings and debugging information
      */
-    private static void setCallMessageParameters(Message callMessage,
+    private static void setMessageParameters(Message message,
                                                  Operation calledOperation,
                                                  Event event,
-                                                 boolean useRandomRequestBodies,
+                                                 boolean useRandomMsgBodies,
                                                  String prefix)
     {
-        org.w3c.dom.Element requestBody =
-            SOAPUtils.getSoapBodyFromEvent(event, useRandomRequestBodies, CallType.REQUEST);
+        org.w3c.dom.Element requestBody;
+        if(SOAPUtils.isSOAPRequest(event)) {
+            requestBody =
+                SOAPUtils.getSoapBodyFromEvent(event, useRandomMsgBodies, CallType.REQUEST);
+        } else {
+            requestBody =
+                SOAPUtils.getSoapBodyFromEvent(event, useRandomMsgBodies, CallType.RESPONSE);
+        }
         Package instSpecPkg = null;
 
@@ -1087,5 +1109,5 @@
             if (instSpecPkg == null) {
                 instSpecPkg =
-                    getOrCreateInstanceSpecificationPackage(callMessage.getModel(), event);
+                    getOrCreateInstanceSpecificationPackage(message.getModel(), event);
             }
 
@@ -1096,5 +1118,6 @@
             // (Expression) callMessage.createArgument(param.getName(), param.getType(),
             // UMLPackage.Literals.EXPRESSION);
-            if (isInParameter(param)) {
+            if ( (isInParameter(param) && SOAPUtils.isSOAPRequest(event)) ||
+                 (!isInParameter(param) && SOAPUtils.isSOAPResponse(event))) {
 
                 // create parameters node
@@ -1113,5 +1136,5 @@
                 // parametersValue.setInstance(instSpecParameters);
                 InstanceValue instanceValue =
-                    (InstanceValue) callMessage.createArgument(param.getName(), param.getType(),
+                    (InstanceValue) message.createArgument(param.getName(), param.getType(),
                                                                UMLPackage.Literals.INSTANCE_VALUE);
                 instanceValue.setInstance(instSpecParameters);
@@ -1173,5 +1196,5 @@
                 // set literalNull for out and return parameters
                 // argument.createOperand(null, param.getType(), UMLPackage.Literals.LITERAL_NULL);
-                callMessage.createArgument(param.getName(), param.getType(),
+                message.createArgument(param.getName(), param.getType(),
                                            UMLPackage.Literals.LITERAL_NULL);
             }
