3333import static com .microsoft .azure .toolkit .intellij .common .AzureArtifactType .File ;
3434
3535public class AzureArtifactManager {
36- private static Map <Project , AzureArtifactManager > projectAzureArtifactManagerMap = new HashMap <>();
36+ private static final Map <Project , AzureArtifactManager > projectAzureArtifactManagerMap = new HashMap <>();
3737 private final Project project ;
3838
3939 private AzureArtifactManager (Project project ) {
@@ -116,10 +116,15 @@ public String getPackaging(AzureArtifact artifact) {
116116 }
117117 }
118118
119- public boolean equalsAzureArtifactIdentifier (AzureArtifact artifact1 , AzureArtifact artifact2 ) {
119+ public boolean equalsAzureArtifact (AzureArtifact artifact1 , AzureArtifact artifact2 ) {
120120 if (Objects .isNull (artifact1 ) || Objects .isNull (artifact2 )) {
121121 return artifact1 == artifact2 ;
122122 }
123+ if (artifact1 .getType () != artifact2 .getType ()) {
124+ // Artifact with different type may have same identifier, for instance, File and Artifact, both of them use file path as identifier
125+ // todo: re-design identifier, make it include the artifact type info
126+ return false ;
127+ }
123128 return StringUtils .equals (getArtifactIdentifier (artifact1 ), getArtifactIdentifier (artifact2 ));
124129 }
125130
@@ -146,34 +151,28 @@ public Module getModuleFromAzureArtifact(AzureArtifact azureArtifact) {
146151 }
147152
148153 private String getGradleProjectId (ExternalProjectPojo gradleProjectPojo ) {
149- ExternalProject externalProject = getRelatedExternalProject (gradleProjectPojo );
154+ final ExternalProject externalProject = getRelatedExternalProject (gradleProjectPojo );
150155 return Objects .nonNull (externalProject ) ? externalProject .getQName () : null ;
151156 }
152157
153158 private ExternalProject getRelatedExternalProject (ExternalProjectPojo gradleProjectPojo ) {
154- ExternalProject externalProject =
155- ExternalProjectDataCache .getInstance (project ).getRootExternalProject (gradleProjectPojo .getPath ());
156- return externalProject ;
159+ return ExternalProjectDataCache .getInstance (project ).getRootExternalProject (gradleProjectPojo .getPath ());
157160 }
158161
159162 private List <AzureArtifact > prepareAzureArtifacts (Predicate <String > packagingFilter ) {
160- List <AzureArtifact > azureArtifacts = new ArrayList <>();
161- List <ExternalProjectPojo > gradleProjects = GradleUtils .listGradleProjects (project );
163+ final List <AzureArtifact > azureArtifacts = new ArrayList <>();
164+ final List <ExternalProjectPojo > gradleProjects = GradleUtils .listGradleProjects (project );
162165 if (Objects .nonNull (gradleProjects )) {
163166 azureArtifacts .addAll (gradleProjects .stream ()
164167 .map (AzureArtifact ::createFromGradleProject )
165168 .collect (Collectors .toList ()));
166169 }
167- List <MavenProject > mavenProjects = MavenProjectsManager .getInstance (project ).getProjects ();
168- if (Objects .nonNull (mavenProjects )) {
169- azureArtifacts .addAll (
170- mavenProjects .stream ().map (AzureArtifact ::createFromMavenProject ).collect (Collectors .toList ()));
171- }
172- List <Artifact > artifactList = MavenRunTaskUtil .collectProjectArtifact (project );
173- if (Objects .nonNull (artifactList )) {
174- azureArtifacts .addAll (
175- artifactList .stream ().map (AzureArtifact ::createFromArtifact ).collect (Collectors .toList ()));
176- }
170+ final List <MavenProject > mavenProjects = MavenProjectsManager .getInstance (project ).getProjects ();
171+ azureArtifacts .addAll (mavenProjects .stream ().map (AzureArtifact ::createFromMavenProject ).collect (Collectors .toList ()));
172+
173+ final List <Artifact > artifactList = MavenRunTaskUtil .collectProjectArtifact (project );
174+ azureArtifacts .addAll (artifactList .stream ().map (AzureArtifact ::createFromArtifact ).collect (Collectors .toList ()));
175+
177176 if (packagingFilter == null ) {
178177 return azureArtifacts ;
179178 }
0 commit comments