import java.util.List;
import java.util.Locale;
import java.util.Set;
-import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.i18n.I18n;
}
public ComponentDto getByKey(String key) {
- DbSession session = dbClient.openSession(false);
- try {
- return getByKey(session, key);
- } finally {
- session.close();
- }
- }
-
- @CheckForNull
- public ComponentDto getNullableByKey(String key) {
- DbSession session = dbClient.openSession(false);
- try {
- Optional<ComponentDto> component = dbClient.componentDao().selectByKey(session, key);
- return component.orNull();
- } finally {
- session.close();
- }
- }
-
- public ComponentDto getNonNullByUuid(String uuid) {
- DbSession session = dbClient.openSession(false);
- try {
- return dbClient.componentDao().selectOrFailByUuid(session, uuid);
- } finally {
- session.close();
- }
- }
-
- public Optional<ComponentDto> getByUuid(String uuid) {
- DbSession session = dbClient.openSession(false);
- try {
- return dbClient.componentDao().selectByUuid(session, uuid);
- } finally {
- session.close();
+ try (DbSession session = dbClient.openSession(false)) {
+ return componentFinder.getByKey(session, key);
}
}
checkBranchFormat(newComponent.qualifier(), newComponent.branch());
String keyWithBranch = ComponentKeys.createKey(newComponent.key(), newComponent.branch());
- ComponentDto existingComponent = getNullableByKey(keyWithBranch);
- if (existingComponent != null) {
+ Optional<ComponentDto> existingComponent = dbClient.componentDao().selectByKey(session, keyWithBranch);
+ if (existingComponent.isPresent()) {
throw new BadRequestException(formatMessage("Could not create %s, key already exists: %s", newComponent.qualifier(), keyWithBranch));
}
session.commit();
}
- public Collection<String> componentUuids(@Nullable Collection<String> componentKeys) {
- DbSession session = dbClient.openSession(false);
- try {
- return componentUuids(session, componentKeys, false);
- } finally {
- dbClient.closeSession(session);
- }
- }
-
public Collection<String> componentUuids(DbSession session, @Nullable Collection<String> componentKeys, boolean ignoreMissingComponents) {
Collection<String> componentUuids = newArrayList();
if (componentKeys != null && !componentKeys.isEmpty()) {
return String.format(message, i18n.message(Locale.getDefault(), "qualifier." + qualifier, "Project"), key);
}
- private ComponentDto getByKey(DbSession session, String key) {
- return componentFinder.getByKey(session, key);
- }
}
import com.google.common.base.Optional;
import java.util.Arrays;
-import org.assertj.core.api.Fail;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.server.component.index.ComponentIndexer;
import org.sonar.server.es.EsTester;
import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.i18n.I18nRule;
import org.sonar.server.measure.index.ProjectMeasuresIndexDefinition;
import org.sonar.server.measure.index.ProjectMeasuresIndexer;
assertThat(underTest.getByKey(project.getKey())).isNotNull();
}
- @Test
- public void get_nullable_by_key() {
- ComponentDto project = insertSampleProject();
- assertThat(underTest.getNullableByKey(project.getKey())).isNotNull();
- assertThat(underTest.getNullableByKey("unknown")).isNull();
- }
-
- @Test
- public void get_by_uuid() {
- ComponentDto project = insertSampleProject();
- assertThat(underTest.getNonNullByUuid(project.uuid())).isNotNull();
- }
-
- @Test
- public void get_nullable_by_uuid() {
- ComponentDto project = insertSampleProject();
- assertThat(underTest.getByUuid(project.uuid())).isPresent();
- assertThat(underTest.getByUuid("unknown")).isAbsent();
- }
-
@Test
public void create_project() {
userSession.login("john").setGlobalPermissions(PROVISIONING);
.build())
.getKey();
- ComponentDto project = underTest.getNullableByKey(key);
+ ComponentDto project = dbClient.componentDao().selectOrFailByKey(dbSession, key);
assertThat(project.getOrganizationUuid()).isEqualTo(organization.getUuid());
assertThat(project.key()).isEqualTo("struts");
assertThat(project.deprecatedKey()).isEqualTo("struts");
.build())
.getKey();
- ComponentDto project = underTest.getNullableByKey(key);
+ ComponentDto project = dbClient.componentDao().selectOrFailByKey(dbSession, key);
assertThat(project.getOrganizationUuid()).isEqualTo(organization.getUuid());
assertThat(project.key()).isEqualTo("struts:origin/branch");
assertThat(project.deprecatedKey()).isEqualTo("struts:origin/branch");
.build())
.getKey();
- ComponentDto project = underTest.getNullableByKey(key);
+ ComponentDto project = dbClient.componentDao().selectOrFailByKey(dbSession, key);
assertThat(project.getOrganizationUuid()).isEqualTo(organization.getUuid());
assertThat(project.key()).isEqualTo("all-project");
assertThat(project.deprecatedKey()).isEqualTo("all-project");
.getKey();
dbTester.getSession().commit();
- ComponentDto dev = underTest.getNullableByKey(key);
+ ComponentDto dev = dbClient.componentDao().selectOrFailByKey(dbSession, key);
assertThat(dev.getOrganizationUuid()).isEqualTo(organization.getUuid());
assertThat(dev.key()).isEqualTo("DEV:jon.name@mail.com");
assertThat(dev.deprecatedKey()).isEqualTo("DEV:jon.name@mail.com");
verify(componentDao).delete(session, 3L);
}
- @Test
- public void should_return_project_uuids() {
- ComponentDto project = insertSampleProject();
- String moduleKey = "sample:root:module";
- ComponentDto module = ComponentTesting.newModuleDto(project).setKey(moduleKey);
- dbClient.componentDao().insert(dbSession, module);
- String fileKey = "sample:root:module:Foo.xoo";
- ComponentDto file = newFileDto(module, null).setKey(fileKey);
- dbClient.componentDao().insert(dbSession, file);
- dbSession.commit();
-
- assertThat(underTest.componentUuids(Arrays.asList(moduleKey, fileKey))).hasSize(2);
- assertThat(underTest.componentUuids(null)).isEmpty();
- assertThat(underTest.componentUuids(Arrays.<String>asList())).isEmpty();
- }
-
- @Test
- public void should_fail_on_components_not_found() {
- String moduleKey = "sample:root:module";
- String fileKey = "sample:root:module:Foo.xoo";
-
- try {
- underTest.componentUuids(Arrays.asList(moduleKey, fileKey));
- Fail.fail("Should throw NotFoundException");
- } catch (NotFoundException notFound) {
- assertThat(notFound.getMessage()).contains(moduleKey).contains(fileKey);
- }
- }
-
@Test
public void should_fail_silently_on_components_not_found_if_told_so() {
String moduleKey = "sample:root:module";