Skip to content

Commit 6ee2ada

Browse files
filter out non-jar artifacts when deploying to ASA.
1 parent 97b774e commit 6ee2ada

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-lib-java/src/main/java/com/microsoft/azure/toolkit/intellij/common/AzureArtifactComboBox.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
1212
import com.intellij.openapi.keymap.KeymapUtil;
1313
import com.intellij.openapi.project.Project;
14-
import com.intellij.openapi.util.Condition;
1514
import com.intellij.openapi.vfs.VirtualFile;
1615
import com.intellij.ui.ColoredListCellRenderer;
1716
import com.intellij.ui.SimpleTextAttributes;
@@ -33,11 +32,16 @@
3332
import java.util.List;
3433
import java.util.Objects;
3534
import java.util.Optional;
35+
import java.util.function.Predicate;
36+
import java.util.stream.Collectors;
3637

3738
public class AzureArtifactComboBox extends AzureComboBox<AzureArtifact> {
3839
private final Project project;
3940
private final boolean fileArtifactOnly;
40-
private Condition<? super VirtualFile> fileFilter;
41+
@Nonnull
42+
private Predicate<? super VirtualFile> fileFilter = artifact -> true;
43+
@Nonnull
44+
private Predicate<? super AzureArtifact> artifactFilter = artifact -> true;
4145
private Subscription subscription;
4246
private AzureArtifact cachedArtifact;
4347

@@ -52,10 +56,14 @@ public AzureArtifactComboBox(Project project, boolean fileArtifactOnly) {
5256
this.setRenderer(new ArtifactItemRenderer());
5357
}
5458

55-
public void setFileFilter(final Condition<? super VirtualFile> filter) {
59+
public void setFileFilter(@Nonnull final Predicate<? super VirtualFile> filter) {
5660
this.fileFilter = filter;
5761
}
5862

63+
public void setArtifactFilter(@Nonnull final Predicate<? super AzureArtifact> filter) {
64+
this.artifactFilter = filter;
65+
}
66+
5967
public void setArtifact(@Nullable final AzureArtifact azureArtifact) {
6068
final AzureArtifactManager artifactManager = AzureArtifactManager.getInstance(this.project);
6169
this.cachedArtifact = azureArtifact;
@@ -75,9 +83,9 @@ public AzureArtifact getValue() {
7583
@Nonnull
7684
@Override
7785
@AzureOperation(name = "internal/common.list_artifacts.project", params = {"this.project.getName()"})
78-
protected List<? extends AzureArtifact> loadItems() throws Exception {
86+
protected List<? extends AzureArtifact> loadItems() {
7987
final List<AzureArtifact> collect = fileArtifactOnly ?
80-
new ArrayList<>() : AzureArtifactManager.getInstance(project).getAllSupportedAzureArtifacts();
88+
new ArrayList<>() : AzureArtifactManager.getInstance(project).getAllSupportedAzureArtifacts().stream().filter(this.artifactFilter).collect((Collectors.toCollection(ArrayList::new)));
8189
Optional.ofNullable(cachedArtifact).filter(artifact -> artifact.getType() == AzureArtifactType.File).ifPresent(collect::add);
8290
return collect;
8391
}
@@ -111,7 +119,7 @@ protected Icon getItemIcon(Object item) {
111119
public AzureValidationInfo doValidate(AzureArtifact artifact) {
112120
if (Objects.nonNull(artifact) && artifact.getType() == AzureArtifactType.File) {
113121
final VirtualFile referencedObject = (VirtualFile) artifact.getReferencedObject();
114-
if (Objects.nonNull(this.fileFilter) && !this.fileFilter.value(referencedObject)) {
122+
if (!this.fileFilter.test(referencedObject)) {
115123
final AzureValidationInfo.AzureValidationInfoBuilder builder = AzureValidationInfo.builder();
116124
return builder.input(this).message(AzureMessageBundle.message("common.artifact.artifactNotSupport").toString())
117125
.type(Type.ERROR).build();
@@ -122,9 +130,7 @@ public AzureValidationInfo doValidate(AzureArtifact artifact) {
122130

123131
private void onSelectFile() {
124132
final FileChooserDescriptor fileDescriptor = FileChooserDescriptorFactory.createSingleFileDescriptor();
125-
if (fileFilter != null) {
126-
fileDescriptor.withFileFilter(fileFilter);
127-
}
133+
fileDescriptor.withFileFilter(v -> this.fileFilter.test(v));
128134
fileDescriptor.withTitle(AzureMessageBundle.message("common.artifact.selector.title").toString());
129135
final VirtualFile file = FileChooser.chooseFile(fileDescriptor, null, null);
130136
if (file != null && file.exists()) {

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/deplolyment/SpringCloudDeploymentConfigurationPanel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public SpringCloudDeploymentConfigurationPanel(SpringCloudDeploymentConfiguratio
6868

6969
private void init() {
7070
this.selectorArtifact.setFileFilter(virtualFile -> StringUtils.equalsIgnoreCase("jar", FileNameUtils.getExtension(virtualFile.getPath())));
71+
this.selectorArtifact.setArtifactFilter(a -> "jar".equalsIgnoreCase(a.getPackaging()));
7172
this.selectorArtifact.addItemListener(this::onArtifactChanged);
7273
this.selectorSubscription.addItemListener(this::onSubscriptionChanged);
7374
this.selectorCluster.addItemListener(this::onClusterChanged);

0 commit comments

Comments
 (0)