diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/.idea/gradle.xml b/PluginsAndFeatures/azure-toolkit-for-intellij/.idea/gradle.xml
index 6cb7b0faf15..52027d471be 100644
--- a/PluginsAndFeatures/azure-toolkit-for-intellij/.idea/gradle.xml
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/.idea/gradle.xml
@@ -21,6 +21,7 @@
+
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/build.gradle.kts b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/build.gradle.kts
new file mode 100644
index 00000000000..2c1feb139c9
--- /dev/null
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/build.gradle.kts
@@ -0,0 +1,28 @@
+fun properties(key: String) = providers.gradleProperty(key)
+
+sourceSets {
+ main {
+ resources.srcDirs("src/main/resources")
+ }
+}
+
+dependencies {
+ implementation(project(":azure-intellij-plugin-lib"))
+ // runtimeOnly project(path: ":azure-intellij-plugin-lib", configuration: "instrumentedJar")
+ implementation(project(":azure-intellij-resource-connector-lib"))
+ // runtimeOnly project(path: ":azure-intellij-resource-connector-lib", configuration: "instrumentedJar")
+ implementation(project(":azure-intellij-resource-connector-lib-java"))
+ implementation(project(":azure-intellij-plugin-cosmos"))
+ // runtimeOnly project(path: ":azure-intellij-resource-connector-lib-java", configuration: "instrumentedJar")
+ implementation("com.microsoft.azure:azure-toolkit-cosmos-lib")
+ implementation("com.microsoft.azure:azure-toolkit-ide-common-lib")
+ implementation("com.microsoft.azure:azure-toolkit-ide-cosmos-lib")
+ implementation("com.microsoft.azure:azure-toolkit-identity-lib")
+
+ intellijPlatform {
+ intellijIdeaUltimate(properties("platformVersion").get())
+ // Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
+ bundledPlugin("com.intellij.java")
+ bundledPlugin("com.intellij.database")
+ }
+}
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntellijJavaCosmosActionsContributor.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntellijJavaCosmosActionsContributor.java
new file mode 100644
index 00000000000..be9dc46d0ff
--- /dev/null
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntellijJavaCosmosActionsContributor.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+package com.microsoft.azure.toolkit.intellij.cosmos;
+
+import com.intellij.openapi.actionSystem.AnActionEvent;
+import com.intellij.openapi.project.Project;
+import com.microsoft.azure.toolkit.ide.common.IActionsContributor;
+import com.microsoft.azure.toolkit.ide.common.action.ResourceCommonActionsContributor;
+import com.microsoft.azure.toolkit.intellij.connector.AzureServiceResource;
+import com.microsoft.azure.toolkit.intellij.connector.ConnectorDialog;
+import com.microsoft.azure.toolkit.intellij.cosmos.connection.*;
+import com.microsoft.azure.toolkit.lib.common.action.AzureActionManager;
+import com.microsoft.azure.toolkit.lib.common.bundle.AzureString;
+import com.microsoft.azure.toolkit.lib.common.messager.AzureMessager;
+import com.microsoft.azure.toolkit.lib.common.model.AzResource;
+import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager;
+import com.microsoft.azure.toolkit.lib.cosmos.*;
+import com.microsoft.azure.toolkit.lib.cosmos.cassandra.CassandraCosmosDBAccount;
+import com.microsoft.azure.toolkit.lib.cosmos.cassandra.CassandraKeyspace;
+import com.microsoft.azure.toolkit.lib.cosmos.mongo.MongoCosmosDBAccount;
+import com.microsoft.azure.toolkit.lib.cosmos.mongo.MongoDatabase;
+import com.microsoft.azure.toolkit.lib.cosmos.sql.SqlCosmosDBAccount;
+import com.microsoft.azure.toolkit.lib.cosmos.sql.SqlDatabase;
+
+import javax.annotation.Nonnull;
+import java.util.Objects;
+import java.util.function.Function;
+
+public class IntellijJavaCosmosActionsContributor implements IActionsContributor {
+ @Override
+ public void registerHandlers(AzureActionManager am) {
+
+ final Function mongoFunction = account -> account.mongoDatabases().list().stream().findFirst().orElse(null);
+ am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof MongoCosmosDBAccount && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
+ openResourceConnector((MongoCosmosDBAccount) r, mongoFunction, MongoCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
+ am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof MongoDatabase && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
+ openResourceConnector((MongoDatabase) r, MongoCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
+
+ final Function sqlFunction = account -> account.sqlDatabases().list().stream().findFirst().orElse(null);
+ am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof SqlCosmosDBAccount && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
+ openResourceConnector((SqlCosmosDBAccount) r, sqlFunction, SqlCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
+ am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof SqlDatabase && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
+ openResourceConnector((SqlDatabase) r, SqlCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
+
+ final Function cassandraFunction = account -> account.keySpaces().list().stream().findFirst().orElse(null);
+ am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof CassandraCosmosDBAccount && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
+ openResourceConnector((CassandraCosmosDBAccount) r, cassandraFunction, CassandraCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
+ am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof CassandraKeyspace && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
+ openResourceConnector((CassandraKeyspace) r, CassandraCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
+ }
+
+ private void openResourceConnector(@Nonnull final T resource, @Nonnull final AzureServiceResource.Definition definition, Project project) {
+ AzureTaskManager.getInstance().runLater(() -> {
+ final ConnectorDialog dialog = new ConnectorDialog(project);
+ dialog.setResource(new AzureServiceResource<>(resource, definition));
+ dialog.show();
+ });
+ }
+
+ private void openResourceConnector(@Nonnull final R account, @Nonnull Function databaseFunction,
+ @Nonnull final AzureServiceResource.Definition definition, Project project) {
+ final T database = databaseFunction.apply(account);
+ if (Objects.isNull(database)) {
+ AzureMessager.getMessager().warning(AzureString.format("Can not connect to %s as there is no database in selected account", account.getName()));
+ } else {
+ openResourceConnector(database, definition, project);
+ }
+ }
+}
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBFunctionAnnotationCompletionContributor.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBFunctionAnnotationCompletionContributor.java
similarity index 100%
rename from PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBFunctionAnnotationCompletionContributor.java
rename to PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBFunctionAnnotationCompletionContributor.java
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBResourceReferenceContributor.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBResourceReferenceContributor.java
similarity index 100%
rename from PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBResourceReferenceContributor.java
rename to PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/AzureCosmosDBResourceReferenceContributor.java
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBContainerNameCompletionProvider.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBContainerNameCompletionProvider.java
similarity index 100%
rename from PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBContainerNameCompletionProvider.java
rename to PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBContainerNameCompletionProvider.java
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBDatabaseNameCompletionProvider.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBDatabaseNameCompletionProvider.java
similarity index 100%
rename from PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBDatabaseNameCompletionProvider.java
rename to PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBDatabaseNameCompletionProvider.java
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBFunctionPathAnnotator.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBFunctionPathAnnotator.java
similarity index 100%
rename from PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBFunctionPathAnnotator.java
rename to PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/code/function/CosmosDBFunctionPathAnnotator.java
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/CassandraCosmosDBAccountResourceDefinition.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/CassandraCosmosDBAccountResourceDefinition.java
new file mode 100644
index 00000000000..279963b611e
--- /dev/null
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/CassandraCosmosDBAccountResourceDefinition.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+package com.microsoft.azure.toolkit.intellij.cosmos.connection;
+
+import com.microsoft.azure.toolkit.intellij.connector.Connection;
+import com.microsoft.azure.toolkit.intellij.connector.spring.SpringSupported;
+import com.microsoft.azure.toolkit.lib.cosmos.cassandra.CassandraKeyspace;
+import org.apache.commons.lang3.tuple.Pair;
+
+import javax.annotation.Nullable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CassandraCosmosDBAccountResourceDefinition extends BaseCassandraCosmosDBAccountResourceDefinition implements SpringSupported {
+ public static final CassandraCosmosDBAccountResourceDefinition INSTANCE = new CassandraCosmosDBAccountResourceDefinition();
+
+ @Override
+ public List> getSpringProperties(@Nullable final String key) {
+ final List> properties = new ArrayList<>();
+ properties.add(Pair.of("spring.cassandra.contact-points", String.format("${%s_CONTACT_POINT}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cassandra.port", String.format("${%s_PORT}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cassandra.username", String.format("${%s_USERNAME}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cassandra.password", String.format("${%s_PASSWORD}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cassandra.keyspace-name", String.format("${%s_KEYSPACE}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cassandra.schema-action", "create_if_not_exists"));
+ properties.add(Pair.of("spring.cassandra.ssl.enabled", "true"));
+ properties.add(Pair.of("spring.cassandra.local-datacenter", String.format("${%s_REGION}", Connection.ENV_PREFIX)));
+ return properties;
+ }
+}
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/MongoCosmosDBAccountResourceDefinition.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/MongoCosmosDBAccountResourceDefinition.java
new file mode 100644
index 00000000000..a32d2f9381c
--- /dev/null
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/MongoCosmosDBAccountResourceDefinition.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+package com.microsoft.azure.toolkit.intellij.cosmos.connection;
+
+import com.microsoft.azure.toolkit.intellij.connector.Connection;
+import com.microsoft.azure.toolkit.intellij.connector.spring.SpringSupported;
+import com.microsoft.azure.toolkit.lib.cosmos.mongo.MongoDatabase;
+import org.apache.commons.lang3.tuple.Pair;
+
+import javax.annotation.Nullable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class MongoCosmosDBAccountResourceDefinition extends BaseMongoCosmosDBAccountResourceDefinition implements SpringSupported {
+ public static final MongoCosmosDBAccountResourceDefinition INSTANCE = new MongoCosmosDBAccountResourceDefinition();
+
+ @Override
+ public List> getSpringProperties(@Nullable final String key) {
+ final List> properties = new ArrayList<>();
+ properties.add(Pair.of("spring.data.mongodb.database", String.format("${%s_DATABASE}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.data.mongodb.uri", String.format("${%s_CONNECTION_STRING}", Connection.ENV_PREFIX)));
+ return properties;
+ }
+}
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/SqlCosmosDBAccountResourceDefinition.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/SqlCosmosDBAccountResourceDefinition.java
new file mode 100644
index 00000000000..505d5c706ca
--- /dev/null
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/connection/SqlCosmosDBAccountResourceDefinition.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+package com.microsoft.azure.toolkit.intellij.cosmos.connection;
+
+import com.azure.resourcemanager.authorization.models.BuiltInRole;
+import com.intellij.openapi.project.Project;
+import com.microsoft.azure.toolkit.intellij.connector.AuthenticationType;
+import com.microsoft.azure.toolkit.intellij.connector.Connection;
+import com.microsoft.azure.toolkit.intellij.connector.Resource;
+import com.microsoft.azure.toolkit.intellij.connector.spring.SpringManagedIdentitySupported;
+import com.microsoft.azure.toolkit.intellij.connector.spring.SpringSupported;
+import com.microsoft.azure.toolkit.lib.cosmos.CosmosDBAccount;
+import com.microsoft.azure.toolkit.lib.cosmos.sql.SqlDatabase;
+import org.apache.commons.lang3.tuple.Pair;
+
+import javax.annotation.Nullable;
+import java.util.*;
+
+public class SqlCosmosDBAccountResourceDefinition extends BaseSqlCosmosDBAccountResourceDefinition
+ implements SpringSupported, SpringManagedIdentitySupported {
+
+ public static final SqlCosmosDBAccountResourceDefinition INSTANCE = new SqlCosmosDBAccountResourceDefinition();
+
+ @Override
+ public List> getSpringProperties(@Nullable final String key) {
+ final List> properties = new ArrayList<>();
+ properties.add(Pair.of("spring.cloud.azure.cosmos.endpoint", String.format("${%s_ENDPOINT}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cloud.azure.cosmos.key", String.format("${%s_KEY}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cloud.azure.cosmos.database", String.format("${%s_DATABASE}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cloud.azure.cosmos.populate-query-metrics", String.valueOf(true)));
+ return properties;
+ }
+
+
+
+ @Override
+ public Map initIdentityEnv(Connection data, Project project) {
+ final SqlDatabase database = data.getResource().getData();
+ final CosmosDBAccount account = database.getParent();
+ final HashMap env = new HashMap<>();
+ env.put(String.format("%s_ENDPOINT", Connection.ENV_PREFIX), account.getDocumentEndpoint());
+ env.put(String.format("%s_DATABASE", Connection.ENV_PREFIX), database.getName());
+ if (data.getAuthenticationType() == AuthenticationType.USER_ASSIGNED_MANAGED_IDENTITY) {
+ Optional.ofNullable(data.getUserAssignedManagedIdentity()).map(Resource::getData).ifPresent(identity -> {
+ env.put(String.format("%s_CLIENT_ID", Connection.ENV_PREFIX), identity.getClientId());
+ env.put("AZURE_CLIENT_ID", identity.getClientId());
+ });
+ }
+ return env;
+ }
+
+ @Override
+ public List getRequiredPermissions() {
+ return List.of("Microsoft.DocumentDB/databaseAccounts/readMetadata",
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
+ "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*");
+ }
+
+ @Nullable
+ @Override
+ public Map getBuiltInRoles() {
+ return null;
+ }
+
+ @Override
+ public List> getSpringPropertiesForManagedIdentity(String key, Connection, ?> connection) {
+ final List> properties = new ArrayList<>();
+ properties.add(Pair.of("spring.cloud.azure.cosmos.endpoint", String.format("${%s_ENDPOINT}", Connection.ENV_PREFIX)));
+ properties.add(Pair.of("spring.cloud.azure.cosmos.database", String.format("${%s_DATABASE}", Connection.ENV_PREFIX)));
+ // properties.add(Pair.of("spring.cloud.azure.cosmos.credential.managed-identity-enabled", String.valueOf(true)));
+ if (connection.getAuthenticationType() == AuthenticationType.USER_ASSIGNED_MANAGED_IDENTITY) {
+ properties.add(Pair.of("spring.cloud.azure.cosmos.credential.client-id", String.format("${%s_CLIENT_ID}", Connection.ENV_PREFIX)));
+ }
+ return properties;
+ }
+}
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/resources/META-INF/azure-intellij-plugin-cosmos-java.xml b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/resources/META-INF/azure-intellij-plugin-cosmos-java.xml
new file mode 100644
index 00000000000..65c648ed474
--- /dev/null
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos-java/src/main/resources/META-INF/azure-intellij-plugin-cosmos-java.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/build.gradle.kts b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/build.gradle.kts
index 4019ae664bb..67e0a8df3bf 100644
--- a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/build.gradle.kts
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/build.gradle.kts
@@ -11,8 +11,6 @@ dependencies {
// runtimeOnly project(path: ":azure-intellij-plugin-lib", configuration: "instrumentedJar")
implementation(project(":azure-intellij-resource-connector-lib"))
// runtimeOnly project(path: ":azure-intellij-resource-connector-lib", configuration: "instrumentedJar")
- implementation(project(":azure-intellij-resource-connector-lib-java"))
- // runtimeOnly project(path: ":azure-intellij-resource-connector-lib-java", configuration: "instrumentedJar")
implementation("com.microsoft.azure:azure-toolkit-cosmos-lib")
implementation("com.microsoft.azure:azure-toolkit-ide-common-lib")
implementation("com.microsoft.azure:azure-toolkit-ide-cosmos-lib")
@@ -21,7 +19,6 @@ dependencies {
intellijPlatform {
intellijIdeaUltimate(properties("platformVersion").get())
// Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
- bundledPlugin("com.intellij.java")
bundledPlugin("com.intellij.database")
}
}
diff --git a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntelliJCosmosActionsContributor.java b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntelliJCosmosActionsContributor.java
index f6a4bdf289e..67ec3c45de9 100644
--- a/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntelliJCosmosActionsContributor.java
+++ b/PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntelliJCosmosActionsContributor.java
@@ -14,23 +14,15 @@
import com.microsoft.azure.toolkit.ide.common.action.ResourceCommonActionsContributor;
import com.microsoft.azure.toolkit.ide.cosmos.CosmosActionsContributor;
import com.microsoft.azure.toolkit.intellij.common.action.IntellijActionsContributor;
-import com.microsoft.azure.toolkit.intellij.connector.AzureServiceResource;
-import com.microsoft.azure.toolkit.intellij.connector.ConnectorDialog;
import com.microsoft.azure.toolkit.intellij.cosmos.actions.CreateNewDocumentAction;
import com.microsoft.azure.toolkit.intellij.cosmos.actions.OpenCosmosDocumentAction;
import com.microsoft.azure.toolkit.intellij.cosmos.actions.UploadCosmosDocumentAction;
-import com.microsoft.azure.toolkit.intellij.cosmos.connection.CassandraCosmosDBAccountResourceDefinition;
-import com.microsoft.azure.toolkit.intellij.cosmos.connection.MongoCosmosDBAccountResourceDefinition;
-import com.microsoft.azure.toolkit.intellij.cosmos.connection.SqlCosmosDBAccountResourceDefinition;
import com.microsoft.azure.toolkit.intellij.cosmos.creation.CreateCosmosContainerAction;
import com.microsoft.azure.toolkit.intellij.cosmos.creation.CreateCosmosDBAccountAction;
import com.microsoft.azure.toolkit.intellij.cosmos.creation.CreateCosmosDatabaseAction;
import com.microsoft.azure.toolkit.lib.common.action.Action;
import com.microsoft.azure.toolkit.lib.common.action.AzureActionManager;
-import com.microsoft.azure.toolkit.lib.common.bundle.AzureString;
import com.microsoft.azure.toolkit.lib.common.exception.AzureToolkitRuntimeException;
-import com.microsoft.azure.toolkit.lib.common.messager.AzureMessager;
-import com.microsoft.azure.toolkit.lib.common.model.AzResource;
import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager;
import com.microsoft.azure.toolkit.lib.cosmos.AzureCosmosService;
import com.microsoft.azure.toolkit.lib.cosmos.CosmosDBAccount;
@@ -49,12 +41,9 @@
import com.microsoft.azure.toolkit.lib.cosmos.sql.SqlDatabase;
import com.microsoft.azure.toolkit.lib.resource.ResourceGroup;
-import javax.annotation.Nonnull;
-import java.util.Objects;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
-import java.util.function.Function;
import static com.microsoft.azure.toolkit.lib.cosmos.CosmosDBAccountDraft.Config.getDefaultConfig;
import static com.microsoft.azure.toolkit.lib.cosmos.model.DatabaseConfig.getDefaultDatabaseConfig;
@@ -85,24 +74,6 @@ public void registerHandlers(AzureActionManager am) {
CreateCosmosDBAccountAction.create(e.getProject(), getDefaultConfig(r));
am.registerHandler(CosmosActionsContributor.GROUP_CREATE_COSMOS_SERVICE, (r, e) -> true, groupCreateHandler);
- final Function mongoFunction = account -> account.mongoDatabases().list().stream().findFirst().orElse(null);
- am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof MongoCosmosDBAccount && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
- openResourceConnector((MongoCosmosDBAccount) r, mongoFunction, MongoCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
- am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof MongoDatabase && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
- openResourceConnector((MongoDatabase) r, MongoCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
-
- final Function sqlFunction = account -> account.sqlDatabases().list().stream().findFirst().orElse(null);
- am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof SqlCosmosDBAccount && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
- openResourceConnector((SqlCosmosDBAccount) r, sqlFunction, SqlCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
- am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof SqlDatabase && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
- openResourceConnector((SqlDatabase) r, SqlCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
-
- final Function cassandraFunction = account -> account.keySpaces().list().stream().findFirst().orElse(null);
- am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof CassandraCosmosDBAccount && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
- openResourceConnector((CassandraCosmosDBAccount) r, cassandraFunction, CassandraCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
- am.registerHandler(ResourceCommonActionsContributor.CONNECT, (r, e) -> r instanceof CassandraKeyspace && r.getFormalStatus().isConnected(), (AzResource r, AnActionEvent e) ->
- openResourceConnector((CassandraKeyspace) r, CassandraCosmosDBAccountResourceDefinition.INSTANCE, e.getProject()));
-
final BiFunction> mongoDraftSupplier = (account, config) ->
(ICosmosDatabaseDraft, ?>) account.mongoDatabases().getOrDraft(config.getName(), account.getResourceGroupName());
am.registerHandler(ResourceCommonActionsContributor.CREATE, (r, e) -> r instanceof MongoCosmosDBAccount && ((MongoCosmosDBAccount) r).getFormalStatus().isRunning(), (Object r, AnActionEvent e) ->
@@ -140,22 +111,4 @@ private void openDatabaseTool(Project project, CosmosDBAccount account) {
final Action