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 1643)
+++ trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java	(revision 1752)
@@ -24,15 +24,19 @@
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.uml2.uml.Association;
-import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Component;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
 import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Interaction;
 import org.eclipse.uml2.uml.InteractionFragment;
+import org.eclipse.uml2.uml.Interface;
 import org.eclipse.uml2.uml.Lifeline;
 import org.eclipse.uml2.uml.Message;
 import org.eclipse.uml2.uml.MessageOccurrenceSpecification;
+import org.eclipse.uml2.uml.MessageSort;
 import org.eclipse.uml2.uml.Model;
 import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
 import org.eclipse.uml2.uml.Region;
 import org.eclipse.uml2.uml.StateMachine;
@@ -258,10 +262,11 @@
                                                           String interactionName)
     {
-        Map<String, Class> classMap = new HashMap<>();
+        Map<String, Interface> interfaceMap = new HashMap<>();
+        Map<String, Port> portMap = new HashMap<>();
 
         EList<Element> elements = model.getOwnedElements();
         for (Element element : elements) {
-            if (element instanceof Class) {
-                classMap.put(((Class) element).getName(), (Class) element);
+            if (element instanceof Interface) {
+                interfaceMap.put(((Interface) element).getName(), (Interface) element);
             }
         }
@@ -272,5 +277,11 @@
 
         Lifeline userLifeline = interaction.createLifeline("user");
-
+        
+        Component testContext = (Component) model.getPackagedElement("TestContext", true, UMLPackage.Literals.COMPONENT, true);
+        userLifeline.setRepresents(testContext.getAttribute("user", null));
+        
+        Component userComponent = (Component) model.getPackagedElement("User", true, UMLPackage.Literals.COMPONENT, true);
+        Port userPort = (Port) userComponent.getAttribute("p_user_rlus", null);
+        
         int i = 0;
         for (Event event : sequence) {
@@ -279,8 +290,8 @@
                 String methodName = getCalledMethodFromEvent(event);
 
-                Class targetClass = classMap.get(serviceName);
-                if (targetClass == null) {
+                Interface targetInterface = interfaceMap.get(serviceName);
+                if (targetInterface == null) {
                     throw new RuntimeException(
-                                               "Could not find class in the UML model that belong to the service: " +
+                                               "Could not find interface in the UML model that belong to the service: " +
                                                    serviceName);
                 }
@@ -289,11 +300,10 @@
                 if (targetLifeline == null) {
                     targetLifeline = interaction.createLifeline(serviceName);
-                    Association association =
-                        (Association) model.getPackagedElement("user_" + serviceName, true,
-                                                               UMLPackage.Literals.ASSOCIATION,
-                                                               true);
-                    targetLifeline
-                        .setRepresents(association.getMemberEnd(serviceName,
-                                                                classMap.get(serviceName)));
+                    
+                    
+                    targetLifeline.setRepresents(testContext.getAttribute(serviceName+"_property", null));
+
+                    Component component = (Component) model.getPackagedElement(serviceName, true, UMLPackage.Literals.COMPONENT, true);
+                    portMap.put(serviceName, (Port) component.getAttribute("p_" + serviceName, null));
                 }
                 MessageOccurrenceSpecification sendFragment =
@@ -310,8 +320,25 @@
 
                 Message message = interaction.createMessage(methodName);
-                message.setSignature(getOperationFromName(targetClass.getOperations(), methodName));
+                if( getOperationFromName(targetInterface.getOperations(), methodName)==null ) {
+                    System.out.println("operation not found: " + methodName);
+                }
+                message.setSignature(getOperationFromName(targetInterface.getOperations(), methodName));
+                message.setMessageSort(MessageSort.ASYNCH_CALL_LITERAL);
                 message.setSendEvent(sendFragment);
                 message.setReceiveEvent(recvFragment);
-
+                                
+                EList<ConnectorEnd> sourceEnds = userPort.getEnds();
+                EList<ConnectorEnd> targetEnds = portMap.get(serviceName).getEnds();
+                
+                for( ConnectorEnd sourceEnd : sourceEnds ) {
+                    Connector sourceConnector = (Connector) sourceEnd.eContainer();
+                    for( ConnectorEnd targetEnd : targetEnds ) {
+                        Connector targetConnector =  (Connector) targetEnd.eContainer();
+                        if( targetConnector==sourceConnector ) {
+                            message.setConnector(targetConnector);
+                        }
+                    }
+                }               
+                
                 sendFragment.setMessage(message);
                 recvFragment.setMessage(message);
