Package org.sonar.api.database.model

Examples of org.sonar.api.database.model.ResourceModel


      .setAnalysisType(loadAnalysisType());
    return this;
  }

  private void checkCurrentAnalysisIsTheLatestOne(String projectKey, Date analysisDate) {
    ResourceModel persistedProject = databaseSession.getSingleResult(ResourceModel.class, "key", projectKey, "enabled", true);
    if (persistedProject != null) {
      Snapshot lastSnapshot = databaseSession.getSingleResult(Snapshot.class, "resourceId", persistedProject.getId(), "last", true);
      if (lastSnapshot != null && !lastSnapshot.getCreatedAt().before(analysisDate)) {
        throw new IllegalArgumentException(
          "'sonar.projectDate' property cannot be older than the date of the last known quality snapshot on this project. Value: '" +
            settings.getString(CoreProperties.PROJECT_DATE_PROPERTY) + "'. " +
            "Latest quality snapshot: '" + DateUtils.formatDateTime(lastSnapshot.getCreatedAt())
View Full Code Here


  private Snapshot persistProject(Project project, @Nullable Project parent) {
    // temporary hack
    project.setEffectiveKey(project.getKey());

    ResourceModel model = findOrCreateModel(project, parent);
    // Used by ResourceKeyMigration in order to know that a project has already being migrated
    model.setDeprecatedKey(project.getKey());
    // language is null for project since multi-language support
    model.setLanguageKey(null);

    // For views
    if (project instanceof ResourceCopy) {
      model.setCopyResourceId(((ResourceCopy) project).getCopyResourceId());
    }

    Snapshot parentSnapshot = null;
    if (parent != null) {
      // assume that the parent project has already been saved
      parentSnapshot = snapshotsByResource.get(project.getParent());
      model.setRootId((Integer) ObjectUtils.defaultIfNull(parentSnapshot.getRootProjectId(), parentSnapshot.getResourceId()));
    } else {
      model.setRootId(null);
    }
    model = session.save(model);
    project.setId(model.getId());
    project.setUuid(model.getUuid());

    Snapshot snapshot = new Snapshot(model, parentSnapshot);
    snapshot.setVersion(project.getAnalysisVersion());
    snapshot.setCreatedAt(project.getAnalysisDate());
    snapshot.setBuildDate(new Date());
View Full Code Here

    return snapshot;
  }

  private Snapshot persistLibrary(Project project, Library library) {
    ResourceModel model = findOrCreateModel(library, null);
    model = session.save(model);
    // TODO to be removed
    library.setId(model.getId());
    library.setUuid(model.getUuid());
    library.setEffectiveKey(library.getKey());

    Snapshot snapshot = findLibrarySnapshot(model.getId(), library.getVersion());
    if (snapshot == null) {
      snapshot = new Snapshot(model, null);
      snapshot.setCreatedAt(project.getAnalysisDate());
      snapshot.setBuildDate(new Date());
      snapshot.setVersion(library.getVersion());
View Full Code Here

   * Everything except project and library
   */
  private Snapshot persistFileOrDirectory(Project project, Resource resource, @Nullable Resource parentReference) {
    Snapshot moduleSnapshot = snapshotsByResource.get(project);
    Integer moduleId = moduleSnapshot.getResourceId();
    ResourceModel model = findOrCreateModel(resource, parentReference != null ? parentReference : project);
    model.setRootId(moduleId);
    model = session.save(model);
    resource.setId(model.getId());
    resource.setUuid(model.getUuid());

    Snapshot parentSnapshot = (Snapshot) ObjectUtils.defaultIfNull(getSnapshot(parentReference), moduleSnapshot);
    Snapshot snapshot = new Snapshot(model, parentSnapshot);
    snapshot.setBuildDate(new Date());
    snapshot = session.save(snapshot);
View Full Code Here

      }
    }
  }

  private ResourceModel findOrCreateModel(Resource resource, @Nullable Resource parentResource) {
    ResourceModel model;
    try {
      model = session.getSingleResult(ResourceModel.class, "key", resource.getEffectiveKey());
      if (model == null) {
        if (StringUtils.isBlank(resource.getEffectiveKey())) {
          throw new SonarException("Unable to persist resource " + resource.toString() + ". Resource effective key is blank. This may be caused by an outdated plugin.");
View Full Code Here

      throw new SonarException("The resource '" + resource.getEffectiveKey() + "' is duplicated in database.", e);
    }
  }

  ResourceModel createModel(Resource resource, @Nullable Resource parentResource) {
    ResourceModel model = new ResourceModel();
    model.setEnabled(Boolean.TRUE);
    model.setDescription(resource.getDescription());
    model.setKey(resource.getEffectiveKey());
    model.setUuid(UUID.randomUUID().toString());
    model.setPath(resource.getPath());
    Language language = resource.getLanguage();
    if (language != null) {
      model.setLanguageKey(language.getKey());
    }
    if (StringUtils.isNotBlank(resource.getName())) {
      model.setName(resource.getName());
    } else {
      model.setName(resource.getKey());
    }
    model.setLongName(resource.getLongName());
    model.setScope(resource.getScope());
    model.setQualifier(resource.getQualifier());
    return model;
  }
View Full Code Here

    // Don't override uuids when persisting a library and a project already exists
    if (ResourceUtils.isLibrary(resource) && !Qualifiers.LIBRARY.equals(model.getQualifier())) {
      return;
    }
    if (parentResource != null) {
      ResourceModel parentModel = session.getSingleResult(ResourceModel.class, "id", parentResource.getId());
      if (parentModel.getProjectUuid() != null) {
        model.setProjectUuid(parentModel.getProjectUuid());
      } else {
        model.setProjectUuid(parentModel.getUuid());
      }
      if (Scopes.isProject(parentResource)) {
        model.setModuleUuid(parentResource.getUuid());
        String parentModuleUuidPath = parentModel.getModuleUuidPath();
        model.setModuleUuidPath(parentModuleUuidPath != null ? parentModuleUuidPath + "." + parentModel.getUuid() : parentModel.getUuid());
      } else {
        model.setModuleUuid(parentModel.getModuleUuid());
        String parentModuleUuidPath = parentModel.getModuleUuidPath();
        model.setModuleUuidPath(parentModuleUuidPath != null ? parentModuleUuidPath : parentModel.getUuid());
      }
    } else {
      // Root module && libraries
      model.setProjectUuid(model.getUuid());
    }
View Full Code Here

  private ResourceModel project;

  @Before
  public void before() throws Exception {
    service = new MeasuresDao(getSession());
    project = new ResourceModel(ResourceModel.SCOPE_PROJECT, "foo:bar", ResourceModel.QUALIFIER_PROJECT_TRUNK, null, "Foo");
    project.setName("project name");
    getSession().save(project);
  }
View Full Code Here

  private ResourceModel project1;
  private ResourceModel project2;

  @Before
  public void setup() {
    project1 = new ResourceModel(ResourceModel.SCOPE_PROJECT, "mygroup:myartifact", "JAV", null, "my name");
    project2 = new ResourceModel(ResourceModel.SCOPE_PROJECT, "mygroup:myartifact1", "JAV", null, "my name 2");
  }
View Full Code Here

  }

  @Test
  public void testGetSingleResultWithOneResult() {
    getSession().save(project1);
    ResourceModel hit = getSession().getSingleResult(ResourceModel.class, "name", "my name");
    assertNotNull(hit);
    assertEquals(project1, hit);
  }
View Full Code Here

TOP

Related Classes of org.sonar.api.database.model.ResourceModel

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.