private String constructProjectsObjectsXmi() throws Exception { User user = AdminFactory.eINSTANCE.createUser(); user.setLogin("*****@*****.**"); List<EObject> objects = new ArrayList<EObject>(); objects.add(user); final String BRANCHES = "branches"; final String TRUNK = "trunk"; List<Project> projectsList = new ArrayList<Project>(); Project projectRef1 = AdminFactory.eINSTANCE.createProject(); projectRef1.setId(1); projectRef1.setLabel("projectRef1 id=" + projectRef1.getId()); projectRef1.setCreationDate(new Date()); projectsList.add(projectRef1); Project projectRef2 = AdminFactory.eINSTANCE.createProject(); projectRef2.setId(2); projectRef2.setLabel("projectRef2 id=" + projectRef2.getId()); projectsList.add(projectRef2); Project projectRef3 = AdminFactory.eINSTANCE.createProject(); projectRef3.setId(3); projectRef3.setLabel("projectRef3 id=" + projectRef3.getId()); projectsList.add(projectRef3); Project project1 = AdminFactory.eINSTANCE.createProject(); project1.setId(11); project1.setLabel("project1 id=" + project1.getId()); projectsList.add(project1); Project project2 = AdminFactory.eINSTANCE.createProject(); project2.setId(22); project2.setLabel("project2 id=" + project2.getId()); projectsList.add(project2); Project project3 = AdminFactory.eINSTANCE.createProject(); project3.setId(33); project3.setLabel("project3 id=" + project3.getId()); projectsList.add(project3); for (Project project : projectsList) { project.setCreationDate(new Date()); project.setAuthor(user); } List<ProjectReference> projectReferenceList = new ArrayList<ProjectReference>(); ProjectReference ref1 = AdminFactory.eINSTANCE.createProjectReference(); ref1.setProject(project1); ref1.setBranch(TRUNK); ref1.setReferencedProject(projectRef1); ref1.setReferencedBranch(BRANCHES + "/" + "myBranch1"); projectReferenceList.add(ref1); ProjectReference ref2 = AdminFactory.eINSTANCE.createProjectReference(); ref2.setProject(project1); ref2.setBranch(TRUNK); ref2.setReferencedProject(projectRef2); ref2.setReferencedBranch(BRANCHES + "/" + "myBranch2"); projectReferenceList.add(ref2); ProjectReference ref3 = AdminFactory.eINSTANCE.createProjectReference(); ref3.setProject(projectRef2); ref3.setBranch(BRANCHES + "/" + "myBranch2"); ref3.setReferencedProject(projectRef3); ref3.setReferencedBranch(BRANCHES + "/" + "myBranch3"); projectReferenceList.add(ref3); for (Project project : projectsList) { UserProjectAuthorization authorization = AdminFactory.eINSTANCE.createUserProjectAuthorization(); authorization.setType(UserProjectAuthorizationType.READ_ONLY_LITERAL); authorization.setUser(user); authorization.setProject(project); objects.add(project); objects.add(authorization); objects.add(project.getAuthor()); for (Iterator iterator = project.getReferencedProjects().iterator(); iterator.hasNext(); ) { ProjectReference projectReference = (ProjectReference) iterator.next(); if (projectReference.getReferencedProject() != null) { objects.add(projectReference); // should not add this, will be duplicated. // objects.add(projectReference.getReferencedProject()); objects.add(projectReference.getReferencedProject().getAuthor()); } } } return generateObjectsEncodedXmi(objects); }