From e060f1c114ae339386ef1794b4df35608211e0cb Mon Sep 17 00:00:00 2001 From: "novice.li" Date: Sat, 25 Nov 2023 14:55:08 +0800 Subject: [PATCH] init --- jetbra-agent/pom.xml | 63 ++++++++++++++++++ .../main/java/win/novice/li/AgentMain.java | 50 ++++++++++++++ .../java/win/novice/li/HttpClientAdvice.java | 14 ++++ .../win/novice/li/PKIXBuilderParameters.java | 24 +++++++ .../main/java/win/novice/li/SystemAdvice.java | 29 ++++++++ .../java/win/novice/li/TrustAnchorHolder.java | 66 +++++++++++++++++++ .../src/main/resources/jarLocation.txt | 0 jetbra-server/pom.xml | 43 ++++++++++++ .../novice/li/JetbraServerApplication.java | 15 +++++ pom.xml | 25 +++++++ trust-crt/janetfilter.crt | 25 +++++++ trust-crt/jetbra.crt | 28 ++++++++ vmoptions/appcode.vmoptions | 21 ++++++ vmoptions/clion.vmoptions | 21 ++++++ vmoptions/datagrip.vmoptions | 22 +++++++ vmoptions/dataspell.vmoptions | 21 ++++++ vmoptions/devecostudio.vmoptions | 21 ++++++ vmoptions/gateway.vmoptions | 21 ++++++ vmoptions/goland.vmoptions | 21 ++++++ vmoptions/idea.vmoptions | 21 ++++++ vmoptions/jetbrains_client.vmoptions | 21 ++++++ vmoptions/jetbrainsclient.vmoptions | 21 ++++++ vmoptions/phpstorm.vmoptions | 21 ++++++ vmoptions/pycharm.vmoptions | 21 ++++++ vmoptions/rider.vmoptions | 21 ++++++ vmoptions/rubymine.vmoptions | 21 ++++++ vmoptions/studio.vmoptions | 21 ++++++ vmoptions/webide.vmoptions | 21 ++++++ vmoptions/webstorm.vmoptions | 21 ++++++ 29 files changed, 740 insertions(+) create mode 100644 jetbra-agent/pom.xml create mode 100644 jetbra-agent/src/main/java/win/novice/li/AgentMain.java create mode 100644 jetbra-agent/src/main/java/win/novice/li/HttpClientAdvice.java create mode 100644 jetbra-agent/src/main/java/win/novice/li/PKIXBuilderParameters.java create mode 100644 jetbra-agent/src/main/java/win/novice/li/SystemAdvice.java create mode 100644 jetbra-agent/src/main/java/win/novice/li/TrustAnchorHolder.java create mode 100644 jetbra-agent/src/main/resources/jarLocation.txt create mode 100644 jetbra-server/pom.xml create mode 100644 jetbra-server/src/main/java/win/novice/li/JetbraServerApplication.java create mode 100644 pom.xml create mode 100644 trust-crt/janetfilter.crt create mode 100644 trust-crt/jetbra.crt create mode 100644 vmoptions/appcode.vmoptions create mode 100644 vmoptions/clion.vmoptions create mode 100644 vmoptions/datagrip.vmoptions create mode 100644 vmoptions/dataspell.vmoptions create mode 100644 vmoptions/devecostudio.vmoptions create mode 100644 vmoptions/gateway.vmoptions create mode 100644 vmoptions/goland.vmoptions create mode 100644 vmoptions/idea.vmoptions create mode 100644 vmoptions/jetbrains_client.vmoptions create mode 100644 vmoptions/jetbrainsclient.vmoptions create mode 100644 vmoptions/phpstorm.vmoptions create mode 100644 vmoptions/pycharm.vmoptions create mode 100644 vmoptions/rider.vmoptions create mode 100644 vmoptions/rubymine.vmoptions create mode 100644 vmoptions/studio.vmoptions create mode 100644 vmoptions/webide.vmoptions create mode 100644 vmoptions/webstorm.vmoptions diff --git a/jetbra-agent/pom.xml b/jetbra-agent/pom.xml new file mode 100644 index 0000000..4b09e1c --- /dev/null +++ b/jetbra-agent/pom.xml @@ -0,0 +1,63 @@ + + + 4.0.0 + + win.novice + jetbra + 0.0.1 + + + win.novice.li + jetbra-agent + + + 17 + 17 + UTF-8 + + + + net.bytebuddy + byte-buddy + 1.14.8 + + + + net.bytebuddy + byte-buddy-agent + 1.14.8 + + + + + + + maven-assembly-plugin + + false + + jar-with-dependencies + + + + win.novice.li.AgentMain + true + true + + + + + + make-assembly + package + + single + + + + + + + \ No newline at end of file diff --git a/jetbra-agent/src/main/java/win/novice/li/AgentMain.java b/jetbra-agent/src/main/java/win/novice/li/AgentMain.java new file mode 100644 index 0000000..c55076b --- /dev/null +++ b/jetbra-agent/src/main/java/win/novice/li/AgentMain.java @@ -0,0 +1,50 @@ +package win.novice.li; + +import net.bytebuddy.agent.builder.AgentBuilder; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.matcher.ElementMatchers; + +import java.lang.instrument.Instrumentation; +import java.util.Set; + +public class AgentMain { + public static void premain(String agentArgs, Instrumentation inst) throws Exception { + printLogo(); + AgentBuilder agentBuilder = newAgentBuilder(); + agentBuilder.type(ElementMatchers.named("java.security.cert.PKIXBuilderParameters")) + .transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder + .visit(Advice.to(PKIXBuilderParameters.class) + .on(ElementMatchers.isConstructor().and(ElementMatchers.takesArgument(0, Set.class))))) + .asTerminalTransformation() + .type(ElementMatchers.named("sun.net.www.http.HttpClient")) + .transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder + .visit(Advice.to(HttpClientAdvice.class) + .on(ElementMatchers.named("openServer")))) + .asTerminalTransformation() + .type(ElementMatchers.named("java.lang.System")) + .transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder + .visit(Advice.to(SystemAdvice.class) + .on(ElementMatchers.named("getProperty")))) + .asTerminalTransformation() + .installOn(inst); + + agentBuilder.installOn(inst); + } + + static AgentBuilder newAgentBuilder() { + return new AgentBuilder.Default() + .with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION) + .with(AgentBuilder.InitializationStrategy.NoOp.INSTANCE) + .with(AgentBuilder.TypeStrategy.Default.REDEFINE) + .ignore(ElementMatchers.nameStartsWith("net.bytebuddy.")); + } + + + static void printLogo() { + System.out.println(" _ _ _ \n" + + " | | ___| |_| |__ _ __ __ _ \n" + + " _ | |/ _ \\ __| '_ \\| '__/ _` |\n" + + "| |_| | __/ |_| |_) | | | (_| |\n" + + " \\___/ \\___|\\__|_.__/|_| \\__,_|"); + } +} diff --git a/jetbra-agent/src/main/java/win/novice/li/HttpClientAdvice.java b/jetbra-agent/src/main/java/win/novice/li/HttpClientAdvice.java new file mode 100644 index 0000000..d6263bd --- /dev/null +++ b/jetbra-agent/src/main/java/win/novice/li/HttpClientAdvice.java @@ -0,0 +1,14 @@ +package win.novice.li; + +import net.bytebuddy.asm.Advice; + +import java.net.SocketTimeoutException; + +public class HttpClientAdvice { + @Advice.OnMethodExit + public static void intercept(@Advice.This Object x) throws Exception { + if (x.toString().contains("validateKey.action")){ + throw new SocketTimeoutException(); + } + } +} diff --git a/jetbra-agent/src/main/java/win/novice/li/PKIXBuilderParameters.java b/jetbra-agent/src/main/java/win/novice/li/PKIXBuilderParameters.java new file mode 100644 index 0000000..8848feb --- /dev/null +++ b/jetbra-agent/src/main/java/win/novice/li/PKIXBuilderParameters.java @@ -0,0 +1,24 @@ +package win.novice.li; + +import net.bytebuddy.asm.Advice; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.security.cert.TrustAnchor; +import java.util.HashSet; +import java.util.Set; + +public class PKIXBuilderParameters { + + + @Advice.OnMethodEnter + @SuppressWarnings("unchecked") + public static void intercept(@Advice.Argument(value = 0, readOnly = false) Set trustAnchors) throws Exception { + Class clazz = Class.forName("win.novice.li.TrustAnchorHolder", true, ClassLoader.getSystemClassLoader()); + Method method = clazz.getDeclaredMethod("loadTrustAnchors"); + Set loadedTrustAnchors = (Set)method.invoke(null); + HashSet newTrustAnchors = new HashSet<>(trustAnchors); + newTrustAnchors.addAll(loadedTrustAnchors); + trustAnchors = newTrustAnchors; + } +} diff --git a/jetbra-agent/src/main/java/win/novice/li/SystemAdvice.java b/jetbra-agent/src/main/java/win/novice/li/SystemAdvice.java new file mode 100644 index 0000000..912a6db --- /dev/null +++ b/jetbra-agent/src/main/java/win/novice/li/SystemAdvice.java @@ -0,0 +1,29 @@ +package win.novice.li; + +import net.bytebuddy.asm.Advice; + +public class SystemAdvice { + + + // System.getProperty + @Advice.OnMethodExit + public static void intercept(@Advice.Argument(0) Object x, @Advice.Return(readOnly = false) String r) throws Exception { + if (x.toString().equals("jb.vmOptionsFile")) { + RuntimeException exception = new RuntimeException(); + int nullCnt = 0; + boolean hasReflect = false; + for (StackTraceElement element : exception.getStackTrace()) { + if (element.getFileName() == null) { + nullCnt += 1; + continue; + } + if (element.getFileName().equals("Method.java")) { + hasReflect = true; + } + } + if (nullCnt >= 3 && hasReflect) { + r = null; + } + } + } +} diff --git a/jetbra-agent/src/main/java/win/novice/li/TrustAnchorHolder.java b/jetbra-agent/src/main/java/win/novice/li/TrustAnchorHolder.java new file mode 100644 index 0000000..a354c40 --- /dev/null +++ b/jetbra-agent/src/main/java/win/novice/li/TrustAnchorHolder.java @@ -0,0 +1,66 @@ +package win.novice.li; + +import java.io.File; +import java.io.FileInputStream; +import java.net.URI; +import java.net.URL; +import java.nio.file.Paths; +import java.security.cert.CertificateFactory; +import java.security.cert.TrustAnchor; +import java.security.cert.X509Certificate; +import java.util.HashSet; +import java.util.Set; + +public class TrustAnchorHolder { + public static Set TRUST_ANCHORS; + + + public static Set loadTrustAnchors() throws Exception { + if (TRUST_ANCHORS != null) { + return TRUST_ANCHORS; + } + TRUST_ANCHORS = new HashSet<>(); + + String certDir; + if (System.getenv("JB_HOME") != null) { + certDir = System.getenv("JB_HOME"); + } else { + URI jarURI = getJarURI(); + if (jarURI == null) { + return TRUST_ANCHORS; + } + certDir = Paths.get(jarURI).getParent().resolve("trust-crt").toString(); + } + System.out.println("load crt from " + certDir); + File dir = new File(certDir); + if (dir.exists() && dir.isDirectory()) { + File[] files = dir.listFiles(); + if (files != null) { + CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); + for (File item : files) { + if (item.getName().endsWith(".crt")) { + X509Certificate cert = (X509Certificate) certificateFactory.generateCertificate(new FileInputStream(item)); + TRUST_ANCHORS.add(new TrustAnchor(cert, null)); + } + } + } + } + System.out.println("loaded " + TRUST_ANCHORS.size() + " crts"); + return TRUST_ANCHORS; + } + + public static URI getJarURI() throws Exception { + URL url = TrustAnchorHolder.class.getProtectionDomain().getCodeSource().getLocation(); + if (null != url) { + return url.toURI(); + } + String resourcePath = "/jarLocation.txt"; + url = TrustAnchorHolder.class.getResource(resourcePath); + if (null == url) { + return null; + } + String path = url.getPath(); + path = path.substring(0, path.length() - resourcePath.length() - 1); + return new URI(path); + } +} diff --git a/jetbra-agent/src/main/resources/jarLocation.txt b/jetbra-agent/src/main/resources/jarLocation.txt new file mode 100644 index 0000000..e69de29 diff --git a/jetbra-server/pom.xml b/jetbra-server/pom.xml new file mode 100644 index 0000000..3cf913f --- /dev/null +++ b/jetbra-server/pom.xml @@ -0,0 +1,43 @@ + + + 4.0.0 + + win.novice + jetbra + 0.0.1 + + + win.novice.li + jetbra-server + + + 17 + 17 + UTF-8 + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/jetbra-server/src/main/java/win/novice/li/JetbraServerApplication.java b/jetbra-server/src/main/java/win/novice/li/JetbraServerApplication.java new file mode 100644 index 0000000..48dc19d --- /dev/null +++ b/jetbra-server/src/main/java/win/novice/li/JetbraServerApplication.java @@ -0,0 +1,15 @@ +package win.novice.li; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +import java.security.InvalidAlgorithmParameterException; +import java.security.cert.PKIXBuilderParameters; +import java.util.HashSet; + +@SpringBootApplication +public class JetbraServerApplication { + public static void main(String[] args) throws InvalidAlgorithmParameterException { + SpringApplication.run(JetbraServerApplication.class,args); + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e97f3bb --- /dev/null +++ b/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.2.0 + + + win.novice + jetbra + 0.0.1 + pom + jetbra + jetbra + + jetbra-agent + jetbra-server + + + 17 + + + diff --git a/trust-crt/janetfilter.crt b/trust-crt/janetfilter.crt new file mode 100644 index 0000000..26ec6a0 --- /dev/null +++ b/trust-crt/janetfilter.crt @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQ +cm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsG +A1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYU +IXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIs +H668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9e +A6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/ +Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0x +sK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIw +ADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562 +SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GC +CQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJ +KoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBp +vkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6R +lJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddp +ctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozd +B/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1v +sdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq ++RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISX +mz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeI +Q/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc +2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl +1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD +-----END CERTIFICATE----- diff --git a/trust-crt/jetbra.crt b/trust-crt/jetbra.crt new file mode 100644 index 0000000..bd113b7 --- /dev/null +++ b/trust-crt/jetbra.crt @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEtTCCAp2gAwIBAgIUDyuccmylba71lZQAQic5TJiAhwwwDQYJKoZIhvcNAQEL +BQAwGDEWMBQGA1UEAwwNSmV0UHJvZmlsZSBDQTAeFw0yMzA5MjkxNDA2MTJaFw0z +MzA5MjcxNDA2MTJaMBExDzANBgNVBAMMBk5vdmljZTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBALenqcGP2ZxGkYqmKA9c4Hzf8+YD1smvmOxKjd+bmTLr +utM/hXv1cj1rW3/lqyDtdDk7K6W8/TDq1CRrEt+Do6l30DxhAiC34aH8DmGwgq77 +xEoLimvH5LpePxflF+tbB1RZtFgFDOIYLdSQaKFH2JDgVKxhLiV3S6jniPhkCtWW +rTs+E6vq4N15Bm3NnM5AJILqjtUbOjNfaxVq6RrOoTc0R3Fqqo6yvxo/+JYa2UnH +IC+r2dbKuDLMUrtgnydEUdJNX0zH9FtcdELvr48uc9mY038TWUsZUK1pnQbxA2bP +yA4qnYJ9IvUgO6LtLXvGFm137YQMS1N41AHDBOrwoNI8UoDX+qI3rM96biFOFvn7 +Edky7rByzybt3H+zxdojfjvpL1E0NO98BT9zfufHAaAxZtlmDOu5LDJe3CGurnyR +MRExbtc+Qjl1mUh6tG4lakAwdsoxry0GdG72yaYyb9it53kaFks/T/s7Z7bRJzVF +zQDV1Y4bzUtk43vKm2vztBVlQkBkZY5f2Jbe5Ig3b8swQzBnOT0mrL5SPUhwmQ6I +xkEWztj55OEujBMmRr92oESuq9ZYMaeLidKWVR3/++HA8BRZaRGEKtSHZCbFEFdi +hDxxJv9Xh6NuT/ewJ6HYp+0NQpFnUnJ72n8wV+tudpam7aKcdzVmz7cNwOhG2Ls7 +AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAIdeaQfKni7tXtcywC3zJvGzaaj242pS +WB1y40HW8jub0uHjTLsBPX27iA/5rb+rNXtUWX/f2K+DU4IgaIiiHhkDrMsw7piv +azqwA9h7/uA0A5nepmTYf/HY4W6P2stbeqInNsFRZXS7Jg4Q5LgEtHKo/H8USjtV +w9apmE3BCElkXRuelXMsSllpR/JEVv/8NPLmnHSY02q4KMVW2ozXtaAxSYQmZswy +P1YnBcnRukoI4igobpcKQXwGoQCIUlec8LbFXYM9V2eNCwgABqd4r67m7QJq31Y/ +1TJysQdMH+hoPFy9rqNCxSq3ptpuzcYAk6qVf58PrrYH/6bHwiYPAayvvdzNPOhM +9OCwomfcazhK3y7HyS8aBLntTQYFf7vYzZxPMDybYTvJM+ClCNnVD7Q9fttIJ6eM +XFsXb8YK1uGNjQW8Y4WHk1MCHuD9ZumWu/CtAhBn6tllTQWwNMaPOQvKf1kr1Kt5 +etrONY+B6O+Oi75SZbDuGz7PIF9nMPy4WB/8XgKdVFtKJ7/zLIPHgY8IKgbx/VTz +6uBhYo8wOf3xzzweMnn06UcfV3JGNvtMuV4vlkZNNxXeifsgzHugCvJX0nybhfBh +fIqVyfK6t0eKJqrvp54XFEtJGR+lf3pBfTdcOI6QFEPKGZKoQz8Ck+BC/WBDtbjc +/uYKczZ8DKZu +-----END CERTIFICATE----- diff --git a/vmoptions/appcode.vmoptions b/vmoptions/appcode.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/appcode.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/clion.vmoptions b/vmoptions/clion.vmoptions new file mode 100644 index 0000000..d089c2a --- /dev/null +++ b/vmoptions/clion.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx3992m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/datagrip.vmoptions b/vmoptions/datagrip.vmoptions new file mode 100644 index 0000000..4f8d00e --- /dev/null +++ b/vmoptions/datagrip.vmoptions @@ -0,0 +1,22 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + + diff --git a/vmoptions/dataspell.vmoptions b/vmoptions/dataspell.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/dataspell.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/devecostudio.vmoptions b/vmoptions/devecostudio.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/devecostudio.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/gateway.vmoptions b/vmoptions/gateway.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/gateway.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/goland.vmoptions b/vmoptions/goland.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/goland.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/idea.vmoptions b/vmoptions/idea.vmoptions new file mode 100644 index 0000000..d089c2a --- /dev/null +++ b/vmoptions/idea.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx3992m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/jetbrains_client.vmoptions b/vmoptions/jetbrains_client.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/jetbrains_client.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/jetbrainsclient.vmoptions b/vmoptions/jetbrainsclient.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/jetbrainsclient.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/phpstorm.vmoptions b/vmoptions/phpstorm.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/phpstorm.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/pycharm.vmoptions b/vmoptions/pycharm.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/pycharm.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/rider.vmoptions b/vmoptions/rider.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/rider.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/rubymine.vmoptions b/vmoptions/rubymine.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/rubymine.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/studio.vmoptions b/vmoptions/studio.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/studio.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/webide.vmoptions b/vmoptions/webide.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/webide.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED + diff --git a/vmoptions/webstorm.vmoptions b/vmoptions/webstorm.vmoptions new file mode 100644 index 0000000..32beca5 --- /dev/null +++ b/vmoptions/webstorm.vmoptions @@ -0,0 +1,21 @@ +-Xms128m +-Xmx1024m +-XX:ReservedCodeCacheSize=512m +-XX:+IgnoreUnrecognizedVMOptions +-XX:+UseG1GC +-XX:SoftRefLRUPolicyMSPerMB=50 +-XX:CICompilerCount=2 +-XX:+HeapDumpOnOutOfMemoryError +-XX:-OmitStackTraceInFastThrow +-ea +-Dsun.io.useCanonCaches=false +-Djdk.http.auth.tunneling.disabledSchemes="" +-Djdk.attach.allowAttachSelf=true +-Djdk.module.illegalAccess.silent=true +-Dkotlinx.coroutines.debug=off +-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log +-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof + +--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED +--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED +