/**
 * Copyright 2011-2015 GatlingCorp (http://gatling.io)
 *
 * 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
 *
 * 		http://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 io.gatling.mojo;

import java.util.List;

import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;

public class MojoConstants {

    private MojoConstants() {
        throw new AssertionError();
    }

    // Recorder constants
    public static final String RECORDER_MAIN_CLASS = "io.gatling.recorder.GatlingRecorder";

    // Compiler constants
    public static final String SCALA_VERSION = "2.11.6";
    public static final String COMPILER_MAIN_CLASS = "io.gatling.compiler.ZincCompiler";
    public static final List<String> ZINC_JVM_ARGS = singletonList("-Xss10M");

    // Gatling constants
    public static final String GATLING_MAIN_CLASS = "io.gatling.app.Gatling";
    public static final List<String> GATLING_JVM_ARGS = asList(
            "-server", "-Xms512M", "-Xmx512M", "-XX:+HeapDumpOnOutOfMemoryError",
            "-XX:+AggressiveOpts", "-XX:+OptimizeStringConcat",
            "-XX:+UseParNewGC", "-XX:+UseConcMarkSweepGC", "-XX:+CMSParallelRemarkEnabled");
}

@@ -1425,33 +1425,74 @@
 %22-Xm
-s512M%22, %22-Xmx512M
+x1G%22,%0A            %22-XX:+UseG1GC%22, %22-XX:MaxGCPauseMillis=30
 %22, %22-XX:
 +Hea
@@ -1491,192 +1491,345 @@
 -XX:
-+
+G1
 Heap
-DumpOnOutOfMemoryError%22,%0A            %22-XX:+AggressiveOpts%22, %22-XX:+OptimizeStringConcat%22,%0A            %22-XX:+UseParNewGC%22, %22-XX:+UseConcMarkSweepGC%22, %22-XX:+CMSParallelRemarkEnabled%22
+RegionSize=16m%22, %22-XX:InitiatingHeapOccupancyPercent=75%22,%0A            %22-XX:+ParallelRefProcEnabled%22, %22-XX:+PerfDisableSharedMem%22,%0A            %22-XX:+AggressiveOpts%22, %22-XX:+OptimizeStringConcat%22,%0A            %22-XX:+HeapDumpOnOutOfMemoryError%22,%0A            %22-Djava.net.preferIPv4Stack=true%22, %22-Djava.net.preferIPv6Addresses=false%22%0A    
 );%0A%7D

Upgrade JVM opts