Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: make build pass marketplace verification (#749) #750

Merged
merged 1 commit into from
Apr 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jetBrainsToken=invalid
jetBrainsChannel=stable
intellijPluginVersion=1.16.1
kotlinJvmPluginVersion=1.8.0
intellijCommonVersion=1.9.4
intellijCommonVersion=1.9.5-SNAPSHOT
telemetryPluginVersion=1.1.0.52
kotlin.stdlib.default.dependency = false
kotlinVersion=1.6.21
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,21 @@ import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtilRt
import com.intellij.openapi.vfs.VfsUtil
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.util.ui.EdtInvocationManager
import com.intellij.util.ui.EDT
import com.redhat.devtools.intellij.common.editor.AllowNonProjectEditing
import com.redhat.devtools.intellij.common.utils.UIHelper
import com.redhat.devtools.intellij.kubernetes.model.Notification
import com.redhat.devtools.intellij.kubernetes.model.util.trimWithEllipsis
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.client.utils.Serialization
import org.apache.commons.io.FileUtils
import org.jetbrains.yaml.YAMLFileType
import java.io.IOException
import java.nio.charset.StandardCharsets
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
import java.util.function.Supplier
import org.apache.commons.io.FileUtils
import org.jetbrains.yaml.YAMLFileType

/**
* Helper that offers operations on the [VirtualFile] for a [ResourceEditor]
Expand Down Expand Up @@ -135,7 +135,7 @@ open class ResourceFile protected constructor(
* When invoking synchronous refresh from a thread other than the event dispatch thread,
* the current thread must NOT be in a read action, otherwise a deadlock may occur
*/
if (EdtInvocationManager.getInstance().isEventDispatchThread) {
if (EDT.isCurrentThreadEdt()) {
executeReadAction {
virtualFile.refresh(false, false)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,17 @@
@file:Suppress("UnstableApiUsage")
package com.redhat.devtools.intellij.kubernetes.editor.inlay

import PresentationFactoryBuilder
import com.intellij.codeInsight.hints.InlayHintsSink
import com.intellij.codeInsight.hints.presentation.InlayPresentation
import com.intellij.codeInsight.hints.presentation.PresentationFactory
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.impl.EditorImpl
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import com.redhat.devtools.intellij.common.validation.KubernetesResourceInfo
import com.redhat.devtools.intellij.kubernetes.balloon.StringInputBalloon
import com.redhat.devtools.intellij.kubernetes.editor.inlay.Base64Presentations.InlayPresentationsFactory
import com.redhat.devtools.intellij.kubernetes.editor.inlay.Base64Presentations.create
import com.redhat.devtools.intellij.kubernetes.editor.util.getBinaryData
import com.redhat.devtools.intellij.kubernetes.editor.util.getData
import com.redhat.devtools.intellij.kubernetes.editor.util.isKubernetesResource
Expand Down Expand Up @@ -94,7 +95,7 @@ object Base64Presentations {
}

private fun create(text: String, onClick: (event: MouseEvent) -> Unit, editor: Editor): InlayPresentation? {
val factory = PresentationFactory(editor as EditorImpl)
val factory = PresentationFactoryBuilder.build(editor) ?: return null
val trimmed = trimWithEllipsis(text, INLAY_HINT_MAX_WIDTH) ?: return null
val textPresentation = factory.smallText(trimmed)
val hoverPresentation = factory.referenceOnHover(textPresentation) { event, _ ->
Expand Down Expand Up @@ -129,7 +130,7 @@ object Base64Presentations {
}

private fun create(bytes: ByteArray, editor: Editor): InlayPresentation? {
val factory = PresentationFactory(editor as EditorImpl)
val factory = PresentationFactoryBuilder.build(editor) ?: return null
val hex = toHexString(bytes) ?: return null
val trimmed = trimWithEllipsis(hex, INLAY_HINT_MAX_WIDTH) ?: return null
return factory.roundWithBackground(factory.smallText(trimmed))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*******************************************************************************
* Copyright (c) 2024 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v2.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
import com.intellij.codeInsight.hints.presentation.PresentationFactory
import com.intellij.openapi.editor.Editor

/**
* A factory that creates a [PresentationFactory]. This class bridges the difference in API between
* <= IC-2022.3 and above.
*/
object PresentationFactoryBuilder {
fun build(editor: Editor): PresentationFactory? {
try {
val constructor = PresentationFactory::class.java.constructors.firstOrNull() ?: return null
// IC-2022.3: PresentationFactory(EditorImpl), > IC-2022.3: PresentationFactory(Editor)
return constructor.newInstance(editor) as PresentationFactory?
} catch (e: Exception) {
return null
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import com.intellij.openapi.fileEditor.FileEditor
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key
import com.intellij.ui.EditorNotificationPanel
import com.intellij.util.containers.isNullOrEmpty
import com.redhat.devtools.intellij.kubernetes.editor.Different
import com.redhat.devtools.intellij.kubernetes.editor.EditorResource
import com.redhat.devtools.intellij.kubernetes.editor.hideNotification
Expand Down Expand Up @@ -67,10 +66,10 @@ class PushNotification(private val editor: FileEditor, private val project: Proj

private fun createText(toCreate: Collection<EditorResource>?, toUpdate: Collection<EditorResource>?): String {
return StringBuilder().apply {
if (false == toCreate?.isNullOrEmpty()) {
if (false == toCreate?.isEmpty()) {
append("Push to create ${toKindAndNames(toCreate.map { editorResource -> editorResource.getResource() })}")
}
if (false == toUpdate?.isNullOrEmpty()) {
if (false == toUpdate?.isEmpty()) {
if (isNotEmpty()) {
append(", ")
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import com.intellij.openapi.fileEditor.FileEditor
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key
import com.intellij.ui.EditorNotificationPanel
import com.intellij.util.containers.isNullOrEmpty
import com.redhat.devtools.intellij.kubernetes.editor.EditorResource
import com.redhat.devtools.intellij.kubernetes.editor.FILTER_PUSHED
import com.redhat.devtools.intellij.kubernetes.editor.Pushed
Expand Down Expand Up @@ -62,16 +61,16 @@ class PushedNotification(private val editor: FileEditor, private val project: Pr

private fun createText(created: List<EditorResource>?, updated: List<EditorResource>?): String {
return StringBuilder().apply {
if (!created.isNullOrEmpty()) {
if (false == created?.isEmpty()) {
append("Created ${toKindAndNames(created?.map { editorResource -> editorResource.getResource() })} ")
}
if (!updated.isNullOrEmpty()) {
if (false == updated?.isEmpty()) {
if (isNotEmpty()) {
append(", updated")
} else {
append("Updated")
}
append(" ${toKindAndNames(updated?.map { editorResource -> editorResource.getResource() })}")
append(" ${toKindAndNames(updated.map { editorResource -> editorResource.getResource() })}")
}
append(" on cluster.")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ abstract class ActiveContext<N : HasMetadata, C : KubernetesClient>(
protected abstract val namespaceKind : ResourceKind<N>

private val extensionName: ExtensionPointName<IResourceOperatorFactory<HasMetadata, KubernetesClient, IResourceOperator<HasMetadata>>> =
ExtensionPointName.create("com.redhat.devtools.intellij.kubernetes.resourceOperators")
ExtensionPointName("com.redhat.devtools.intellij.kubernetes.resourceOperators")

protected open val nonNamespacedOperators: MutableMap<ResourceKind<out HasMetadata>, INonNamespacedResourceOperator<*, *>> by lazy {
getAllResourceOperators(INonNamespacedResourceOperator::class.java)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ open class TreeStructure(
private val project: Project,
private val model: IResourceModel,
private val extensionPoint: ExtensionPointName<ITreeStructureContributionFactory> =
ExtensionPointName.create("com.redhat.devtools.intellij.kubernetes.structureContribution"))
ExtensionPointName("com.redhat.devtools.intellij.kubernetes.structureContribution"))
: AbstractTreeStructure(), MultiParentTreeStructure {

private val contributions by lazy {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ class TreeUpdater(
}

private fun invalidateRoot() {
treeModel.invalidate()
treeModel.invalidateAsync()
}

private fun getPotentialParentNodes(element: Any): Collection<TreeNode> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ class TreeUpdaterTest {
// when
updater.modified(resourceModel)
// then
verify(treeModel).invalidate()
verify(treeModel).invalidateAsync()
}

@Test
Expand Down
Loading