diff --git a/.gitignore b/.gitignore index ed1ac1c2..1522c19a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ .idea/workspace.xml .idea/tasks.xml /out +/build +/.gradle +/.intellijPlatform diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 00000000..33e0b8d2 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,72 @@ +plugins { + java + id("org.jetbrains.intellij.platform") version "2.13.1" +} + +group = providers.gradleProperty("pluginGroup").get() +version = providers.gradleProperty("pluginVersion").get() + +repositories { + mavenCentral() + intellijPlatform { + defaultRepositories() + } +} + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(26) + } + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 +} + +sourceSets { + main { + java.srcDirs("tmc-plugin-intellij/src/main/java") + resources.srcDirs("tmc-plugin-intellij/resources") + } + test { + java.srcDirs("tmc-plugin-intellij/src/test/java") + } +} + +dependencies { + intellijPlatform { + intellijIdea(providers.gradleProperty("platformVersion")) + bundledPlugin("com.intellij.java") + } + + // tmc-core and all transitive dependencies are vendored under libs/ + // because maven.testmycode.net is no longer reachable. + implementation(fileTree("libs") { include("*.jar") }) + + // Apache Ant is required by fi.helsinki.cs.tmc.langs.util.ProjectType + // (BuildException referenced from ) but is not vendored under libs/. + implementation("org.apache.ant:ant:1.10.14") + + testImplementation("junit:junit:4.13.2") + testImplementation("org.mockito:mockito-core:5.14.0") +} + +intellijPlatform { + pluginConfiguration { + ideaVersion { + sinceBuild = providers.gradleProperty("pluginSinceBuild") + untilBuild = provider { null } + } + } + + pluginVerification { + ides { + recommended() + } + } +} + +tasks { + withType { + options.release = 21 + options.encoding = "UTF-8" + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..2c8ddda7 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,9 @@ +pluginGroup = fi.helsinki.cs.tmc.intellij +pluginName = tmc-intellij +pluginVersion = 2.1.0 +pluginSinceBuild = 261 +platformType = IC +platformVersion = 2026.1 +org.gradle.jvmargs=-Xmx2g -XX:+UseG1GC +org.gradle.caching=true +org.gradle.parallel=true diff --git a/libs/aether-api-1.0.2.v20150114.jar b/libs/aether-api-1.0.2.v20150114.jar new file mode 100755 index 00000000..c8adbaa2 Binary files /dev/null and b/libs/aether-api-1.0.2.v20150114.jar differ diff --git a/libs/aether-connector-basic-1.0.2.v20150114.jar b/libs/aether-connector-basic-1.0.2.v20150114.jar new file mode 100755 index 00000000..b5d7735a Binary files /dev/null and b/libs/aether-connector-basic-1.0.2.v20150114.jar differ diff --git a/libs/aether-impl-1.0.2.v20150114.jar b/libs/aether-impl-1.0.2.v20150114.jar new file mode 100755 index 00000000..f7643151 Binary files /dev/null and b/libs/aether-impl-1.0.2.v20150114.jar differ diff --git a/libs/aether-spi-1.0.2.v20150114.jar b/libs/aether-spi-1.0.2.v20150114.jar new file mode 100755 index 00000000..59c0935d Binary files /dev/null and b/libs/aether-spi-1.0.2.v20150114.jar differ diff --git a/libs/aether-transport-wagon-1.0.2.v20150114.jar b/libs/aether-transport-wagon-1.0.2.v20150114.jar new file mode 100755 index 00000000..51498ee7 Binary files /dev/null and b/libs/aether-transport-wagon-1.0.2.v20150114.jar differ diff --git a/libs/aether-util-1.0.2.v20150114.jar b/libs/aether-util-1.0.2.v20150114.jar new file mode 100755 index 00000000..fce3fff8 Binary files /dev/null and b/libs/aether-util-1.0.2.v20150114.jar differ diff --git a/libs/antlr-2.7.7.jar b/libs/antlr-2.7.7.jar new file mode 100755 index 00000000..5e5f14b3 Binary files /dev/null and b/libs/antlr-2.7.7.jar differ diff --git a/libs/antlr4-runtime-4.5.2-1.jar b/libs/antlr4-runtime-4.5.2-1.jar new file mode 100755 index 00000000..fab0ac91 Binary files /dev/null and b/libs/antlr4-runtime-4.5.2-1.jar differ diff --git a/libs/aopalliance-1.0.jar b/libs/aopalliance-1.0.jar new file mode 100755 index 00000000..578b1a0c Binary files /dev/null and b/libs/aopalliance-1.0.jar differ diff --git a/libs/backport-util-concurrent-3.1.jar b/libs/backport-util-concurrent-3.1.jar new file mode 100755 index 00000000..3a4c2797 Binary files /dev/null and b/libs/backport-util-concurrent-3.1.jar differ diff --git a/libs/cdi-api-1.0.jar b/libs/cdi-api-1.0.jar new file mode 100755 index 00000000..fe240f6f Binary files /dev/null and b/libs/cdi-api-1.0.jar differ diff --git a/libs/checkstyle-6.17-tmc-20170213.093316-4.jar b/libs/checkstyle-6.17-tmc-20170213.093316-4.jar new file mode 100755 index 00000000..f735857c Binary files /dev/null and b/libs/checkstyle-6.17-tmc-20170213.093316-4.jar differ diff --git a/libs/classworlds-1.1-alpha-2.jar b/libs/classworlds-1.1-alpha-2.jar new file mode 100755 index 00000000..1208b481 Binary files /dev/null and b/libs/classworlds-1.1-alpha-2.jar differ diff --git a/libs/commons-beanutils-1.9.2.jar b/libs/commons-beanutils-1.9.2.jar new file mode 100755 index 00000000..7d075edf Binary files /dev/null and b/libs/commons-beanutils-1.9.2.jar differ diff --git a/libs/commons-chain-1.1.jar b/libs/commons-chain-1.1.jar new file mode 100755 index 00000000..60c027ef Binary files /dev/null and b/libs/commons-chain-1.1.jar differ diff --git a/libs/commons-cli-1.2.jar b/libs/commons-cli-1.2.jar new file mode 100755 index 00000000..ce4b9fff Binary files /dev/null and b/libs/commons-cli-1.2.jar differ diff --git a/libs/commons-codec-1.10.jar b/libs/commons-codec-1.10.jar new file mode 100755 index 00000000..1d7417c4 Binary files /dev/null and b/libs/commons-codec-1.10.jar differ diff --git a/libs/commons-collections-3.2.1.jar b/libs/commons-collections-3.2.1.jar new file mode 100755 index 00000000..c35fa1fe Binary files /dev/null and b/libs/commons-collections-3.2.1.jar differ diff --git a/libs/commons-compress-1.14.jar b/libs/commons-compress-1.14.jar new file mode 100755 index 00000000..7490eb89 Binary files /dev/null and b/libs/commons-compress-1.14.jar differ diff --git a/libs/commons-digester-1.6.jar b/libs/commons-digester-1.6.jar new file mode 100755 index 00000000..97654933 Binary files /dev/null and b/libs/commons-digester-1.6.jar differ diff --git a/libs/commons-io-2.4.jar b/libs/commons-io-2.4.jar new file mode 100755 index 00000000..90035a4f Binary files /dev/null and b/libs/commons-io-2.4.jar differ diff --git a/libs/commons-lang-2.1.jar b/libs/commons-lang-2.1.jar new file mode 100755 index 00000000..87b80ab5 Binary files /dev/null and b/libs/commons-lang-2.1.jar differ diff --git a/libs/commons-lang3-3.5.jar b/libs/commons-lang3-3.5.jar new file mode 100755 index 00000000..6328c8de Binary files /dev/null and b/libs/commons-lang3-3.5.jar differ diff --git a/libs/commons-logging-1.2.jar b/libs/commons-logging-1.2.jar new file mode 100755 index 00000000..93a3b9f6 Binary files /dev/null and b/libs/commons-logging-1.2.jar differ diff --git a/libs/commons-validator-1.3.1.jar b/libs/commons-validator-1.3.1.jar new file mode 100755 index 00000000..55b12b1a Binary files /dev/null and b/libs/commons-validator-1.3.1.jar differ diff --git a/libs/core-0.10.4-SNAPSHOT.jar b/libs/core-0.10.4-SNAPSHOT.jar new file mode 100755 index 00000000..ae710522 Binary files /dev/null and b/libs/core-0.10.4-SNAPSHOT.jar differ diff --git a/libs/dom4j-1.1.jar b/libs/dom4j-1.1.jar new file mode 100755 index 00000000..82e58524 Binary files /dev/null and b/libs/dom4j-1.1.jar differ diff --git a/libs/doxia-core-1.2.jar b/libs/doxia-core-1.2.jar new file mode 100755 index 00000000..143f89f1 Binary files /dev/null and b/libs/doxia-core-1.2.jar differ diff --git a/libs/doxia-decoration-model-1.4.jar b/libs/doxia-decoration-model-1.4.jar new file mode 100755 index 00000000..30e73a7a Binary files /dev/null and b/libs/doxia-decoration-model-1.4.jar differ diff --git a/libs/doxia-integration-tools-1.6.jar b/libs/doxia-integration-tools-1.6.jar new file mode 100755 index 00000000..dfa41924 Binary files /dev/null and b/libs/doxia-integration-tools-1.6.jar differ diff --git a/libs/doxia-logging-api-1.4.jar b/libs/doxia-logging-api-1.4.jar new file mode 100755 index 00000000..0c794eb9 Binary files /dev/null and b/libs/doxia-logging-api-1.4.jar differ diff --git a/libs/doxia-module-fml-1.4.jar b/libs/doxia-module-fml-1.4.jar new file mode 100755 index 00000000..673d7509 Binary files /dev/null and b/libs/doxia-module-fml-1.4.jar differ diff --git a/libs/doxia-module-xhtml-1.4.jar b/libs/doxia-module-xhtml-1.4.jar new file mode 100755 index 00000000..7e2e8a1c Binary files /dev/null and b/libs/doxia-module-xhtml-1.4.jar differ diff --git a/libs/doxia-sink-api-1.4.jar b/libs/doxia-sink-api-1.4.jar new file mode 100755 index 00000000..16052a5f Binary files /dev/null and b/libs/doxia-sink-api-1.4.jar differ diff --git a/libs/doxia-site-renderer-1.4.jar b/libs/doxia-site-renderer-1.4.jar new file mode 100755 index 00000000..65d2005c Binary files /dev/null and b/libs/doxia-site-renderer-1.4.jar differ diff --git a/libs/gson-2.3.1.jar b/libs/gson-2.3.1.jar new file mode 100755 index 00000000..250132c1 Binary files /dev/null and b/libs/gson-2.3.1.jar differ diff --git a/libs/guava-19.0.jar b/libs/guava-19.0.jar new file mode 100755 index 00000000..b175ca86 Binary files /dev/null and b/libs/guava-19.0.jar differ diff --git a/libs/hamcrest-core-1.3.jar b/libs/hamcrest-core-1.3.jar new file mode 100755 index 00000000..9d5fe16e Binary files /dev/null and b/libs/hamcrest-core-1.3.jar differ diff --git a/libs/httpclient-4.5.3.jar b/libs/httpclient-4.5.3.jar new file mode 100755 index 00000000..8af45610 Binary files /dev/null and b/libs/httpclient-4.5.3.jar differ diff --git a/libs/httpcore-4.4.6.jar b/libs/httpcore-4.4.6.jar new file mode 100755 index 00000000..16ed0d16 Binary files /dev/null and b/libs/httpcore-4.4.6.jar differ diff --git a/libs/httpmime-4.3.5.jar b/libs/httpmime-4.3.5.jar new file mode 100755 index 00000000..8a02dd22 Binary files /dev/null and b/libs/httpmime-4.3.5.jar differ diff --git a/libs/jackson-annotations-2.4.0.jar b/libs/jackson-annotations-2.4.0.jar new file mode 100755 index 00000000..0b555590 Binary files /dev/null and b/libs/jackson-annotations-2.4.0.jar differ diff --git a/libs/jackson-core-2.4.1.1.jar b/libs/jackson-core-2.4.1.1.jar new file mode 100755 index 00000000..5fe10ae9 Binary files /dev/null and b/libs/jackson-core-2.4.1.1.jar differ diff --git a/libs/jackson-core-asl-1.9.13.jar b/libs/jackson-core-asl-1.9.13.jar new file mode 100755 index 00000000..bb4fe1da Binary files /dev/null and b/libs/jackson-core-asl-1.9.13.jar differ diff --git a/libs/jackson-databind-2.4.1.3.jar b/libs/jackson-databind-2.4.1.3.jar new file mode 100755 index 00000000..231bd1f2 Binary files /dev/null and b/libs/jackson-databind-2.4.1.3.jar differ diff --git a/libs/jackson-dataformat-yaml-2.4.1.jar b/libs/jackson-dataformat-yaml-2.4.1.jar new file mode 100755 index 00000000..2de75de9 Binary files /dev/null and b/libs/jackson-dataformat-yaml-2.4.1.jar differ diff --git a/libs/jackson-mapper-asl-1.9.13.jar b/libs/jackson-mapper-asl-1.9.13.jar new file mode 100755 index 00000000..0f2073fc Binary files /dev/null and b/libs/jackson-mapper-asl-1.9.13.jar differ diff --git a/libs/javax.inject-1.jar b/libs/javax.inject-1.jar new file mode 100755 index 00000000..b2a9d0bf Binary files /dev/null and b/libs/javax.inject-1.jar differ diff --git a/libs/json-20140107.jar b/libs/json-20140107.jar new file mode 100755 index 00000000..40a325db Binary files /dev/null and b/libs/json-20140107.jar differ diff --git a/libs/jsoup-1.7.2.jar b/libs/jsoup-1.7.2.jar new file mode 100755 index 00000000..1d9879f8 Binary files /dev/null and b/libs/jsoup-1.7.2.jar differ diff --git a/libs/jsr250-api-1.0.jar b/libs/jsr250-api-1.0.jar new file mode 100755 index 00000000..c1f29bf8 Binary files /dev/null and b/libs/jsr250-api-1.0.jar differ diff --git a/libs/jsr305-2.0.1.jar b/libs/jsr305-2.0.1.jar new file mode 100755 index 00000000..43807b02 Binary files /dev/null and b/libs/jsr305-2.0.1.jar differ diff --git a/libs/junit-4.11.jar b/libs/junit-4.11.jar new file mode 100755 index 00000000..aaf74448 Binary files /dev/null and b/libs/junit-4.11.jar differ diff --git a/libs/maven-aether-provider-3.3.3.jar b/libs/maven-aether-provider-3.3.3.jar new file mode 100755 index 00000000..154adb57 Binary files /dev/null and b/libs/maven-aether-provider-3.3.3.jar differ diff --git a/libs/maven-artifact-2.2.1.jar b/libs/maven-artifact-2.2.1.jar new file mode 100755 index 00000000..abab479b Binary files /dev/null and b/libs/maven-artifact-2.2.1.jar differ diff --git a/libs/maven-artifact-manager-2.2.1.jar b/libs/maven-artifact-manager-2.2.1.jar new file mode 100755 index 00000000..181bc39b Binary files /dev/null and b/libs/maven-artifact-manager-2.2.1.jar differ diff --git a/libs/maven-builder-support-3.3.3.jar b/libs/maven-builder-support-3.3.3.jar new file mode 100755 index 00000000..a25da7e2 Binary files /dev/null and b/libs/maven-builder-support-3.3.3.jar differ diff --git a/libs/maven-checkstyle-plugin-2.17.jar b/libs/maven-checkstyle-plugin-2.17.jar new file mode 100755 index 00000000..9f82bc0d Binary files /dev/null and b/libs/maven-checkstyle-plugin-2.17.jar differ diff --git a/libs/maven-compat-3.3.3.jar b/libs/maven-compat-3.3.3.jar new file mode 100755 index 00000000..198e5134 Binary files /dev/null and b/libs/maven-compat-3.3.3.jar differ diff --git a/libs/maven-core-3.3.3.jar b/libs/maven-core-3.3.3.jar new file mode 100755 index 00000000..268546a1 Binary files /dev/null and b/libs/maven-core-3.3.3.jar differ diff --git a/libs/maven-embedder-3.3.3.jar b/libs/maven-embedder-3.3.3.jar new file mode 100755 index 00000000..847b8f5b Binary files /dev/null and b/libs/maven-embedder-3.3.3.jar differ diff --git a/libs/maven-model-2.2.1.jar b/libs/maven-model-2.2.1.jar new file mode 100755 index 00000000..73175f81 Binary files /dev/null and b/libs/maven-model-2.2.1.jar differ diff --git a/libs/maven-model-builder-3.3.3.jar b/libs/maven-model-builder-3.3.3.jar new file mode 100755 index 00000000..b6daae11 Binary files /dev/null and b/libs/maven-model-builder-3.3.3.jar differ diff --git a/libs/maven-plugin-api-2.2.1.jar b/libs/maven-plugin-api-2.2.1.jar new file mode 100755 index 00000000..6b643f3d Binary files /dev/null and b/libs/maven-plugin-api-2.2.1.jar differ diff --git a/libs/maven-plugin-descriptor-2.2.1.jar b/libs/maven-plugin-descriptor-2.2.1.jar new file mode 100755 index 00000000..c27e26ae Binary files /dev/null and b/libs/maven-plugin-descriptor-2.2.1.jar differ diff --git a/libs/maven-plugin-registry-2.2.1.jar b/libs/maven-plugin-registry-2.2.1.jar new file mode 100755 index 00000000..1b87d9a0 Binary files /dev/null and b/libs/maven-plugin-registry-2.2.1.jar differ diff --git a/libs/maven-profile-2.2.1.jar b/libs/maven-profile-2.2.1.jar new file mode 100755 index 00000000..5394d323 Binary files /dev/null and b/libs/maven-profile-2.2.1.jar differ diff --git a/libs/maven-project-2.2.1.jar b/libs/maven-project-2.2.1.jar new file mode 100755 index 00000000..63b9ebd6 Binary files /dev/null and b/libs/maven-project-2.2.1.jar differ diff --git a/libs/maven-reporting-api-3.0.jar b/libs/maven-reporting-api-3.0.jar new file mode 100755 index 00000000..5e76d451 Binary files /dev/null and b/libs/maven-reporting-api-3.0.jar differ diff --git a/libs/maven-reporting-impl-2.3.jar b/libs/maven-reporting-impl-2.3.jar new file mode 100755 index 00000000..a0b28924 Binary files /dev/null and b/libs/maven-reporting-impl-2.3.jar differ diff --git a/libs/maven-repository-metadata-3.3.3.jar b/libs/maven-repository-metadata-3.3.3.jar new file mode 100755 index 00000000..6cb6c196 Binary files /dev/null and b/libs/maven-repository-metadata-3.3.3.jar differ diff --git a/libs/maven-settings-3.3.3.jar b/libs/maven-settings-3.3.3.jar new file mode 100755 index 00000000..1111769d Binary files /dev/null and b/libs/maven-settings-3.3.3.jar differ diff --git a/libs/maven-settings-builder-3.3.3.jar b/libs/maven-settings-builder-3.3.3.jar new file mode 100755 index 00000000..dbf1fad7 Binary files /dev/null and b/libs/maven-settings-builder-3.3.3.jar differ diff --git a/libs/maven-shared-utils-0.6.jar b/libs/maven-shared-utils-0.6.jar new file mode 100755 index 00000000..95a646b6 Binary files /dev/null and b/libs/maven-shared-utils-0.6.jar differ diff --git a/libs/org.apache.oltu.oauth2.client-1.0.2.jar b/libs/org.apache.oltu.oauth2.client-1.0.2.jar new file mode 100755 index 00000000..180af4d2 Binary files /dev/null and b/libs/org.apache.oltu.oauth2.client-1.0.2.jar differ diff --git a/libs/org.apache.oltu.oauth2.common-1.0.2.jar b/libs/org.apache.oltu.oauth2.common-1.0.2.jar new file mode 100755 index 00000000..2b945b86 Binary files /dev/null and b/libs/org.apache.oltu.oauth2.common-1.0.2.jar differ diff --git a/libs/org.eclipse.sisu.inject-0.3.1.jar b/libs/org.eclipse.sisu.inject-0.3.1.jar new file mode 100755 index 00000000..0b7bf894 Binary files /dev/null and b/libs/org.eclipse.sisu.inject-0.3.1.jar differ diff --git a/libs/org.eclipse.sisu.plexus-0.3.1.jar b/libs/org.eclipse.sisu.plexus-0.3.1.jar new file mode 100755 index 00000000..11030342 Binary files /dev/null and b/libs/org.eclipse.sisu.plexus-0.3.1.jar differ diff --git a/libs/oro-2.0.8.jar b/libs/oro-2.0.8.jar new file mode 100755 index 00000000..23488d26 Binary files /dev/null and b/libs/oro-2.0.8.jar differ diff --git a/libs/picocontainer-2.15.jar b/libs/picocontainer-2.15.jar new file mode 100755 index 00000000..984911ba Binary files /dev/null and b/libs/picocontainer-2.15.jar differ diff --git a/libs/plexus-cipher-1.7.jar b/libs/plexus-cipher-1.7.jar new file mode 100755 index 00000000..21928b98 Binary files /dev/null and b/libs/plexus-cipher-1.7.jar differ diff --git a/libs/plexus-classworlds-2.5.2.jar b/libs/plexus-classworlds-2.5.2.jar new file mode 100755 index 00000000..2560b3ff Binary files /dev/null and b/libs/plexus-classworlds-2.5.2.jar differ diff --git a/libs/plexus-component-annotations-1.5.5.jar b/libs/plexus-component-annotations-1.5.5.jar new file mode 100755 index 00000000..e4de16fe Binary files /dev/null and b/libs/plexus-component-annotations-1.5.5.jar differ diff --git a/libs/plexus-container-default-1.0-alpha-9-stable-1.jar b/libs/plexus-container-default-1.0-alpha-9-stable-1.jar new file mode 100755 index 00000000..d205236a Binary files /dev/null and b/libs/plexus-container-default-1.0-alpha-9-stable-1.jar differ diff --git a/libs/plexus-i18n-1.0-beta-7.jar b/libs/plexus-i18n-1.0-beta-7.jar new file mode 100755 index 00000000..29046438 Binary files /dev/null and b/libs/plexus-i18n-1.0-beta-7.jar differ diff --git a/libs/plexus-interpolation-1.21.jar b/libs/plexus-interpolation-1.21.jar new file mode 100755 index 00000000..8a681ef3 Binary files /dev/null and b/libs/plexus-interpolation-1.21.jar differ diff --git a/libs/plexus-resources-1.0.1.jar b/libs/plexus-resources-1.0.1.jar new file mode 100755 index 00000000..3798f44c Binary files /dev/null and b/libs/plexus-resources-1.0.1.jar differ diff --git a/libs/plexus-sec-dispatcher-1.3.jar b/libs/plexus-sec-dispatcher-1.3.jar new file mode 100755 index 00000000..9dc9f64b Binary files /dev/null and b/libs/plexus-sec-dispatcher-1.3.jar differ diff --git a/libs/plexus-utils-3.0.20.jar b/libs/plexus-utils-3.0.20.jar new file mode 100755 index 00000000..d2f340b1 Binary files /dev/null and b/libs/plexus-utils-3.0.20.jar differ diff --git a/libs/plexus-velocity-1.1.8.jar b/libs/plexus-velocity-1.1.8.jar new file mode 100755 index 00000000..7c0581d4 Binary files /dev/null and b/libs/plexus-velocity-1.1.8.jar differ diff --git a/libs/sisu-guice-3.2.5-no_aop.jar b/libs/sisu-guice-3.2.5-no_aop.jar new file mode 100755 index 00000000..71151220 Binary files /dev/null and b/libs/sisu-guice-3.2.5-no_aop.jar differ diff --git a/libs/snakeyaml-1.5.jar b/libs/snakeyaml-1.5.jar new file mode 100755 index 00000000..8fcafedf Binary files /dev/null and b/libs/snakeyaml-1.5.jar differ diff --git a/libs/sslext-1.2-0.jar b/libs/sslext-1.2-0.jar new file mode 100755 index 00000000..5d7175f7 Binary files /dev/null and b/libs/sslext-1.2-0.jar differ diff --git a/libs/struts-core-1.3.8.jar b/libs/struts-core-1.3.8.jar new file mode 100755 index 00000000..a4074127 Binary files /dev/null and b/libs/struts-core-1.3.8.jar differ diff --git a/libs/struts-taglib-1.3.8.jar b/libs/struts-taglib-1.3.8.jar new file mode 100755 index 00000000..62a1df0f Binary files /dev/null and b/libs/struts-taglib-1.3.8.jar differ diff --git a/libs/struts-tiles-1.3.8.jar b/libs/struts-tiles-1.3.8.jar new file mode 100755 index 00000000..0f551ac9 Binary files /dev/null and b/libs/struts-tiles-1.3.8.jar differ diff --git a/libs/system-rules-1.12.1.jar b/libs/system-rules-1.12.1.jar new file mode 100755 index 00000000..400a675f Binary files /dev/null and b/libs/system-rules-1.12.1.jar differ diff --git a/libs/tmc-checkstyle-runner-3.0.3-20170213.095103-1.jar b/libs/tmc-checkstyle-runner-3.0.3-20170213.095103-1.jar new file mode 100755 index 00000000..d4dd8e14 Binary files /dev/null and b/libs/tmc-checkstyle-runner-3.0.3-20170213.095103-1.jar differ diff --git a/libs/tmc-junit-runner-0.2.5.jar b/libs/tmc-junit-runner-0.2.5.jar new file mode 100755 index 00000000..b95888bd Binary files /dev/null and b/libs/tmc-junit-runner-0.2.5.jar differ diff --git a/libs/tmc-langs-abstraction-1.0.0.jar b/libs/tmc-langs-abstraction-1.0.0.jar new file mode 100755 index 00000000..7ad99821 Binary files /dev/null and b/libs/tmc-langs-abstraction-1.0.0.jar differ diff --git a/libs/tmc-langs-framework-0.7.9-20180418.135445-1.jar b/libs/tmc-langs-framework-0.7.9-20180418.135445-1.jar new file mode 100755 index 00000000..d141552c Binary files /dev/null and b/libs/tmc-langs-framework-0.7.9-20180418.135445-1.jar differ diff --git a/libs/tmc-langs-java-0.7.9-20180418.135635-1.jar b/libs/tmc-langs-java-0.7.9-20180418.135635-1.jar new file mode 100755 index 00000000..f3f66c70 Binary files /dev/null and b/libs/tmc-langs-java-0.7.9-20180418.135635-1.jar differ diff --git a/libs/tmc-langs-make-0.7.9-20180418.135700-1.jar b/libs/tmc-langs-make-0.7.9-20180418.135700-1.jar new file mode 100755 index 00000000..c193e15b Binary files /dev/null and b/libs/tmc-langs-make-0.7.9-20180418.135700-1.jar differ diff --git a/libs/tmc-langs-notests-0.7.9-20180418.135716-1.jar b/libs/tmc-langs-notests-0.7.9-20180418.135716-1.jar new file mode 100755 index 00000000..957b8c49 Binary files /dev/null and b/libs/tmc-langs-notests-0.7.9-20180418.135716-1.jar differ diff --git a/libs/tmc-langs-python3-0.7.9-20180418.135709-1.jar b/libs/tmc-langs-python3-0.7.9-20180418.135709-1.jar new file mode 100755 index 00000000..4924e181 Binary files /dev/null and b/libs/tmc-langs-python3-0.7.9-20180418.135709-1.jar differ diff --git a/libs/tmc-langs-qmake-0.7.9-20180418.135727-1.jar b/libs/tmc-langs-qmake-0.7.9-20180418.135727-1.jar new file mode 100755 index 00000000..b86d06e1 Binary files /dev/null and b/libs/tmc-langs-qmake-0.7.9-20180418.135727-1.jar differ diff --git a/libs/tmc-langs-r-0.7.9-20180418.135738-1.jar b/libs/tmc-langs-r-0.7.9-20180418.135738-1.jar new file mode 100755 index 00000000..356410eb Binary files /dev/null and b/libs/tmc-langs-r-0.7.9-20180418.135738-1.jar differ diff --git a/libs/tmc-langs-util-0.7.9-20180418.135748-1.jar b/libs/tmc-langs-util-0.7.9-20180418.135748-1.jar new file mode 100755 index 00000000..b2d9cc4f Binary files /dev/null and b/libs/tmc-langs-util-0.7.9-20180418.135748-1.jar differ diff --git a/libs/truth-0.28.jar b/libs/truth-0.28.jar new file mode 100755 index 00000000..8b797869 Binary files /dev/null and b/libs/truth-0.28.jar differ diff --git a/libs/velocity-1.5.jar b/libs/velocity-1.5.jar new file mode 100755 index 00000000..7c7f2c43 Binary files /dev/null and b/libs/velocity-1.5.jar differ diff --git a/libs/velocity-tools-2.0.jar b/libs/velocity-tools-2.0.jar new file mode 100755 index 00000000..beb7434d Binary files /dev/null and b/libs/velocity-tools-2.0.jar differ diff --git a/libs/wagon-http-2.9.jar b/libs/wagon-http-2.9.jar new file mode 100755 index 00000000..48ea8123 Binary files /dev/null and b/libs/wagon-http-2.9.jar differ diff --git a/libs/wagon-http-shared-2.9.jar b/libs/wagon-http-shared-2.9.jar new file mode 100755 index 00000000..9c19b652 Binary files /dev/null and b/libs/wagon-http-shared-2.9.jar differ diff --git a/libs/wagon-provider-api-2.9.jar b/libs/wagon-provider-api-2.9.jar new file mode 100755 index 00000000..def29720 Binary files /dev/null and b/libs/wagon-provider-api-2.9.jar differ diff --git a/libs/xercesImpl-2.9.1.jar b/libs/xercesImpl-2.9.1.jar new file mode 100755 index 00000000..547f5630 Binary files /dev/null and b/libs/xercesImpl-2.9.1.jar differ diff --git a/libs/xml-apis-1.3.04.jar b/libs/xml-apis-1.3.04.jar new file mode 100755 index 00000000..d42c0ea6 Binary files /dev/null and b/libs/xml-apis-1.3.04.jar differ diff --git a/pom.xml b/pom.xml deleted file mode 100644 index eefdfed7..00000000 --- a/pom.xml +++ /dev/null @@ -1,204 +0,0 @@ - - - 4.0.0 - fi.helsinki.cs.tmc.intellij - tmc-intellij - 2.0.3 - jar - - UTF-8 - 1.8 - 1.8 - - - - - tmc - TMC repo - http://maven.testmycode.net/nexus/content/groups/public - - true - - - true - always - - - - vektah-openapi - 3rd party openapi repository - https://github.com/Vektah/maven-intellij-openapi/raw/master/ - - - - - - org.apache.commons - commons-lang3 - 3.5 - - - - jdom - jdom - 1.1 - - - org.picocontainer - picocontainer - 2.15 - - - junit - junit-dep - 4.11 - - - fi.helsinki.cs.tmc - core - 0.10.5-SNAPSHOT - - - fi.helsinki.cs.tmc - tmc-checkstyle-runner - 3.0.3-SNAPSHOT - - - org.mockito - mockito-all - 1.9.0 - test - - - org.slf4j - slf4j-api - 1.7.21 - - - org.slf4j - slf4j-log4j12 - 1.7.21 - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.17 - maven-plugin - - - provided - net.vektah - intellij-openapi - 12.1.4 - - - provided - net.vektah - intellij-util - 12.1.4 - - - provided - net.vektah - intellij-annotations - 12.1.4 - - - net.vektah - provided - intellij-extensions - 12.1.4 - - - - - - - ${basedir}/tmc-plugin-intellij/src/main/java/ - ${basedir}/tmc-plugin-intellij/src/test/java - - - org.apache.maven.plugins - maven-compiler-plugin - 3.5.1 - - 1.8 - 1.8 - -Xlint:unchecked - - ${project.build.directory}/dependency/intellij-idea/lib/ - - - - - org.apache.maven.plugins - maven-shade-plugin - 2.4.1 - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.17 - - checkstyle.xml - - - - com.puppycrawl.tools - checkstyle - 8.2 - - - - - org.eluder.coveralls - coveralls-maven-plugin - 4.2.0 - - - - org.codehaus.mojo - cobertura-maven-plugin - 2.7 - - xml - 256m - - true - - - true - - **/TmcIcons.class - **/**/ui/**/*.class - **/**/actions/*.class - **/**/importexercise/*.class - - - - - - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.17 - - checkstyle.xml - - - - - checkstyle - - - - - - - - diff --git a/prepare-build.sh b/prepare-build.sh deleted file mode 100755 index 824de256..00000000 --- a/prepare-build.sh +++ /dev/null @@ -1,2 +0,0 @@ -mkdir -p target/dependency/intellij-idea -curl -L https://nygren.xyz/ideaIC-2017.1.1.tar.gz | tar xz --strip-components=1 -C target/dependency/intellij-idea diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 00000000..b5b34875 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "tmc-intellij" diff --git a/tmc-plugin-intellij/resources/META-INF/plugin.xml b/tmc-plugin-intellij/resources/META-INF/plugin.xml index 03d3f566..ab7bea77 100644 --- a/tmc-plugin-intellij/resources/META-INF/plugin.xml +++ b/tmc-plugin-intellij/resources/META-INF/plugin.xml @@ -1,7 +1,7 @@ fi.helsinki.cs.tmc - TMC Plugin for Intellij - 2.0.3 + TMC - Test My Code + 2.1.0 TMC IntelliJ team @ Github - - + + - - + com.intellij.modules.platform + com.intellij.modules.java diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/OpenToolWindowAction.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/OpenToolWindowAction.java index fa42a939..3eeb900a 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/OpenToolWindowAction.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/OpenToolWindowAction.java @@ -63,7 +63,7 @@ public void openToolWindow(Project project) { public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindow toolWindow) { logger.info("Creating tool window content. @OpenToolWindowAction"); ProjectListWindow window = new ProjectListWindow(); - ContentFactory cf = ContentFactory.SERVICE.getInstance(); + ContentFactory cf = ContentFactory.getInstance(); Content content = cf.createContent(window.getBasePanel(), "", true); toolWindow.getContentManager().addContent(content); ProjectListManagerHolder.get().addWindow(window); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/StartupEvent.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/StartupEvent.java index 00bbfd29..fd11cae9 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/StartupEvent.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/actions/StartupEvent.java @@ -22,11 +22,12 @@ import com.intellij.openapi.editor.actionSystem.TypedActionHandler; import com.intellij.openapi.progress.util.ProgressWindow; import com.intellij.openapi.project.Project; -import com.intellij.openapi.startup.StartupActivity; +import com.intellij.openapi.startup.ProjectActivity; import com.intellij.openapi.wm.ToolWindowManager; import fi.helsinki.cs.tmc.intellij.ui.login.LoginDialog; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,12 +36,24 @@ /** * The actions to be executed on project startup defined in plugin.xml exercises group on line * <postStartupActivity implementation ="fi.helsinki.cs.tmc.intellij.actions.StartupEvent"> + * + *

Implements the modern {@link ProjectActivity} contract. The {@code execute} method + * is the suspend function generated from Kotlin; we delegate to {@link #runActivity(Project)} + * for the actual logic. */ -public class StartupEvent implements StartupActivity { +public class StartupEvent implements ProjectActivity { private static final Logger logger = LoggerFactory.getLogger(StartupEvent.class); + @Nullable @Override + public Object execute( + @NotNull Project project, + @NotNull kotlin.coroutines.Continuation continuation) { + runActivity(project); + return kotlin.Unit.INSTANCE; + } + public void runActivity(@NotNull Project project) { logger.info("Opening project {} and running startup actions. @StartupEvent", project); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/ExerciseDatabaseManager.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/ExerciseDatabaseManager.java index 8046e077..a8fc3cbd 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/ExerciseDatabaseManager.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/ExerciseDatabaseManager.java @@ -3,8 +3,6 @@ import fi.helsinki.cs.tmc.intellij.services.persistence.ExerciseDatabase; import fi.helsinki.cs.tmc.intellij.services.persistence.PersistentExerciseDatabase; -import com.intellij.openapi.components.ServiceManager; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,23 +10,27 @@ public class ExerciseDatabaseManager { private static final Logger logger = LoggerFactory.getLogger(ExerciseDatabaseManager.class); - private static final PersistentExerciseDatabase persistentExerciseDatabase = - ServiceManager.getService(PersistentExerciseDatabase.class); private ExerciseDatabaseManager() {} + private static PersistentExerciseDatabase persistent() { + return PersistentExerciseDatabase.getInstance(); + } + public static synchronized ExerciseDatabase get() { logger.info("Get ExerciseDatabase. @ExerciseDatabaseManager."); - if (persistentExerciseDatabase.getExerciseDatabase() == null) { - persistentExerciseDatabase.setExerciseDatabase(new ExerciseDatabase()); + PersistentExerciseDatabase p = persistent(); + if (p.getExerciseDatabase() == null) { + p.setExerciseDatabase(new ExerciseDatabase()); } - return persistentExerciseDatabase.getExerciseDatabase(); + return p.getExerciseDatabase(); } public static synchronized void setup() { logger.info("Setup ExerciseDatabase. @ExerciseDatabaseManager."); - if (persistentExerciseDatabase.getExerciseDatabase() == null) { - persistentExerciseDatabase.setExerciseDatabase(new ExerciseDatabase()); + PersistentExerciseDatabase p = persistent(); + if (p.getExerciseDatabase() == null) { + p.setExerciseDatabase(new ExerciseDatabase()); } } } diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/TmcSettingsManager.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/TmcSettingsManager.java index a730b586..07d91544 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/TmcSettingsManager.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/holders/TmcSettingsManager.java @@ -3,8 +3,6 @@ import fi.helsinki.cs.tmc.intellij.io.SettingsTmc; import fi.helsinki.cs.tmc.intellij.services.persistence.PersistentTmcSettings; -import com.intellij.openapi.components.ServiceManager; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,23 +10,27 @@ public final class TmcSettingsManager { private static final Logger logger = LoggerFactory.getLogger(TmcSettingsManager.class); - private static final PersistentTmcSettings persistentSettings = - ServiceManager.getService(PersistentTmcSettings.class); private TmcSettingsManager() {} + private static PersistentTmcSettings persistentSettings() { + return PersistentTmcSettings.getInstance(); + } + public static synchronized SettingsTmc get() { logger.info("Get SettingsTmc. @TmcSettingsManager."); - if (persistentSettings.getSettingsTmc() == null) { - persistentSettings.setSettingsTmc(new SettingsTmc()); + PersistentTmcSettings ps = persistentSettings(); + if (ps.getSettingsTmc() == null) { + ps.setSettingsTmc(new SettingsTmc()); } - return persistentSettings.getSettingsTmc(); + return ps.getSettingsTmc(); } public static synchronized void setup() { logger.info("Setup SettingsTmc. @TmcSettingsManager."); - if (persistentSettings.getSettingsTmc() == null) { - persistentSettings.setSettingsTmc(new SettingsTmc()); + PersistentTmcSettings ps = persistentSettings(); + if (ps.getSettingsTmc() == null) { + ps.setSettingsTmc(new SettingsTmc()); } } } diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/NewProjectUtilModified.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/NewProjectUtilModified.java index 82d20106..a5f9f8ca 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/NewProjectUtilModified.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/NewProjectUtilModified.java @@ -118,7 +118,7 @@ public static void importExercise(String path) { logger.info("saving project after builder commit"); // without save method nothing happens - ProjectUtil.updateLastProjectLocation(path); + ProjectUtil.updateLastProjectLocation(java.nio.file.Paths.get(path)); newProject.save(); if (!ApplicationManager.getApplication().isUnitTestMode()) { newProject.save(); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/ProjectFromSourcesBuilderImplModified.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/ProjectFromSourcesBuilderImplModified.java index 40a05c6f..7e2b5cc4 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/ProjectFromSourcesBuilderImplModified.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/importexercise/ProjectFromSourcesBuilderImplModified.java @@ -78,8 +78,7 @@ public static void commit(@NotNull final Project project, String path) { final Map projectLibs = new HashMap<>(); final List result = new ArrayList<>(); try { - AccessToken token = WriteAction.start(); - try { + WriteAction.run(() -> { // create project-level libraries logger.info("Create project-level libraries."); for (LibraryDescriptor lib : projectDescriptor.getLibraries()) { @@ -96,10 +95,7 @@ public static void commit(@NotNull final Project project, String path) { } projectLibraryTable.commit(); - - } finally { - token.finish(); - } + }); } catch (Exception e) { logger.warn(e.getMessage()); new ErrorMessageService().showErrorMessageWithExceptionDetails(e, "Error adding module to project", true); @@ -108,9 +104,8 @@ public static void commit(@NotNull final Project project, String path) { final Map descriptorToModuleMap = new HashMap<>(); try { - AccessToken token = WriteAction.start(); logger.info("Starts creating modules"); - try { + WriteAction.run(() -> { final ModifiableModuleModel moduleModel = ModuleManager.getInstance(project).getModifiableModel(); logger.info("Goes trough module descriptions to build module"); @@ -135,10 +130,7 @@ public static void commit(@NotNull final Project project, String path) { } logger.info("Saving up created modules"); moduleModel.commit(); - - } finally { - token.finish(); - } + }); } catch (Exception e) { logger.warn(e.getMessage()); new ErrorMessageService().showErrorMessageWithExceptionDetails(e, "Error adding module to project", true); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/logging/PropertySetter.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/logging/PropertySetter.java index 931ad120..8bcd1d2a 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/logging/PropertySetter.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/logging/PropertySetter.java @@ -1,45 +1,13 @@ package fi.helsinki.cs.tmc.intellij.services.logging; -import com.intellij.openapi.application.PathManager; - -import org.apache.log4j.PropertyConfigurator; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; - +/** + * Historically configured a bundled log4j 1.x. IntelliJ Platform 2024.1+ no longer ships + * log4j 1.x and provides its own SLF4J binding, so this class is now a no-op kept only to + * preserve the existing API surface used by {@code StartupEvent.setupLoggers}. + */ public class PropertySetter { public void setLog4jProperties() { - File file = - new File( - PathManager.getPluginsPath() - + "/tmc-plugin-intellij/lib/tmc-plugin-intellij.jar"); - - if (file.exists()) { - setPluginLog(); - } else { - setDevLog(); - } - } - - private void setPluginLog() { - String jarPath = - PathManager.getPluginsPath() + "/tmc-plugin-intellij/lib/tmc-plugin-intellij.jar"; - try { - JarFile jar = new JarFile(jarPath); - JarEntry entry = jar.getJarEntry("log4j.properties"); - InputStream is = jar.getInputStream(entry); - PropertyConfigurator.configure(is); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void setDevLog() { - InputStream is = getClass().getResourceAsStream("/log4j.properties"); - PropertyConfigurator.configure(is); + // Intentionally left blank: SLF4J output is routed to idea.log by the platform binding. } } diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/login/LoginManager.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/login/LoginManager.java index dccd5c84..b726380e 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/login/LoginManager.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/login/LoginManager.java @@ -1,7 +1,6 @@ package fi.helsinki.cs.tmc.intellij.services.login; import com.google.common.base.Optional; -import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.ui.Messages; import fi.helsinki.cs.tmc.core.domain.ProgressObserver; import fi.helsinki.cs.tmc.core.exceptions.AuthenticationFailedException; @@ -79,9 +78,9 @@ public void logout() { logger.info("Logging out user. @LoginManager"); final PersistentTmcSettings saveSettings = - ServiceManager.getService(PersistentTmcSettings.class); + PersistentTmcSettings.getInstance(); final SettingsTmc settings = - ServiceManager.getService(PersistentTmcSettings.class).getSettingsTmc(); + PersistentTmcSettings.getInstance().getSettingsTmc(); settings.setToken(Optional.absent()); settings.setOauthCredentials(Optional.absent()); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentExerciseDatabase.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentExerciseDatabase.java index 9a37b26d..1119a4cf 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentExerciseDatabase.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentExerciseDatabase.java @@ -1,7 +1,7 @@ package fi.helsinki.cs.tmc.intellij.services.persistence; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.PersistentStateComponent; -import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import com.intellij.util.xmlb.XmlSerializerUtil; @@ -52,10 +52,9 @@ public void loadState(PersistentExerciseDatabase persistentExerciseDatabase) { XmlSerializerUtil.copyBean(persistentExerciseDatabase, this); } - @Nullable public static PersistentExerciseDatabase getInstance() { logger.info("Processing getInstance. @PersistentExerciseDatabase."); - return ServiceManager.getService(PersistentExerciseDatabase.class); + return ApplicationManager.getApplication().getService(PersistentExerciseDatabase.class); } } diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentTmcSettings.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentTmcSettings.java index 7da3bf03..e6c702d0 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentTmcSettings.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/services/persistence/PersistentTmcSettings.java @@ -2,8 +2,8 @@ import fi.helsinki.cs.tmc.intellij.io.SettingsTmc; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.PersistentStateComponent; -import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; @@ -44,10 +44,9 @@ public void loadState(PersistentTmcSettings persistentTmcSettings) { XmlSerializerUtil.copyBean(persistentTmcSettings, this); } - @Nullable public static PersistentTmcSettings getInstance() { logger.info("Processing getInstance. @PersistentTmcSettings"); - return ServiceManager.getService(PersistentTmcSettings.class); + return ApplicationManager.getApplication().getService(PersistentTmcSettings.class); } public SettingsTmc getSettingsTmc() { diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ActivateSnapshotsListeners.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ActivateSnapshotsListeners.java index 70c14214..19d0d74a 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ActivateSnapshotsListeners.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ActivateSnapshotsListeners.java @@ -2,7 +2,7 @@ import fi.helsinki.cs.tmc.intellij.services.PathResolver; import fi.helsinki.cs.tmc.intellij.services.exercises.CourseAndExerciseManager; -import fi.helsinki.cs.tmc.snapshots.*; +import fi.helsinki.cs.tmc.spyware.*; import com.intellij.openapi.project.Project; diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ButtonInputListener.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ButtonInputListener.java index cdd6027a..39c2c7fb 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ButtonInputListener.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/ButtonInputListener.java @@ -4,7 +4,7 @@ import fi.helsinki.cs.tmc.intellij.services.ObjectFinder; import fi.helsinki.cs.tmc.intellij.services.PathResolver; import fi.helsinki.cs.tmc.intellij.services.exercises.CourseAndExerciseManager; -import fi.helsinki.cs.tmc.snapshots.*; +import fi.helsinki.cs.tmc.spyware.*; import com.google.gson.Gson; diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsEventManager.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsEventManager.java index 5aefb21f..fa92e695 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsEventManager.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsEventManager.java @@ -6,7 +6,7 @@ import fi.helsinki.cs.tmc.core.domain.ProgressObserver; import fi.helsinki.cs.tmc.intellij.holders.TmcCoreHolder; import fi.helsinki.cs.tmc.intellij.holders.TmcSettingsManager; -import fi.helsinki.cs.tmc.snapshots.*; +import fi.helsinki.cs.tmc.spyware.*; import com.intellij.openapi.application.ApplicationManager; @@ -21,8 +21,13 @@ public class SnapshotsEventManager { private static final Logger logger = LoggerFactory.getLogger(SnapshotsEventManager.class); + private static final SpywareSettings SETTINGS = new SpywareSettings() { + @Override public boolean isSpywareEnabled() { return true; } + @Override public boolean isDetailedSpywareEnabled() { return true; } + }; + private static final EventSendBuffer buffer = - new EventSendBuffer(new TmcServerCommunicationTaskFactory(), new EventStore()); + new EventSendBuffer(SETTINGS, new TmcServerCommunicationTaskFactory(), new EventStore()); public static void add(final LoggableEvent log) { ApplicationManager.getApplication() diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsFileListener.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsFileListener.java index 4164cf4e..6e86bd44 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsFileListener.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsFileListener.java @@ -6,7 +6,7 @@ import fi.helsinki.cs.tmc.intellij.services.exercises.CourseAndExerciseManager; import fi.helsinki.cs.tmc.intellij.snapshots.snapshotsutils.ActiveThreadSet; import fi.helsinki.cs.tmc.intellij.snapshots.snapshotsutils.RecursiveZipper; -import fi.helsinki.cs.tmc.snapshots.*; +import fi.helsinki.cs.tmc.spyware.*; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsTabListener.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsTabListener.java index 44e9e550..4335afe0 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsTabListener.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/SnapshotsTabListener.java @@ -8,7 +8,7 @@ import fi.helsinki.cs.tmc.intellij.services.ObjectFinder; import fi.helsinki.cs.tmc.intellij.services.PathResolver; import fi.helsinki.cs.tmc.intellij.services.exercises.CourseAndExerciseManager; -import fi.helsinki.cs.tmc.snapshots.*; +import fi.helsinki.cs.tmc.spyware.*; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.FileEditorManagerEvent; diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/TextInputListener.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/TextInputListener.java index 8e291e94..a81a922d 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/TextInputListener.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/snapshots/TextInputListener.java @@ -6,7 +6,7 @@ import fi.helsinki.cs.tmc.intellij.services.ObjectFinder; import fi.helsinki.cs.tmc.intellij.services.PathResolver; import fi.helsinki.cs.tmc.intellij.services.exercises.CourseAndExerciseManager; -import fi.helsinki.cs.tmc.snapshots.*; +import fi.helsinki.cs.tmc.spyware.*; import com.intellij.openapi.editor.event.DocumentEvent; import com.intellij.openapi.editor.event.DocumentListener; diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/courseselection/CourseListWindow.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/courseselection/CourseListWindow.java index e282abcb..f42f7d7d 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/courseselection/CourseListWindow.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/courseselection/CourseListWindow.java @@ -1,7 +1,6 @@ package fi.helsinki.cs.tmc.intellij.ui.courseselection; import com.google.common.base.Optional; -import com.intellij.openapi.components.ServiceManager; import com.intellij.ui.components.JBList; import com.intellij.ui.components.JBScrollPane; import fi.helsinki.cs.tmc.core.domain.Course; @@ -171,9 +170,9 @@ public void actionPerformed(ActionEvent e) { try { final PersistentTmcSettings saveSettings = - ServiceManager.getService(PersistentTmcSettings.class); + PersistentTmcSettings.getInstance(); SettingsTmc settingsTmc = - ServiceManager.getService(PersistentTmcSettings.class).getSettingsTmc(); + PersistentTmcSettings.getInstance().getSettingsTmc(); settingsTmc.setCourse(Optional.of(course)); saveSettings.setSettingsTmc(settingsTmc); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/login/LoginDialog.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/login/LoginDialog.java index 55ff1a8b..40918e34 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/login/LoginDialog.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/login/LoginDialog.java @@ -1,6 +1,5 @@ package fi.helsinki.cs.tmc.intellij.ui.login; -import com.intellij.openapi.components.ServiceManager; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; @@ -40,7 +39,7 @@ public LoginDialog() { setModal(true); getRootPane().setDefaultButton(buttonOK); - settingsTmc = ServiceManager.getService(PersistentTmcSettings.class).getSettingsTmc(); + settingsTmc = PersistentTmcSettings.getInstance().getSettingsTmc(); previousOrganization = settingsTmc.getOrganization().orNull(); previousCourse = settingsTmc.getCurrentCourse().orNull(); @@ -101,8 +100,7 @@ public static void display() { } private void onOK() { - final PersistentTmcSettings saveSettings = - ServiceManager.getService(PersistentTmcSettings.class); + final PersistentTmcSettings saveSettings = PersistentTmcSettings.getInstance(); settingsTmc.setUsername(usernameField.getText()); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/organizationselection/OrganizationListWindow.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/organizationselection/OrganizationListWindow.java index b3b7c920..59bb21e2 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/organizationselection/OrganizationListWindow.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/organizationselection/OrganizationListWindow.java @@ -1,7 +1,6 @@ package fi.helsinki.cs.tmc.intellij.ui.organizationselection; import com.google.common.base.Optional; -import com.intellij.openapi.components.ServiceManager; import com.intellij.ui.components.JBList; import com.intellij.ui.components.JBScrollPane; import com.intellij.util.containers.hash.HashMap; @@ -165,9 +164,9 @@ public void actionPerformed(ActionEvent e) { try { final PersistentTmcSettings persistentSettings = - ServiceManager.getService(PersistentTmcSettings.class); + PersistentTmcSettings.getInstance(); SettingsTmc settingsTmc = - ServiceManager.getService(PersistentTmcSettings.class).getSettingsTmc(); + PersistentTmcSettings.getInstance().getSettingsTmc(); settingsTmc.setOrganization(Optional.of(organization)); persistentSettings.setSettingsTmc(settingsTmc); diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/settings/SettingsPanel.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/settings/SettingsPanel.java index 1d1a1a99..222e3974 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/settings/SettingsPanel.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/settings/SettingsPanel.java @@ -17,7 +17,6 @@ import fi.helsinki.cs.tmc.intellij.services.persistence.PersistentTmcSettings; import fi.helsinki.cs.tmc.intellij.snapshots.ButtonInputListener; -import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import fi.helsinki.cs.tmc.intellij.ui.courseselection.CourseListWindow; @@ -106,7 +105,7 @@ public static SettingsPanel getInstance() { public void setCurrentOrganization() { final PersistentTmcSettings persistentSettings = - ServiceManager.getService(PersistentTmcSettings.class); + PersistentTmcSettings.getInstance(); SettingsTmc settings = persistentSettings.getSettingsTmc(); if (settings.getOrganization().isPresent() @@ -119,7 +118,7 @@ public void setCurrentOrganization() { public void setCurrentCourse() { final PersistentTmcSettings persistentSettings = - ServiceManager.getService(PersistentTmcSettings.class); + PersistentTmcSettings.getInstance(); SettingsTmc settings = persistentSettings.getSettingsTmc(); if (settings.getCurrentCourse().isPresent() @@ -173,9 +172,9 @@ private ActionListener createActionListenerDownload() { public void saveInformation() { logger.info("Saving settings information. @SettingsPanel"); final PersistentTmcSettings persistentSettings = - ServiceManager.getService(PersistentTmcSettings.class); + PersistentTmcSettings.getInstance(); SettingsTmc settingsTmc = - ServiceManager.getService(PersistentTmcSettings.class).getSettingsTmc(); + PersistentTmcSettings.getInstance().getSettingsTmc(); settingsTmc.setCheckForExercises(checkForNewOrCheckBox.isSelected()); settingsTmc.setProjectBasePath(projectPathField.getText()); @@ -221,7 +220,7 @@ private ActionListener createActionListenerOk() { this.instance = null; SettingsTmc settingsTmc = - ServiceManager.getService(PersistentTmcSettings.class).getSettingsTmc(); + PersistentTmcSettings.getInstance().getSettingsTmc(); if (settingsTmc.getOrganization().orNull() != organizationFirst) { ApplicationManager.getApplication() diff --git a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/testresults/TestResultPanelFactory.java b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/testresults/TestResultPanelFactory.java index 2d557fee..df5ab49d 100644 --- a/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/testresults/TestResultPanelFactory.java +++ b/tmc-plugin-intellij/src/main/java/fi/helsinki/cs/tmc/intellij/ui/testresults/TestResultPanelFactory.java @@ -31,7 +31,7 @@ public void createToolWindowContent(@NotNull Project project, @NotNull ToolWindo logger.info("Creating tool window content for test results. " + "@TestResultPanelFactory"); TestResultsPanel panel = new TestResultsPanel(); - ContentFactory cf = ContentFactory.SERVICE.getInstance(); + ContentFactory cf = ContentFactory.getInstance(); Content content = cf.createContent(panel, "", true); toolWindow.getContentManager().addContent(content);