Package org.eclipse.orion.server.core.metastore

Examples of org.eclipse.orion.server.core.metastore.ProjectInfo


    workspaceInfo.setUserId(userInfo.getUniqueId());
    metaStore.createWorkspace(workspaceInfo);

    // create the first project
    String projectName = "Project";
    ProjectInfo projectInfo1 = new ProjectInfo();
    projectInfo1.setFullName(projectName);
    projectInfo1.setWorkspaceId(workspaceInfo.getUniqueId());
    IFileStore projectFolder = metaStore.getDefaultContentLocation(projectInfo1);
    assertFalse(projectFolder.fetchInfo().exists());
    projectInfo1.setContentLocation(projectFolder.toURI());
    metaStore.createProject(projectInfo1);
    assertTrue(projectFolder.fetchInfo().exists());

    // read the workspace
    WorkspaceInfo readWorkspaceInfo = metaStore.readWorkspace(workspaceInfo.getUniqueId());
    assertNotNull(readWorkspaceInfo);
    assertEquals(readWorkspaceInfo.getFullName(), workspaceInfo.getFullName());
    assertEquals(1, readWorkspaceInfo.getProjectNames().size());
    assertTrue(readWorkspaceInfo.getProjectNames().contains(projectInfo1.getFullName()));
    assertTrue(readWorkspaceInfo.getProjectNames().contains(projectName));

    // create the first again project
    ProjectInfo projectInfo2 = new ProjectInfo();
    projectInfo2.setFullName(projectName);
    projectInfo2.setWorkspaceId(workspaceInfo.getUniqueId());
    IFileStore projectFolder2 = metaStore.getDefaultContentLocation(projectInfo2);
    projectInfo2.setContentLocation(projectFolder2.toURI());
    try {
      metaStore.createProject(projectInfo1);
    } catch (RuntimeException e) {
      // we expect to get a runtime exception here
      String message = e.getMessage();
View Full Code Here


    // create the project with Emoji characters in the project name.
    // U+1F60A: SMILING FACE WITH SMILING EYES ("\ud83d\ude0a")
    // U+1F431: CAT FACE ("\ud83d\udc31")
    // U+1F435: MONKEY FACE ("\ud83d\udc35")
    String projectName = "Project \ud83d\ude0a\ud83d\udc31\ud83d\udc35";
    ProjectInfo projectInfo = new ProjectInfo();
    projectInfo.setFullName(projectName);
    try {
      projectInfo.setContentLocation(new URI("file:/home/anthony/orion/project"));
    } catch (URISyntaxException e) {
      // should not get an exception here, simple URI
    }
    projectInfo.setWorkspaceId(workspaceInfo.getUniqueId());
    metaStore.createProject(projectInfo);

    // read the project
    ProjectInfo readProjectInfo = metaStore.readProject(workspaceInfo.getUniqueId(), projectInfo.getFullName());
    assertNotNull(readProjectInfo);
    assertEquals(projectName, readProjectInfo.getFullName());
    assertEquals(readProjectInfo.getFullName(), projectInfo.getFullName());
  }
