internal/core/startup/xml.go (162 lines of code) (raw):
/*
* Copyright 2021-2024 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package startup
import (
"fmt"
"github.com/JetBrains/qodana-cli/internal/platform/qdcontainer"
)
func jdkTableXml(jdkPath string) string {
return fmt.Sprintf(
`<application>
<component name="ProjectJdkTable">
<jdk version="2">
<name value="11" />
<type value="JavaSDK" />
<version value="java version "11"" />
<homePath value="%[1]v" />
<roots>
<annotationsPath>
<root type="composite">
<root url="jar://$APPLICATION_HOME_DIR$/plugins/java/lib/jdkAnnotations.jar!/" type="simple" />
</root>
</annotationsPath>
<classPath>
<root type="composite">
<root url="jrt://%[1]v!/java.base" type="simple" />
<root url="jrt://%[1]v!/java.compiler" type="simple" />
<root url="jrt://%[1]v!/java.datatransfer" type="simple" />
<root url="jrt://%[1]v!/java.desktop" type="simple" />
<root url="jrt://%[1]v!/java.instrument" type="simple" />
<root url="jrt://%[1]v!/java.logging" type="simple" />
<root url="jrt://%[1]v!/java.management" type="simple" />
<root url="jrt://%[1]v!/java.management.rmi" type="simple" />
<root url="jrt://%[1]v!/java.naming" type="simple" />
<root url="jrt://%[1]v!/java.net.http" type="simple" />
<root url="jrt://%[1]v!/java.prefs" type="simple" />
<root url="jrt://%[1]v!/java.rmi" type="simple" />
<root url="jrt://%[1]v!/java.scripting" type="simple" />
<root url="jrt://%[1]v!/java.se" type="simple" />
<root url="jrt://%[1]v!/java.security.jgss" type="simple" />
<root url="jrt://%[1]v!/java.security.sasl" type="simple" />
<root url="jrt://%[1]v!/java.smartcardio" type="simple" />
<root url="jrt://%[1]v!/java.sql" type="simple" />
<root url="jrt://%[1]v!/java.sql.rowset" type="simple" />
<root url="jrt://%[1]v!/java.transaction.xa" type="simple" />
<root url="jrt://%[1]v!/java.xml" type="simple" />
<root url="jrt://%[1]v!/java.xml.crypto" type="simple" />
<root url="jrt://%[1]v!/jdk.accessibility" type="simple" />
<root url="jrt://%[1]v!/jdk.aot" type="simple" />
<root url="jrt://%[1]v!/jdk.attach" type="simple" />
<root url="jrt://%[1]v!/jdk.charsets" type="simple" />
<root url="jrt://%[1]v!/jdk.compiler" type="simple" />
<root url="jrt://%[1]v!/jdk.crypto.cryptoki" type="simple" />
<root url="jrt://%[1]v!/jdk.crypto.ec" type="simple" />
<root url="jrt://%[1]v!/jdk.dynalink" type="simple" />
<root url="jrt://%[1]v!/jdk.hotspot.agent" type="simple" />
<root url="jrt://%[1]v!/jdk.httpserver" type="simple" />
<root url="jrt://%[1]v!/jdk.internal.ed" type="simple" />
<root url="jrt://%[1]v!/jdk.internal.jvmstat" type="simple" />
<root url="jrt://%[1]v!/jdk.internal.le" type="simple" />
<root url="jrt://%[1]v!/jdk.internal.opt" type="simple" />
<root url="jrt://%[1]v!/jdk.internal.vm.ci" type="simple" />
<root url="jrt://%[1]v!/jdk.internal.vm.compiler" type="simple" />
<root url="jrt://%[1]v!/jdk.internal.vm.compiler.management" type="simple" />
<root url="jrt://%[1]v!/jdk.jcmd" type="simple" />
<root url="jrt://%[1]v!/jdk.jdi" type="simple" />
<root url="jrt://%[1]v!/jdk.jdwp.agent" type="simple" />
<root url="jrt://%[1]v!/jdk.jfr" type="simple" />
<root url="jrt://%[1]v!/jdk.jsobject" type="simple" />
<root url="jrt://%[1]v!/jdk.localedata" type="simple" />
<root url="jrt://%[1]v!/jdk.management" type="simple" />
<root url="jrt://%[1]v!/jdk.management.agent" type="simple" />
<root url="jrt://%[1]v!/jdk.management.jfr" type="simple" />
<root url="jrt://%[1]v!/jdk.naming.dns" type="simple" />
<root url="jrt://%[1]v!/jdk.naming.rmi" type="simple" />
<root url="jrt://%[1]v!/jdk.net" type="simple" />
<root url="jrt://%[1]v!/jdk.pack" type="simple" />
<root url="jrt://%[1]v!/jdk.scripting.nashorn" type="simple" />
<root url="jrt://%[1]v!/jdk.scripting.nashorn.shell" type="simple" />
<root url="jrt://%[1]v!/jdk.sctp" type="simple" />
<root url="jrt://%[1]v!/jdk.security.auth" type="simple" />
<root url="jrt://%[1]v!/jdk.security.jgss" type="simple" />
<root url="jrt://%[1]v!/jdk.unsupported" type="simple" />
<root url="jrt://%[1]v!/jdk.xml.dom" type="simple" />
<root url="jrt://%[1]v!/jdk.zipfs" type="simple" />
</root>
</classPath>
<javadocPath>
<root type="composite" />
</javadocPath>
</roots>
<additional />
</jdk>
</component>
</application>
`, jdkPath,
)
}
func androidProjectDefaultXml(androidSdkPath string) string {
return fmt.Sprintf(
`<application>
<component name="ProjectManager">
<defaultProject>
<component name="PropertiesComponent">
<property name="android.sdk.path" value="%s" />
</component>
</defaultProject>
</component>
</application>`, androidSdkPath,
)
}
const securityXml = `<application>
<component name="PasswordSafe">
<option name="PROVIDER" value="KEEPASS" />
</component>
</application>`
var mavenSettingsXml = fmt.Sprintf(
`<settings>
<localRepository>%s/.m2</localRepository>
<mirrors>
<mirror>
<id>cache-central</id>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>https://cache-redirector.jetbrains.com/maven-central</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>cache-intellij-third-party-dependencies</id>
<name>IntelliJ Dependencies on Bintray</name>
<url>https://cache-redirector.jetbrains.com/intellij-third-party-dependencies</url>
<mirrorOf>intellij-third-party-dependencies</mirrorOf>
</mirror>
<mirror>
<id>cache-jcenter</id>
<name>JCenter on Bintray</name>
<url>https://cache-redirector.jetbrains.com/jcenter</url>
<mirrorOf>jcenter</mirrorOf>
</mirror>
<mirror>
<id>cache-groovy</id>
<name>Groovy Bintray Repository</name>
<url>https://cache-redirector.jetbrains.com/dl.bintray.com/groovy/maven/</url>
<mirrorOf>groovy</mirrorOf>
</mirror>
<mirror>
<id>cache-jitpack</id>
<name>jitpack</name>
<url>https://cache-redirector.jetbrains.com/jitpack.io</url>
<mirrorOf>jitpack</mirrorOf>
</mirror>
</mirrors>
</settings>
`, qdcontainer.DataCacheDir,
)
var mavenPathMacroxXml = fmt.Sprintf(
`<application>
<component name="PathMacrosImpl">
<macro name="MAVEN_REPOSITORY" value="%s/.m2" />
</component>
</application>`, qdcontainer.DataCacheDir,
)
const userPrefsXml = `?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE map SYSTEM "http://java.sun.com/dtd/preferences.dtd">
<map MAP_XML_VERSION="1.0">
</map>`