@@ -23,7 +23,6 @@ import java.util.List; | |||
import java.util.Optional; | |||
import java.util.Set; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.util.UuidFactory; | |||
@@ -125,7 +124,7 @@ public class PortfolioDao implements Dao { | |||
/* | |||
* Portfolio references | |||
*/ | |||
public void addReference(DbSession dbSession, String portfolioUuid, String referenceUuid, @Nullable String branchUuid) { | |||
public void addReferenceBranch(DbSession dbSession, String portfolioUuid, String referenceUuid, String branchUuid) { | |||
mapper(dbSession).insertReference(uuidFactory.create(), portfolioUuid, referenceUuid, branchUuid, system2.now()); | |||
} | |||
@@ -169,6 +168,10 @@ public class PortfolioDao implements Dao { | |||
mapper(dbSession).deleteAllReferences(); | |||
} | |||
public int deleteReferenceBranch(DbSession dbSession, String portfolioUuid, String referenceUuid, String branchUuid) { | |||
return mapper(dbSession).deleteReferenceBranch(portfolioUuid, referenceUuid, branchUuid); | |||
} | |||
public int deleteReference(DbSession dbSession, String portfolioUuid, String referenceUuid) { | |||
return mapper(dbSession).deleteReference(portfolioUuid, referenceUuid); | |||
} |
@@ -44,7 +44,7 @@ public interface PortfolioMapper { | |||
void deleteReferencesByPortfolioOrReferenceUuids(@Param("uuids") Set<String> uuids); | |||
void insertReference(@Param("uuid") String uuid, @Param("portfolioUuid") String portfolioUuid, @Param("referenceUuid") String referenceUuid, | |||
@Nullable @Param("branchUuid") String branchUuid, @Param("createdAt") long createdAt); | |||
@Nullable @Param("branchUuid") String branchUuid, @Param("createdAt") long createdAt); | |||
void insertProject(@Param("uuid") String uuid, @Param("portfolioUuid") String portfolioUuid, @Param("projectUuid") String projectUuid, @Param("createdAt") long createdAt); | |||
@@ -104,4 +104,6 @@ public interface PortfolioMapper { | |||
@Param("createdAt") long createdAt); | |||
List<ProjectDto> selectAllDirectChildApplications(@Param("portfolioUuid") String portfolioUuid); | |||
int deleteReferenceBranch(@Param("portfolioUuid") String portfolioUuid, @Param("referenceUuid") String referenceUuid, @Param("branchUuid") String branchUuid); | |||
} |
@@ -233,6 +233,13 @@ | |||
AND reference_uuid = #{referenceUuid,jdbcType=VARCHAR} | |||
</delete> | |||
<delete id="deleteReferenceBranch"> | |||
DELETE FROM portfolio_references | |||
WHERE portfolio_uuid = #{portfolioUuid,jdbcType=VARCHAR} | |||
AND reference_uuid = #{referenceUuid,jdbcType=VARCHAR} | |||
AND branch_uuid = #{branchUuid,jdbcType=VARCHAR} | |||
</delete> | |||
<select id="selectReferenceToApplication" resultMap="referenceResult"> | |||
SELECT | |||
<include refid="appReferenceColumns"/> |
@@ -244,7 +244,7 @@ public class PortfolioDaoTest { | |||
portfolioDao.addReference(session, "portfolio1", "portfolio2"); | |||
portfolioDao.addReference(session, "portfolio2", "portfolio3"); | |||
portfolioDao.addReference(session, "portfolio3", app1.getUuid(), "branch1"); | |||
portfolioDao.addReferenceBranch(session, "portfolio3", app1.getUuid(), "branch1"); | |||
portfolioDao.addReference(session, "portfolio2", app1.getUuid()); | |||
assertThat(portfolioDao.selectAllReferencesToApplications(session)) | |||
@@ -481,6 +481,31 @@ public class PortfolioDaoTest { | |||
.containsOnly(tuple("portfolio2", "portfolio3")); | |||
} | |||
@Test | |||
public void deleteReferenceBranch() { | |||
PortfolioDto portfolio = db.components().insertPrivatePortfolioDto("portfolio1"); | |||
ProjectDto app = db.components().insertPrivateApplicationDto(p -> p.setDbKey("app").setName("app")); | |||
BranchDto branch1 = db.components().insertProjectBranch(app, b -> b.setExcludeFromPurge(true)); | |||
BranchDto branch2 = db.components().insertProjectBranch(app, b -> b.setExcludeFromPurge(true)); | |||
db.components().addPortfolioReference(portfolio, app.getUuid()); | |||
db.components().addPortfolioApplicationBranch(portfolio.getUuid(), app.getUuid(), branch1.getUuid()); | |||
db.components().addPortfolioApplicationBranch(portfolio.getUuid(), app.getUuid(), branch2.getUuid()); | |||
assertThat(portfolioDao.selectReferenceToApp(db.getSession(), portfolio.getUuid(), app.getKey())) | |||
.isPresent() | |||
.map(ReferenceDto::getBranchUuids) | |||
.contains(Set.of(branch1.getUuid(), branch2.getUuid())); | |||
portfolioDao.deleteReferenceBranch(db.getSession(), portfolio.getUuid(), app.getUuid(), branch1.getUuid()); | |||
assertThat(portfolioDao.selectReferenceToApp(db.getSession(), portfolio.getUuid(), app.getKey())) | |||
.isPresent() | |||
.map(ReferenceDto::getBranchUuids) | |||
.contains(Set.of(branch2.getUuid())); | |||
} | |||
@Test | |||
public void insert_and_select_projects() { | |||
PortfolioDto portfolio1 = db.components().insertPublicPortfolioDto(); |
@@ -365,7 +365,7 @@ public class ComponentDbTester { | |||
} | |||
public void addPortfolioApplicationBranch(String portfolioUuid, String applicationUuid, String branchUuid) { | |||
dbClient.portfolioDao().addReference(db.getSession(), portfolioUuid, applicationUuid, branchUuid); | |||
dbClient.portfolioDao().addReferenceBranch(db.getSession(), portfolioUuid, applicationUuid, branchUuid); | |||
db.commit(); | |||
} | |||
@@ -20,6 +20,8 @@ | |||
package org.sonar.server.ws; | |||
public class KeyExamples { | |||
public static final String KEY_APPLICATION_EXAMPLE_001 = "my_app"; | |||
public static final String KEY_FILE_EXAMPLE_001 = "my_project:/src/foo/Bar.php"; | |||
public static final String KEY_FILE_EXAMPLE_002 = "another_project:/src/foo/Foo.php"; | |||
public static final String KEY_PROJECT_EXAMPLE_001 = "my_project"; |