View Full Code Here

    // create the MetaStore
    IMetaStore metaStore = OrionConfiguration.getMetaStore();

    // create the project, do not specify a workspace id
    String projectName = "Orion Project";
    ProjectInfo projectInfo = new ProjectInfo();
    projectInfo.setFullName(projectName);
    try {
      projectInfo.setContentLocation(new URI("file:/home/anthony/orion/project"));
    } catch (URISyntaxException e) {
      // should not get an exception here, simple URI
    }
    try {
      metaStore.createProject(projectInfo);
View Full Code Here

    workspaceInfo.setUserId(userInfo.getUniqueId());
    metaStore.createWorkspace(workspaceInfo);

    // create the project, specify a URL as the name, which is not a valid project name.
    String badProjectName = "http://orion.eclipse.org/";
    ProjectInfo projectInfo = new ProjectInfo();
    projectInfo.setFullName(badProjectName);
    try {
      projectInfo.setContentLocation(new URI("file:/home/anthony/orion/project"));
    } catch (URISyntaxException e) {
      // should not get an exception here, simple URI
    }
    projectInfo.setWorkspaceId(workspaceInfo.getUniqueId());
    try {
      metaStore.createProject(projectInfo);
    } catch (CoreException e) {
      // we expect to get a core exception here
      String message = e.getMessage();
View Full Code Here

    workspaceInfo.setUserId(userInfo.getUniqueId());
    metaStore.createWorkspace(workspaceInfo);

    // create the project
    String projectName = "Orion Project";
    ProjectInfo projectInfo = new ProjectInfo();
    projectInfo.setFullName(projectName);
    try {
      projectInfo.setContentLocation(new URI("file:/home/anthony/orion/project"));
    } catch (URISyntaxException e) {
      // should not get an exception here, simple URI
    }
    projectInfo.setWorkspaceId(workspaceInfo.getUniqueId());
    metaStore.createProject(projectInfo);

    IFileStore defaultLocation = metaStore.getDefaultContentLocation(projectInfo);
    // Test that the project is linked
    assertFalse(defaultLocation == projectInfo.getProjectStore());
    // Test that no content folder is created
    assertFalse(defaultLocation.fetchInfo().exists());
  }
View Full Code Here

    workspaceInfo.setUserId(userInfo.getUniqueId());
    metaStore.createWorkspace(workspaceInfo);

    // create the project
    String projectName1 = "Orion Project";
    ProjectInfo projectInfo1 = new ProjectInfo();
    projectInfo1.setFullName(projectName1);
    try {
      projectInfo1.setContentLocation(new URI("file://root/folder/orion"));
    } catch (URISyntaxException e) {
      // should not get an exception here, simple URI
    }
    projectInfo1.setWorkspaceId(workspaceInfo.getUniqueId());
    metaStore.createProject(projectInfo1);

    // create another project
    String projectName2 = "Another Project";
    ProjectInfo projectInfo2 = new ProjectInfo();
    projectInfo2.setFullName(projectName2);
    try {
      projectInfo2.setContentLocation(new URI("file://root/folder/another"));
    } catch (URISyntaxException e) {
      // should not get an exception here, simple URI
    }
    projectInfo2.setWorkspaceId(workspaceInfo.getUniqueId());
    metaStore.createProject(projectInfo2);

    // delete the first project
    metaStore.deleteProject(workspaceInfo.getUniqueId(), projectInfo1.getFullName());

    // read the workspace
    WorkspaceInfo readWorkspaceInfo = metaStore.readWorkspace(workspaceInfo.getUniqueId());
    assertNotNull(readWorkspaceInfo);
    assertEquals(readWorkspaceInfo.getFullName(), workspaceInfo.getFullName());
    assertFalse(readWorkspaceInfo.getProjectNames().contains(projectInfo1.getFullName()));
    assertTrue(readWorkspaceInfo.getProjectNames().contains(projectInfo2.getFullName()));
  }
View Full Code Here

    workspaceInfo.setUserId(userInfo.getUniqueId());
    metaStore.createWorkspace(workspaceInfo);

    // create the project
    String projectName = "Orion Project";
    ProjectInfo projectInfo = new ProjectInfo();
    projectInfo.setFullName(projectName);
    projectInfo.setWorkspaceId(workspaceInfo.getUniqueId());
    IFileStore projectFolder = metaStore.getDefaultContentLocation(projectInfo);
    assertFalse(projectFolder.fetchInfo().exists());
    projectFolder.mkdir(EFS.NONE, null);
    assertTrue(projectFolder.fetchInfo().exists() && projectFolder.fetchInfo().isDirectory());
    projectInfo.setContentLocation(projectFolder.toURI());
    metaStore.createProject(projectInfo);

    // read the project
    ProjectInfo readProjectInfo = metaStore.readProject(workspaceInfo.getUniqueId(), projectInfo.getFullName());
    assertNotNull(readProjectInfo);
    assertEquals(readProjectInfo.getFullName(), projectInfo.getFullName());
    // ensure content location was written and read back successfully
    assertEquals(projectInfo.getContentLocation(), readProjectInfo.getContentLocation());
  }
