return mapper(session).selectAllViewsAndSubViews(Qualifiers.VIEW, Qualifiers.SUBVIEW);
}
- public List<String> selectProjectsFromView(DbSession session, String projectViewUuid, String viewUuid) {
- return mapper(session).selectProjectsFromView(projectViewUuid, "%." + viewUuid + ".%", Qualifiers.SUBVIEW);
+ public List<String> selectProjectsFromView(DbSession session, String viewUuid, String projectViewUuid) {
+ return mapper(session).selectProjectsFromView("%." + viewUuid + ".%", projectViewUuid, Qualifiers.SUBVIEW);
}
}
}
private void doIndex(DbSession dbSession, BulkIndexer bulk, String uuid, String projectUuid) {
- List<String> projects = dbClient.componentDao().selectProjectsFromView(dbSession, projectUuid, uuid);
+ List<String> projects = dbClient.componentDao().selectProjectsFromView(dbSession, uuid, projectUuid);
bulk.add(newUpsertRequest(new ViewDoc(Maps.<String, Object>newHashMap())
.setUuid(uuid)
.setProjects(projects)));
public void select_projects_from_view() {
setupData("shared_views");
- assertThat(dao.selectProjectsFromView(session, "ABCD", "ABCD")).containsExactly("BCDE");
- assertThat(dao.selectProjectsFromView(session, "EFGH", "EFGH")).containsExactly("GHIJ", "HIJK");
- assertThat(dao.selectProjectsFromView(session, "EFGH", "FGHI")).containsExactly("HIJK");
+ assertThat(dao.selectProjectsFromView(session, "ABCD", "ABCD")).containsExactly("JKLM");
+ assertThat(dao.selectProjectsFromView(session, "EFGH", "EFGH")).containsExactly("KLMN", "JKLM");
+ assertThat(dao.selectProjectsFromView(session, "FGHI", "EFGH")).containsExactly("JKLM");
assertThat(dao.selectProjectsFromView(session, "IJKL", "IJKL")).isEmpty();
assertThat(dao.selectProjectsFromView(session, "Unknown", "Unknown")).isEmpty();
}
}
});
- assertThat(viewsByUuid.get("ABCD").projects()).containsOnly("BCDE");
- assertThat(viewsByUuid.get("EFGH").projects()).containsOnly("GHIJ", "HIJK");
- assertThat(viewsByUuid.get("FGHI").projects()).containsOnly("HIJK");
+ assertThat(viewsByUuid.get("ABCD").projects()).containsOnly("JKLM");
+ assertThat(viewsByUuid.get("EFGH").projects()).containsOnly("KLMN", "JKLM");
+ assertThat(viewsByUuid.get("FGHI").projects()).containsOnly("JKLM");
assertThat(viewsByUuid.get("IJKL").projects()).isEmpty();
}
}
});
- assertThat(viewsByUuid.get("EFGH").projects()).containsOnly("GHIJ", "HIJK");
- assertThat(viewsByUuid.get("FGHI").projects()).containsOnly("HIJK");
+ assertThat(viewsByUuid.get("EFGH").projects()).containsOnly("KLMN", "JKLM");
+ assertThat(viewsByUuid.get("FGHI").projects()).containsOnly("JKLM");
}
}
kee="MASTER_PROJECT" scope="PRJ" qualifier="VW" name="All projects" path="[null]"/>
<projects id="110" uuid="BCDE" project_uuid="ABCD" module_uuid="ABCD" module_uuid_path=".ABCD." copy_resource_id="100"
- kee="MASTER_PROJECTstruts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
+ kee="MASTER_PROJECTorg.struts:struts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
<!-- View with sub view -->
<projects id="11" uuid="EFGH" project_uuid="EFGH" module_uuid="[null]" module_uuid_path="." copy_resource_id="[null]"
kee="LANGUAGE_VIEW" scope="PRJ" qualifier="VW" name="By Language" path="[null]"/>
<projects id="112" uuid="GHIJ" project_uuid="EFGH" module_uuid="EFGH" module_uuid_path=".EFGH." copy_resource_id="101"
- kee="VIEW2sslr" scope="FIL" qualifier="TRK" name="SSLR" path="[null]"/>
+ kee="VIEW2org.elasticsearch:elasticsearch" scope="FIL" qualifier="TRK" name="SSLR" path="[null]"/>
<!-- Sub view -->
<projects id="13" uuid="FGHI" project_uuid="EFGH" module_uuid="EFGH" module_uuid_path=".EFGH." copy_resource_id="[null]"
kee="JAVA_PROJECTS" scope="PRJ" qualifier="SVW" name="Java projects" path="[null]"/>
<projects id="113" uuid="HIJK" project_uuid="EFGH" module_uuid="FGHI" module_uuid_path=".EFGH.FGHI." copy_resource_id="100"
- kee="VIEW2struts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
+ kee="VIEW2org.struts:struts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
<!-- View without project -->
<projects id="14" uuid="IJKL" project_uuid="IJKL" module_uuid="[null]" module_uuid_path="." copy_resource_id="[null]"
kee="OTHER" scope="PRJ" qualifier="VW" name="Other projects" path="[null]"/>
+ <!-- Real projects -->
+
+ <projects id="100" root_id="[null]" scope="PRJ" qualifier="TRK" kee="org.struts:struts" deprecated_kee="org.struts:struts" name="Struts"
+ uuid="JKLM" project_uuid="JKLM" module_uuid="[null]" module_uuid_path="."
+ description="the description" long_name="Apache Struts"
+ enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]" path="[null]" authorization_updated_at="123456789"/>
+
+ <projects id="101" root_id="[null]" scope="PRJ" qualifier="TRK" kee="org.elasticsearch:elasticsearch" deprecated_kee="org.elasticsearch:elasticsearch" name="Elasticsearch"
+ uuid="KLMN" project_uuid="KLMN" module_uuid="[null]" module_uuid_path="."
+ description="the description" long_name="Elasticsearch"
+ enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]" path="[null]" authorization_updated_at="123456789"/>
+
</dataset>
kee="MASTER_PROJECT" scope="PRJ" qualifier="VW" name="All projects" path="[null]"/>
<projects id="110" uuid="BCDE" project_uuid="ABCD" module_uuid="ABCD" module_uuid_path=".ABCD." copy_resource_id="100"
- kee="MASTER_PROJECTstruts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
+ kee="MASTER_PROJECTorg.struts:struts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
<!-- View with sub view -->
<projects id="11" uuid="EFGH" project_uuid="EFGH" module_uuid="[null]" module_uuid_path="." copy_resource_id="[null]"
kee="LANGUAGE_VIEW" scope="PRJ" qualifier="VW" name="By Language" path="[null]"/>
<projects id="112" uuid="GHIJ" project_uuid="EFGH" module_uuid="EFGH" module_uuid_path=".EFGH." copy_resource_id="101"
- kee="VIEW2sslr" scope="FIL" qualifier="TRK" name="SSLR" path="[null]"/>
+ kee="VIEW2org.elasticsearch:elasticsearch" scope="FIL" qualifier="TRK" name="SSLR" path="[null]"/>
<!-- Sub view -->
<projects id="13" uuid="FGHI" project_uuid="EFGH" module_uuid="EFGH" module_uuid_path=".EFGH." copy_resource_id="[null]"
kee="JAVA_PROJECTS" scope="PRJ" qualifier="SVW" name="Java projects" path="[null]"/>
<projects id="113" uuid="HIJK" project_uuid="EFGH" module_uuid="FGHI" module_uuid_path=".EFGH.FGHI." copy_resource_id="100"
- kee="VIEW2struts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
+ kee="VIEW2org.struts:struts" scope="FIL" qualifier="TRK" name="Struts" path="[null]"/>
<!-- View without project -->
<projects id="14" uuid="IJKL" project_uuid="IJKL" module_uuid="[null]" module_uuid_path="." copy_resource_id="[null]"
kee="OTHER" scope="PRJ" qualifier="VW" name="Other projects" path="[null]"/>
+ <!-- Real projects -->
+
+ <projects id="100" root_id="[null]" scope="PRJ" qualifier="TRK" kee="org.struts:struts" deprecated_kee="org.struts:struts" name="Struts"
+ uuid="JKLM" project_uuid="JKLM" module_uuid="[null]" module_uuid_path="."
+ description="the description" long_name="Apache Struts"
+ enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]" path="[null]" authorization_updated_at="123456789"/>
+
+ <projects id="101" root_id="[null]" scope="PRJ" qualifier="TRK" kee="org.elasticsearch:elasticsearch" deprecated_kee="org.elasticsearch:elasticsearch" name="Elasticsearch"
+ uuid="KLMN" project_uuid="KLMN" module_uuid="[null]" module_uuid_path="."
+ description="the description" long_name="Elasticsearch"
+ enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]" path="[null]" authorization_updated_at="123456789"/>
+
</dataset>
/**
* Return technical projects from a view or a sub-view
*/
- List<String> selectProjectsFromView(@Param("projectViewUuid") String projectViewUuid, @Param("viewUuidLikeQuery") String viewUuidLikeQuery,
+ List<String> selectProjectsFromView(@Param("viewUuidLikeQuery") String viewUuidLikeQuery, @Param("projectViewUuid") String projectViewUuid,
@Param("subViewQualifier") String subViewQualifier);
long countById(long id);
</select>
<select id="selectProjectsFromView" resultType="String">
- SELECT p.uuid FROM projects p
+ SELECT p.uuid FROM projects technical_projects
+ INNER JOIN projects p on p.id=technical_projects.copy_resource_id AND p.enabled=${_true}
<where>
- p.enabled=${_true} AND p.project_uuid=#{projectViewUuid} AND p.qualifier<>#{subViewQualifier}
- AND p.module_uuid_path LIKE #{viewUuidLikeQuery}
+ technical_projects.enabled=${_true} AND technical_projects.project_uuid=#{projectViewUuid}
+ AND technical_projects.module_uuid_path LIKE #{viewUuidLikeQuery}
</where>
</select>