View Full Code Here

    //tests that creating multiple projects will create unique ids
    WorkspaceInfo workspace = createWorkspace();
    IMetaStore metaStore = getMetaStore();
    List<String> ids = new ArrayList<String>();
    for (int i = 0; i < 100; i++) {
      ProjectInfo projectInfo = new ProjectInfo();
      projectInfo.setFullName("Project " + i);
      projectInfo.setWorkspaceId(workspace.getUniqueId());
      IFileStore fileStore = metaStore.getDefaultContentLocation(projectInfo);
      projectInfo.setContentLocation(fileStore.toURI());
      metaStore.createProject(projectInfo);
      String projectId = projectInfo.getUniqueId();
      final java.io.File currentProject = new java.io.File(projectId);
      for (String id : ids) {
        //tests that project id is unique based on current file system case sensitivity
        assertTrue(new java.io.File(id).compareTo(currentProject) != 0);
      }
View Full Code Here

    }
    if (!validateCloneName(cloneName, request, response))
      return true;

    // prepare the WebClone object, create a new project if necessary
    ProjectInfo project = null;
    boolean webProjectExists = false;
    if (filePath != null) {
      // path format is /file/{workspaceId}/{projectName}/[filePath]
      clone.setId(filePath.toString());
      project = GitUtils.projectFromPath(filePath);
      // workspace path format needs to be used if project does not exist
      if (project == null) {
        String msg = NLS.bind("Specified project does not exist: {0}", filePath.segment(2));
        return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_BAD_REQUEST, msg, null));
      }
      webProjectExists = true;
      clone.setContentLocation(project.getProjectStore().getFileStore(filePath.removeFirstSegments(3)).toURI());
      if (cloneName == null)
        cloneName = filePath.segmentCount() > 2 ? filePath.lastSegment() : project.getFullName();
    } else if (workspacePath != null) {
      IPath path = new Path(workspacePath);
      // TODO: move this to CloneJob
      // if so, modify init part to create a new project if necessary
      final IMetaStore metaStore = OrionConfiguration.getMetaStore();
      WorkspaceInfo workspace = metaStore.readWorkspace(path.segment(1));
      if (cloneName == null)
        cloneName = new URIish(url).getHumanishName();
      cloneName = getUniqueProjectName(workspace, cloneName);
      webProjectExists = false;
      project = new ProjectInfo();
      project.setFullName(cloneName);
      project.setWorkspaceId(workspace.getUniqueId());

      try {
        // creating project in the backing store will assign a project id
        metaStore.createProject(project);
      } catch (CoreException e) {
        return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
            "Error persisting project state", e));
      }
      try {
        WorkspaceResourceHandler.computeProjectLocation(request, project, null, false);
        metaStore.updateProject(project);
      } catch (CoreException e) {
        // delete the project so we don't end up with a project in a bad location
        try {
          metaStore.deleteProject(workspace.getUniqueId(), project.getFullName());
        } catch (CoreException e1) {
          // swallow secondary error
          LogHelper.log(e1);
        }
        // we are unable to write in the platform location!
        String msg = NLS.bind("Failed to create project: {0}", project.getFullName());
        return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, msg, e));
      }

      URI baseLocation = getURI(request);
      baseLocation = new URI(baseLocation.getScheme(), baseLocation.getUserInfo(), baseLocation.getHost(), baseLocation.getPort(), workspacePath,
          baseLocation.getQuery(), baseLocation.getFragment());
      clone.setId(GitUtils.pathFromProject(workspace, project).toString());
      clone.setContentLocation(project.getProjectStore().toURI());
    }
    clone.setName(cloneName);
    clone.setBaseLocation(getURI(request));
    JSONObject cloneObject = clone.toJSON();
    String cloneLocation = cloneObject.getString(ProtocolConstants.KEY_LOCATION);
View Full Code Here

      WorkspaceInfo workspace = OrionConfiguration.getMetaStore().readWorkspace(path.segment(1));
      if (workspace != null) {
        JSONObject result = new JSONObject();
        JSONArray children = new JSONArray();
        for (String projectName : workspace.getProjectNames()) {
          ProjectInfo project = OrionConfiguration.getMetaStore().readProject(workspace.getUniqueId(), projectName);
          // this is the location of the project metadata
          if (isAccessAllowed(user, project)) {
            IPath projectPath = GitUtils.pathFromProject(workspace, project);
            Map<IPath, File> gitDirs = GitUtils.getGitDirs(projectPath, Traverse.GO_DOWN);
            for (Map.Entry<IPath, File> entry : gitDirs.entrySet()) {
              children.put(new Clone().toJSON(entry.getKey(), baseLocation, getCloneUrl(entry.getValue())));
            }
          }
        }
        result.put(ProtocolConstants.KEY_TYPE, Clone.TYPE);
        result.put(ProtocolConstants.KEY_CHILDREN, children);
        OrionServlet.writeJSONResponse(request, response, result, JsonURIUnqualificationStrategy.ALL_NO_GIT);
        return true;
      }
      String msg = NLS.bind("Nothing found for the given ID: {0}", EncodingUtils.encodeForHTML(path.toString()));
      return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_NOT_FOUND, msg, null));
    } else if ("file".equals(path.segment(0)) && path.segmentCount() > 1) { //$NON-NLS-1$
      // clones under given path
      ProjectInfo webProject = GitUtils.projectFromPath(path);
      IPath projectRelativePath = path.removeFirstSegments(3);
      if (webProject != null && isAccessAllowed(user, webProject) && webProject.getProjectStore().getFileStore(projectRelativePath).fetchInfo().exists()) {
        Map<IPath, File> gitDirs = GitUtils.getGitDirs(path, Traverse.GO_DOWN);
        JSONObject result = new JSONObject();
        JSONArray children = new JSONArray();
        for (Map.Entry<IPath, File> entry : gitDirs.entrySet()) {
          children.put(new Clone().toJSON(entry.getKey(), baseLocation, getCloneUrl(entry.getValue())));
View Full Code Here

TOP

Related Classes of org.eclipse.orion.server.core.metastore.ProjectInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.