8209064: Make intellij support more robust after changes for 2018.2
Summary: Do not treat build.xml wrapper as a template file
Reviewed-by: erikj, ihse
--- a/bin/idea.sh Wed Aug 29 14:10:19 2018 +0530
+++ b/bin/idea.sh Wed Aug 29 11:25:51 2018 +0100
@@ -68,12 +68,9 @@
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
MAKE_DIR="$SCRIPT_DIR/../make"
-SUPPORT_DIR="$SCRIPT_DIR/../build/.idea-support"
IDEA_MAKE="$MAKE_DIR/idea"
IDEA_TEMPLATE="$IDEA_MAKE/template"
-mkdir -p $SUPPORT_DIR
-
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
#init template variables
@@ -127,11 +124,6 @@
echo "FATAL: SPEC is empty" >&2; exit 1
fi
-# move build.xml out of .idea, see IDEA-189915
-IDEA_BUILD_OLD=$IDEA_BUILD
-IDEA_BUILD=$SUPPORT_DIR/build.xml
-mv $IDEA_BUILD_OLD $IDEA_BUILD
-
SOURCE_FOLDER=" <sourceFolder url=\"file://\$MODULE_DIR\$/####\" isTestSource=\"false\" />"
SOURCE_FOLDERS_DONE="false"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/idea/build.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,43 @@
+<!-- importing.xml -->
+<project name="jdk">
+
+ <script language="javascript" classpath="${idea.dir}/classes">
+ var JdkLogger = Java.type("idea.JdkIdeaAntLogger");
+ new JdkLogger(project)
+ </script>
+
+ <macrodef name="call-make">
+ <attribute name="dir"/>
+ <attribute name="args"/>
+ <sequential>
+ <exec executable="make" dir="@{dir}" failonerror="true">
+ <arg line="@{args}"/>
+ <env key="CLASSPATH" value = ""/>
+ </exec>
+ </sequential>
+ </macrodef>
+
+ <target name="cond-clean" unless="${intellij.ismake}">
+ <antcall target="clean"/>
+ </target>
+
+ <target name="post-make" depends="cond-clean, build-module"/>
+
+ <!--
+ **** Global JDK Build Targets
+ -->
+
+ <target name="clean">
+ <echo message="base = ${basedir}"/>
+ <call-make dir = "${build.target.dir}" args = "reconfigure"/>
+ <call-make dir = "${build.target.dir}" args = "clean"/>
+ </target>
+
+ <target name="images">
+ <call-make dir = "${build.target.dir}" args = "images"/>
+ </target>
+
+ <target name="build-module">
+ <call-make dir = "${build.target.dir}" args = "${module.name}"/>
+ </target>
+</project>
--- a/make/idea/template/ant.xml Wed Aug 29 14:10:19 2018 +0530
+++ b/make/idea/template/ant.xml Wed Aug 29 11:25:51 2018 +0100
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AntConfiguration">
- <buildFile url="file://$PROJECT_DIR$/build/.idea-support/build.xml">
+ <buildFile url="file://$PROJECT_DIR$/make/idea/build.xml">
<properties>
<property name="intellij.ismake" value="$IsMake$" />
<property name="build.target.dir" value="specDir" /> <!-- this will be replaced -->
<property name="module.name" value="java.base" /> <!-- this will be replaced -->
+ <property name="idea.dir" value="$ModuleFileDir$" />
</properties>
<executeOn event="afterCompilation" target="post-make" />
</buildFile>
--- a/make/idea/template/build.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-<!-- importing.xml -->
-<project name="jdk" basedir="../..">
-
- <script language="javascript" classpath=".idea/classes">
- var JdkLogger = Java.type("idea.JdkIdeaAntLogger");
- new JdkLogger(project)
- </script>
-
- <macrodef name="call-make">
- <attribute name="dir"/>
- <attribute name="args"/>
- <sequential>
- <exec executable="make" dir="@{dir}" failonerror="true">
- <arg line="@{args}"/>
- <env key="CLASSPATH" value = ""/>
- </exec>
- </sequential>
- </macrodef>
-
- <target name="cond-clean" unless="${intellij.ismake}">
- <antcall target="clean"/>
- </target>
-
- <target name="post-make" depends="cond-clean, build-module"/>
-
- <!--
- **** Global JDK Build Targets
- -->
-
- <target name="clean">
- <echo message="base = ${basedir}"/>
- <call-make dir = "${build.target.dir}" args = "reconfigure"/>
- <call-make dir = "${build.target.dir}" args = "clean"/>
- </target>
-
- <target name="images">
- <call-make dir = "${build.target.dir}" args = "images"/>
- </target>
-
- <target name="build-module">
- <call-make dir = "${build.target.dir}" args = "${module.name}"/>
- </target>
-</project>
--- a/make/idea/template/misc.xml Wed Aug 29 14:10:19 2018 +0530
+++ b/make/idea/template/misc.xml Wed Aug 29 11:25:51 2018 +0100
@@ -9,10 +9,10 @@
<jre alt="true" value="images_jdk" /> <!-- this will be replaced -->
<options></options>
<ant>
- <target file="file://$PROJECT_DIR$/build/.idea-support/build.xml" name="images" />
+ <target file="file://$PROJECT_DIR$/make/idea/build.xml" name="images" />
</ant>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_9" assert-keyword="true" jdk-15="true">
- <output url="file://$PROJECT_DIR$/build/.idea-support/out" />
+ <output url="file://$PROJECT_DIR$/build/out" />
</component>
</project>
--- a/make/idea/template/workspace.xml Wed Aug 29 14:10:19 2018 +0530
+++ b/make/idea/template/workspace.xml Wed Aug 29 11:25:51 2018 +0100
@@ -11,24 +11,11 @@
<component name="antWorkspaceConfiguration">
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
<option name="FILTER_TARGETS" value="false" />
- <buildFile url="file://$PROJECT_DIR$/.idea/build.xml">
+ <buildFile url="file://$PROJECT_DIR$/make/idea/build.xml">
<runInBackground value="false" />
<targetFilters>
- <filter targetName="post-make" isVisible="false" />
<filter targetName="clean" isVisible="true" />
- <filter targetName="-do-configure" isVisible="false" />
<filter targetName="images" isVisible="true" />
- <filter targetName="build-module" isVisible="true" />
- <filter targetName="jtreg-debug" isVisible="false" />
- <filter targetName="jtreg-debug-internal" isVisible="false" />
- <filter targetName="jtreg" isVisible="false" />
- <filter targetName="-check-jtreg.home" isVisible="false" />
- <filter targetName="-def-check" isVisible="false" />
- <filter targetName="-def-jtreg" isVisible="false" />
- <filter targetName="-check-boot.java.home" isVisible="false" />
- <filter targetName="-check-target.java.home" isVisible="false" />
- <filter targetName="find-jdk-build-dir" isVisible="false" />
- <filter targetName="check-env" isVisible="false" />
</targetFilters>
<treeView value="false" />
<expanded value="true" />
--- a/make/langtools/build.xml Wed Aug 29 14:10:19 2018 +0530
+++ b/make/langtools/build.xml Wed Aug 29 11:25:51 2018 +0100
@@ -76,7 +76,6 @@
<property name="make.conf.dir" location="${make.dir}/conf"/>
<property name="make.tools.dir" location="${make.dir}/tools"/>
<property name="build.dir" location="build/langtools"/>
- <property name="idea.support.dir" location="build/.idea-support"/>
<property name="build.modules" location="${build.dir}/modules"/>
<property name="build.gensrc" location="${build.dir}/gensrc"/>
<property name="build.tools" location="${build.dir}/toolclasses"/>
@@ -270,14 +269,11 @@
<target name="idea" depends="-check-langtools.jdk.home">
<mkdir dir=".idea"/>
<copy todir=".idea" >
- <fileset dir="${make.dir}/intellij">
+ <fileset dir="${make.dir}/intellij/template">
<exclude name="**/src/**"/>
<exclude name="**/utils/**"/>
</fileset>
</copy>
- <!-- move build.xml out of .idea, see IDEA-189915 -->
- <mkdir dir="${idea.support.dir}"/>
- <move todir="${idea.support.dir}" file=".idea/build.xml"/>
<condition property="idea.jtreg.home" value="${jtreg.home}" else = "[jtreg.home]">
<isset property="jtreg.home"/>
</condition>
@@ -293,7 +289,7 @@
<mkdir dir=".idea/classes"/>
<javac source="${javac.build.source}"
target="${javac.build.target}"
- srcdir="${make.dir}/intellij/src"
+ srcdir="${make.dir}/intellij/template/src"
destdir=".idea/classes"/>
</target>
--- a/make/langtools/intellij/ant.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="AntConfiguration">
- <buildFile url="file://$PROJECT_DIR$/build/.idea-support/build.xml">
- <properties>
- <property name="langtools.jdk.home" value="@IDEA_TARGET_JDK@" />
- <property name="intellij.ismake" value="$IsMake$" />
- </properties>
- <executeOn event="afterCompilation" target="post-make" />
- </buildFile>
- </component>
-</project>
--- a/make/langtools/intellij/build.xml Wed Aug 29 14:10:19 2018 +0530
+++ b/make/langtools/intellij/build.xml Wed Aug 29 11:25:51 2018 +0100
@@ -1,12 +1,12 @@
<!-- importing.xml -->
-<project name="langtools" basedir="../..">
+<project name="langtools" basedir = "../../..">
- <script language="javascript" classpath=".idea/classes">
+ <script language="javascript" classpath="${idea.dir}/classes">
var LangtoolsLogger = Java.type("idea.LangtoolsIdeaAntLogger");
new LangtoolsLogger(project)
</script>
- <import file="../../make/langtools/build.xml"/>
+ <import file="../build.xml"/>
<target name="cond-clean" unless="${intellij.ismake}">
<antcall target="clean"/>
--- a/make/langtools/intellij/codeStyleSettings.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ProjectCodeStyleSettingsManager">
- <option name="PER_PROJECT_SETTINGS">
- <value>
- <option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
- <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
- <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
- <option name="RIGHT_MARGIN" value="100" />
- <option name="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS" value="true" />
- <XML>
- <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
- </XML>
- <codeStyleSettings language="JAVA">
- <option name="SPACE_AFTER_TYPE_CAST" value="false" />
- </codeStyleSettings>
- </value>
- </option>
- <option name="USE_PER_PROJECT_SETTINGS" value="true" />
- </component>
-</project>
-
--- a/make/langtools/intellij/compiler.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="CompilerConfiguration">
- <option name="DEFAULT_COMPILER" value="Javac" />
- <excludeFromCompile>
- <directory url="file://$PROJECT_DIR$/src" includeSubdirectories="true" />
- <directory url="file://$PROJECT_DIR$/test" includeSubdirectories="true" />
- <directory url="file://$PROJECT_DIR$/build" includeSubdirectories="true" />
- <directory url="file://$PROJECT_DIR$/make" includeSubdirectories="true" />
- </excludeFromCompile>
- <resourceExtensions />
- <wildcardResourcePatterns />
- <annotationProcessing>
- <profile default="true" name="Default" enabled="false">
- <processorPath useClasspath="true" />
- </profile>
- </annotationProcessing>
- </component>
-</project>
-
--- a/make/langtools/intellij/copyright/langtools.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<component name="CopyrightManager">
- <copyright>
- <option name="notice" value="Copyright (c) &#36;today.year, Oracle and/or its affiliates. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 only, as published by the Free Software Foundation. Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details (a copy is included in the LICENSE file that accompanied this code). You should have received a copy of the GNU General Public License version 2 along with this work; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA or visit www.oracle.com if you need additional information or have any questions." />
- <option name="keyword" value="Copyright" />
- <option name="allowReplaceKeyword" value="" />
- <option name="myName" value="langtools" />
- <option name="myLocal" value="true" />
- </copyright>
-</component>
--- a/make/langtools/intellij/copyright/profiles_settings.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<component name="CopyrightManager">
- <settings default="langtools">
- <LanguageOptions name="JAVA">
- <option name="fileLocation" value="1" />
- </LanguageOptions>
- </settings>
-</component>
--- a/make/langtools/intellij/inspectionProfiles/langtools.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<component name="InspectionProjectProfileManager">
- <profile version="1.0" is_locked="false">
- <option name="myName" value="langtools" />
- <option name="myLocal" value="false" />
- <inspection_tool class="LoggerInitializedWithForeignClass" enabled="false" level="WARNING" enabled_by_default="false">
- <option name="loggerClassName" value="org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger" />
- <option name="loggerFactoryMethodName" value="getLogger,getLogger,getLog,getLogger" />
- </inspection_tool>
- <inspection_tool class="MismatchedCollectionQueryUpdate" enabled="false" level="WARNING" enabled_by_default="false">
- <option name="queryNames">
- <value />
- </option>
- <option name="updateNames">
- <value />
- </option>
- </inspection_tool>
- <inspection_tool class="RawUseOfParameterizedType" enabled="true" level="WARNING" enabled_by_default="true">
- <option name="ignoreObjectConstruction" value="false" />
- <option name="ignoreUncompilable" value="true" />
- </inspection_tool>
- <inspection_tool class="SpellCheckingInspection" enabled="true" level="TYPO" enabled_by_default="true">
- <option name="processCode" value="false" />
- <option name="processLiterals" value="false" />
- <option name="processComments" value="false" />
- </inspection_tool>
- <inspection_tool class="SuspiciousMethodCalls" enabled="true" level="WARNING" enabled_by_default="true">
- <option name="REPORT_CONVERTIBLE_METHOD_CALLS" value="false" />
- </inspection_tool>
- </profile>
-</component>
--- a/make/langtools/intellij/inspectionProfiles/profiles_settings.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<component name="InspectionProjectProfileManager">
- <settings>
- <option name="PROJECT_PROFILE" value="langtools" />
- <option name="USE_PROJECT_PROFILE" value="true" />
- <version value="1.0" />
- </settings>
-</component>
--- a/make/langtools/intellij/langtools.iml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="true">
- <content url="file://$MODULE_DIR$">
- <sourceFolder url="file://$MODULE_DIR$/src/java.compiler/share/classes" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.compiler/share/classes" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.javadoc/share/classes" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.jdeps/share/classes" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.jshell/share/classes" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.compiler" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.javadoc" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.jdeps" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/make/langtools/tools" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/make/langtools/src/classes" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.compiler" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.javadoc" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.jdeps" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.jshell" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.compiler" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/java.compiler" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.jdeps" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.jshell" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/jdk.javadoc" isTestSource="false" />
- <excludeFolder url="file://$MODULE_DIR$/build" />
- </content>
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="inheritedJdk" />
- </component>
-</module>
--- a/make/langtools/intellij/misc.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="EntryPointsManager">
- <entry_points version="2.0" />
- </component>
- <component name="JTRegService">
- <path>@IDEA_JTREG_HOME@</path>
- <workDir>build</workDir>
- <jre alt="true" value="@IDEA_TARGET_JDK@" />
- <options>@XPATCH@</options>
- <ant>
- <target file="file://$PROJECT_DIR$/build/.idea-support/build.xml" name="build-all-classes" />
- </ant>
- </component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
- <output url="file://$PROJECT_DIR$/build/.idea-support/out" />
- </component>
-</project>
--- a/make/langtools/intellij/modules.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ProjectModuleManager">
- <modules>
- <module fileurl="file://$PROJECT_DIR$/.idea/langtools.iml" filepath="$PROJECT_DIR$/.idea/langtools.iml" />
- </modules>
- </component>
-</project>
-
--- a/make/langtools/intellij/runConfigurations/javac.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="javac" type="Application" factoryName="Application">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="com.sun.tools.javac.Main" />
- <option name="VM_PARAMETERS" value='@XPATCH@' />
- <option name="PROGRAM_PARAMETERS" value="" />
- <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
- <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="langtools" />
- <envs />
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
- </method>
- </configuration>
-</component>
--- a/make/langtools/intellij/runConfigurations/javadoc.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="javadoc" type="Application" factoryName="Application">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="jdk.javadoc.internal.tool.Main" />
- <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED' />
- <option name="PROGRAM_PARAMETERS" value="" />
- <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
- <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="langtools" />
- <envs />
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
- </method>
- </configuration>
-</component>
--- a/make/langtools/intellij/runConfigurations/javap.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="javap" type="Application" factoryName="Application">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="com.sun.tools.javap.Main" />
- <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.jdeps/com.sun.tools.javap=ALL-UNNAMED' />
- <option name="PROGRAM_PARAMETERS" value="" />
- <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
- <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="langtools" />
- <envs />
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
- </method>
- </configuration>
-</component>
--- a/make/langtools/intellij/runConfigurations/jshell.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="jshell" type="Application" factoryName="Application">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="jdk.internal.jshell.tool.JShellToolProvider" />
- <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.jshell/jdk.internal.jshell.tool=ALL-UNNAMED' />
- <option name="PROGRAM_PARAMETERS" value="" />
- <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
- <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="langtools" />
- <envs />
- <method>
- <option name="Make" enabled="false" />
- <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
- </method>
- </configuration>
-</component>
--- a/make/langtools/intellij/runConfigurations/sjavac.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="sjavac" type="Application" factoryName="Application">
- <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
- <option name="MAIN_CLASS_NAME" value="com.sun.tools.sjavac.Main" />
- <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.compiler/com.sun.tools.sjavac=ALL-UNNAMED' />
- <option name="PROGRAM_PARAMETERS" value="" />
- <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
- <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
- <option name="ENV_VARIABLES" />
- <option name="PASS_PARENT_ENVS" value="true" />
- <module name="langtools" />
- <envs />
- <RunnerSettings RunnerId="Run" />
- <ConfigurationWrapper RunnerId="Run" />
- <method>
- <option name="Make" enabled="false" />
- <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
- </method>
- </configuration>
-</component>
--- a/make/langtools/intellij/src/idea/LangtoolsIdeaAntLogger.java Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,364 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package idea;
-
-import org.apache.tools.ant.BuildEvent;
-import org.apache.tools.ant.BuildListener;
-import org.apache.tools.ant.DefaultLogger;
-import org.apache.tools.ant.Project;
-
-import java.util.EnumSet;
-import java.util.Stack;
-
-import static org.apache.tools.ant.Project.*;
-
-/**
- * This class is used to wrap the IntelliJ ant logger in order to provide more meaningful
- * output when building langtools. The basic ant output in IntelliJ can be quite cumbersome to
- * work with, as it provides two separate views: (i) a tree view, which is good to display build task
- * in a hierarchical fashion as they are processed; and a (ii) plain text view, which gives you
- * the full ant output. The main problem is that javac-related messages are buried into the
- * ant output (which is made very verbose by IntelliJ in order to support the tree view). It is
- * not easy to figure out which node to expand in order to see the error message; switching
- * to plain text doesn't help either, as now the output is totally flat.
- *
- * This logger class removes a lot of verbosity from the IntelliJ ant logger by not propagating
- * all the events to the IntelliJ's logger. In addition, certain events are handled in a custom
- * fashion, to generate better output during the build.
- */
-public final class LangtoolsIdeaAntLogger extends DefaultLogger {
-
- /**
- * This is just a way to pass in customized binary string predicates;
- *
- * TODO: replace with @code{BiPredicate<String, String>} and method reference when moving to 8
- */
- enum StringBinaryPredicate {
- CONTAINS() {
- @Override
- boolean apply(String s1, String s2) {
- return s1.contains(s2);
- }
- },
- STARTS_WITH {
- @Override
- boolean apply(String s1, String s2) {
- return s1.startsWith(s2);
- }
- };
-
- abstract boolean apply(String s1, String s2);
- }
-
- /**
- * Various kinds of ant messages that we shall intercept
- */
- enum MessageKind {
-
- /** a javac error */
- JAVAC_ERROR(StringBinaryPredicate.CONTAINS, MSG_ERR, "error:", "compiler.err"),
- /** a javac warning */
- JAVAC_WARNING(StringBinaryPredicate.CONTAINS, MSG_WARN, "warning:", "compiler.warn"),
- /** a javac note */
- JAVAC_NOTE(StringBinaryPredicate.CONTAINS, MSG_INFO, "note:", "compiler.note"),
- /** a javac raw error (these typically come from a build misconfiguration - such as a bad javac flag) */
- JAVAC_RAW_ERROR(StringBinaryPredicate.STARTS_WITH, MSG_INFO, "javac: "),
- /** continuation of some javac error message */
- JAVAC_NESTED_DIAG(StringBinaryPredicate.STARTS_WITH, MSG_INFO, " "),
- /** a javac crash */
- JAVAC_CRASH(StringBinaryPredicate.STARTS_WITH, MSG_ERR, "An exception has occurred in the compiler"),
- /** jtreg test success */
- JTREG_TEST_PASSED(StringBinaryPredicate.STARTS_WITH, MSG_INFO, "Passed: "),
- /** jtreg test failure */
- JTREG_TEST_FAILED(StringBinaryPredicate.STARTS_WITH, MSG_ERR, "FAILED: "),
- /** jtreg test error */
- JTREG_TEST_ERROR(StringBinaryPredicate.STARTS_WITH, MSG_ERR, "Error: "),
- /** jtreg report */
- JTREG_TEST_REPORT(StringBinaryPredicate.STARTS_WITH, MSG_INFO, "Report written");
-
- StringBinaryPredicate sbp;
- int priority;
- String[] keys;
-
- MessageKind(StringBinaryPredicate sbp, int priority, String... keys) {
- this.sbp = sbp;
- this.priority = priority;
- this.keys = keys;
- }
-
- /**
- * Does a given message string matches this kind?
- */
- boolean matches(String s) {
- for (String key : keys) {
- if (sbp.apply(s, key)) {
- return true;
- }
- }
- return false;
- }
- }
-
- /**
- * This enum is used to represent the list of tasks we need to keep track of during logging.
- */
- enum Task {
- /** exec task - invoked during compilation */
- JAVAC("exec", MessageKind.JAVAC_ERROR, MessageKind.JAVAC_WARNING, MessageKind.JAVAC_NOTE,
- MessageKind.JAVAC_RAW_ERROR, MessageKind.JAVAC_NESTED_DIAG, MessageKind.JAVAC_CRASH),
- /** jtreg task - invoked during test execution */
- JTREG("jtreg", MessageKind.JTREG_TEST_PASSED, MessageKind.JTREG_TEST_FAILED, MessageKind.JTREG_TEST_ERROR, MessageKind.JTREG_TEST_REPORT),
- /** initial synthetic task when the logger is created */
- ROOT("") {
- @Override
- boolean matches(String s) {
- return false;
- }
- },
- /** synthetic task catching any other tasks not in this list */
- ANY("") {
- @Override
- boolean matches(String s) {
- return true;
- }
- };
-
- String taskName;
- MessageKind[] msgs;
-
- Task(String taskName, MessageKind... msgs) {
- this.taskName = taskName;
- this.msgs = msgs;
- }
-
- boolean matches(String s) {
- return s.equals(taskName);
- }
- }
-
- /**
- * This enum is used to represent the list of targets we need to keep track of during logging.
- * A regular expression is used to match a given target name.
- */
- enum Target {
- /** jtreg target - executed when launching tests */
- JTREG("jtreg") {
- @Override
- String getDisplayMessage(BuildEvent e) {
- return "Running jtreg tests: " + e.getProject().getProperty("jtreg.tests");
- }
- },
- /** build bootstrap tool target - executed when bootstrapping javac */
- BUILD_BOOTSTRAP_JAVAC("build-bootstrap-javac-classes") {
- @Override
- String getDisplayMessage(BuildEvent e) {
- return "Building bootstrap javac...";
- }
- },
- /** build classes target - executed when building classes of given tool */
- BUILD_ALL_CLASSES("build-all-classes") {
- @Override
- String getDisplayMessage(BuildEvent e) {
- return "Building all classes...";
- }
- },
- /** synthetic target catching any other target not in this list */
- ANY("") {
- @Override
- String getDisplayMessage(BuildEvent e) {
- return "Executing Ant target(s): " + e.getProject().getProperty("ant.project.invoked-targets");
- }
- @Override
- boolean matches(String msg) {
- return true;
- }
- };
-
- String targetName;
-
- Target(String targetName) {
- this.targetName = targetName;
- }
-
- boolean matches(String msg) {
- return msg.equals(targetName);
- }
-
- abstract String getDisplayMessage(BuildEvent e);
- }
-
- /**
- * A custom build event used to represent status changes which should be notified inside
- * Intellij
- */
- static class StatusEvent extends BuildEvent {
-
- /** the target to which the status update refers */
- Target target;
-
- StatusEvent(BuildEvent e, Target target) {
- super(new StatusTask(e, target.getDisplayMessage(e)));
- this.target = target;
- setMessage(getTask().getTaskName(), 2);
- }
-
- /**
- * A custom task used to channel info regarding a status change
- */
- static class StatusTask extends org.apache.tools.ant.Task {
- StatusTask(BuildEvent event, String msg) {
- setProject(event.getProject());
- setOwningTarget(event.getTarget());
- setTaskName(msg);
- }
- }
- }
-
- /** wrapped ant logger (IntelliJ's own logger) */
- DefaultLogger logger;
-
- /** flag - is this the first target we encounter? */
- boolean firstTarget = true;
-
- /** flag - should subsequenet failures be suppressed ? */
- boolean suppressTaskFailures = false;
-
- /** flag - have we ran into a javac crash ? */
- boolean crashFound = false;
-
- /** stack of status changes associated with pending targets */
- Stack<StatusEvent> statusEvents = new Stack<>();
-
- /** stack of pending tasks */
- Stack<Task> tasks = new Stack<>();
-
- public LangtoolsIdeaAntLogger(Project project) {
- for (Object o : project.getBuildListeners()) {
- if (o instanceof DefaultLogger) {
- this.logger = (DefaultLogger)o;
- project.removeBuildListener((BuildListener)o);
- project.addBuildListener(this);
- }
- }
- logger.setMessageOutputLevel(3);
- tasks.push(Task.ROOT);
- }
-
- @Override
- public void buildStarted(BuildEvent event) {
- //do nothing
- }
-
- @Override
- public void buildFinished(BuildEvent event) {
- //do nothing
- }
-
- @Override
- public void targetStarted(BuildEvent event) {
- EnumSet<Target> statusKinds = firstTarget ?
- EnumSet.allOf(Target.class) :
- EnumSet.complementOf(EnumSet.of(Target.ANY));
-
- String targetName = event.getTarget().getName();
-
- for (Target statusKind : statusKinds) {
- if (statusKind.matches(targetName)) {
- StatusEvent statusEvent = new StatusEvent(event, statusKind);
- statusEvents.push(statusEvent);
- logger.taskStarted(statusEvent);
- firstTarget = false;
- return;
- }
- }
- }
-
- @Override
- public void targetFinished(BuildEvent event) {
- if (!statusEvents.isEmpty()) {
- StatusEvent lastEvent = statusEvents.pop();
- if (lastEvent.target.matches(event.getTarget().getName())) {
- logger.taskFinished(lastEvent);
- }
- }
- }
-
- @Override
- public void taskStarted(BuildEvent event) {
- String taskName = event.getTask().getTaskName();
- for (Task task : Task.values()) {
- if (task.matches(taskName)) {
- tasks.push(task);
- return;
- }
- }
- }
-
- @Override
- public void taskFinished(BuildEvent event) {
- if (tasks.peek() == Task.ROOT) {
- //we need to 'close' the root task to get nicer output
- logger.taskFinished(event);
- } else if (!suppressTaskFailures && event.getException() != null) {
- //the first (innermost) task failure should always be logged
- event.setMessage(event.getException().toString(), 0);
- event.setException(null);
- //note: we turn this into a plain message to avoid stack trace being logged by Idea
- logger.messageLogged(event);
- suppressTaskFailures = true;
- }
- tasks.pop();
- }
-
- @Override
- public void messageLogged(BuildEvent event) {
- String msg = event.getMessage();
-
- boolean processed = false;
-
- if (!tasks.isEmpty()) {
- Task task = tasks.peek();
- for (MessageKind messageKind : task.msgs) {
- if (messageKind.matches(msg)) {
- event.setMessage(msg, messageKind.priority);
- processed = true;
- if (messageKind == MessageKind.JAVAC_CRASH) {
- crashFound = true;
- }
- break;
- }
- }
- }
-
- if (event.getPriority() == MSG_ERR || crashFound) {
- //we log errors regardless of owning task
- logger.messageLogged(event);
- suppressTaskFailures = true;
- } else if (processed) {
- logger.messageLogged(event);
- }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/ant.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="AntConfiguration">
+ <buildFile url="file://$PROJECT_DIR$/make/langtools/intellij/build.xml">
+ <properties>
+ <property name="langtools.jdk.home" value="@IDEA_TARGET_JDK@" />
+ <property name="intellij.ismake" value="$IsMake$" />
+ <property name="idea.dir" value="$ModuleFileDir$" />
+ </properties>
+ <executeOn event="afterCompilation" target="post-make" />
+ </buildFile>
+ </component>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/codeStyleSettings.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectCodeStyleSettingsManager">
+ <option name="PER_PROJECT_SETTINGS">
+ <value>
+ <option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
+ <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
+ <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
+ <option name="RIGHT_MARGIN" value="100" />
+ <option name="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS" value="true" />
+ <XML>
+ <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
+ </XML>
+ <codeStyleSettings language="JAVA">
+ <option name="SPACE_AFTER_TYPE_CAST" value="false" />
+ </codeStyleSettings>
+ </value>
+ </option>
+ <option name="USE_PER_PROJECT_SETTINGS" value="true" />
+ </component>
+</project>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/compiler.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CompilerConfiguration">
+ <option name="DEFAULT_COMPILER" value="Javac" />
+ <excludeFromCompile>
+ <directory url="file://$PROJECT_DIR$/src" includeSubdirectories="true" />
+ <directory url="file://$PROJECT_DIR$/test" includeSubdirectories="true" />
+ <directory url="file://$PROJECT_DIR$/build" includeSubdirectories="true" />
+ <directory url="file://$PROJECT_DIR$/make" includeSubdirectories="true" />
+ </excludeFromCompile>
+ <resourceExtensions />
+ <wildcardResourcePatterns />
+ <annotationProcessing>
+ <profile default="true" name="Default" enabled="false">
+ <processorPath useClasspath="true" />
+ </profile>
+ </annotationProcessing>
+ </component>
+</project>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/copyright/langtools.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,9 @@
+<component name="CopyrightManager">
+ <copyright>
+ <option name="notice" value="Copyright (c) &#36;today.year, Oracle and/or its affiliates. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 only, as published by the Free Software Foundation. Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the LICENSE file that accompanied this code. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details (a copy is included in the LICENSE file that accompanied this code). You should have received a copy of the GNU General Public License version 2 along with this work; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA or visit www.oracle.com if you need additional information or have any questions." />
+ <option name="keyword" value="Copyright" />
+ <option name="allowReplaceKeyword" value="" />
+ <option name="myName" value="langtools" />
+ <option name="myLocal" value="true" />
+ </copyright>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/copyright/profiles_settings.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,7 @@
+<component name="CopyrightManager">
+ <settings default="langtools">
+ <LanguageOptions name="JAVA">
+ <option name="fileLocation" value="1" />
+ </LanguageOptions>
+ </settings>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/inspectionProfiles/langtools.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,30 @@
+<component name="InspectionProjectProfileManager">
+ <profile version="1.0" is_locked="false">
+ <option name="myName" value="langtools" />
+ <option name="myLocal" value="false" />
+ <inspection_tool class="LoggerInitializedWithForeignClass" enabled="false" level="WARNING" enabled_by_default="false">
+ <option name="loggerClassName" value="org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger" />
+ <option name="loggerFactoryMethodName" value="getLogger,getLogger,getLog,getLogger" />
+ </inspection_tool>
+ <inspection_tool class="MismatchedCollectionQueryUpdate" enabled="false" level="WARNING" enabled_by_default="false">
+ <option name="queryNames">
+ <value />
+ </option>
+ <option name="updateNames">
+ <value />
+ </option>
+ </inspection_tool>
+ <inspection_tool class="RawUseOfParameterizedType" enabled="true" level="WARNING" enabled_by_default="true">
+ <option name="ignoreObjectConstruction" value="false" />
+ <option name="ignoreUncompilable" value="true" />
+ </inspection_tool>
+ <inspection_tool class="SpellCheckingInspection" enabled="true" level="TYPO" enabled_by_default="true">
+ <option name="processCode" value="false" />
+ <option name="processLiterals" value="false" />
+ <option name="processComments" value="false" />
+ </inspection_tool>
+ <inspection_tool class="SuspiciousMethodCalls" enabled="true" level="WARNING" enabled_by_default="true">
+ <option name="REPORT_CONVERTIBLE_METHOD_CALLS" value="false" />
+ </inspection_tool>
+ </profile>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/inspectionProfiles/profiles_settings.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,7 @@
+<component name="InspectionProjectProfileManager">
+ <settings>
+ <option name="PROJECT_PROFILE" value="langtools" />
+ <option name="USE_PROJECT_PROFILE" value="true" />
+ <version value="1.0" />
+ </settings>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/langtools.iml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/java.compiler/share/classes" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.compiler/share/classes" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.javadoc/share/classes" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.jdeps/share/classes" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.jshell/share/classes" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.compiler" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.javadoc" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.jdeps" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/make/langtools/tools" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/make/langtools/src/classes" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.compiler" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.javadoc" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.jdeps" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/build/langtools/gensrc/jdk.jshell" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.compiler" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/java.compiler" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.jdeps" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.jshell" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/jdk.javadoc" isTestSource="false" />
+ <excludeFolder url="file://$MODULE_DIR$/build" />
+ </content>
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="inheritedJdk" />
+ </component>
+</module>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/misc.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="EntryPointsManager">
+ <entry_points version="2.0" />
+ </component>
+ <component name="JTRegService">
+ <path>@IDEA_JTREG_HOME@</path>
+ <workDir>build</workDir>
+ <jre alt="true" value="@IDEA_TARGET_JDK@" />
+ <options>@XPATCH@</options>
+ <ant>
+ <target file="file://$PROJECT_DIR$/make/langtools/intellij/build.xml" name="build-all-classes" />
+ </ant>
+ </component>
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/build/.idea-support/out" />
+ </component>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/modules.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/langtools.iml" filepath="$PROJECT_DIR$/.idea/langtools.iml" />
+ </modules>
+ </component>
+</project>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/runConfigurations/javac.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,22 @@
+<component name="ProjectRunConfigurationManager">
+ <configuration default="false" name="javac" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" value="com.sun.tools.javac.Main" />
+ <option name="VM_PARAMETERS" value='@XPATCH@' />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+ <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="langtools" />
+ <envs />
+ <RunnerSettings RunnerId="Run" />
+ <ConfigurationWrapper RunnerId="Run" />
+ <method>
+ <option name="Make" enabled="false" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
+ </method>
+ </configuration>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/runConfigurations/javadoc.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,22 @@
+<component name="ProjectRunConfigurationManager">
+ <configuration default="false" name="javadoc" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" value="jdk.javadoc.internal.tool.Main" />
+ <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED' />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+ <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="langtools" />
+ <envs />
+ <RunnerSettings RunnerId="Run" />
+ <ConfigurationWrapper RunnerId="Run" />
+ <method>
+ <option name="Make" enabled="false" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
+ </method>
+ </configuration>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/runConfigurations/javap.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,22 @@
+<component name="ProjectRunConfigurationManager">
+ <configuration default="false" name="javap" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" value="com.sun.tools.javap.Main" />
+ <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.jdeps/com.sun.tools.javap=ALL-UNNAMED' />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+ <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="langtools" />
+ <envs />
+ <RunnerSettings RunnerId="Run" />
+ <ConfigurationWrapper RunnerId="Run" />
+ <method>
+ <option name="Make" enabled="false" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
+ </method>
+ </configuration>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/runConfigurations/jshell.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,20 @@
+<component name="ProjectRunConfigurationManager">
+ <configuration default="false" name="jshell" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" value="jdk.internal.jshell.tool.JShellToolProvider" />
+ <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.jshell/jdk.internal.jshell.tool=ALL-UNNAMED' />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+ <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="langtools" />
+ <envs />
+ <method>
+ <option name="Make" enabled="false" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
+ </method>
+ </configuration>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/runConfigurations/sjavac.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,22 @@
+<component name="ProjectRunConfigurationManager">
+ <configuration default="false" name="sjavac" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" value="com.sun.tools.sjavac.Main" />
+ <option name="VM_PARAMETERS" value='@XPATCH@ --add-exports=jdk.compiler/com.sun.tools.sjavac=ALL-UNNAMED' />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
+ <option name="ALTERNATIVE_JRE_PATH" value="@IDEA_TARGET_JDK@" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="langtools" />
+ <envs />
+ <RunnerSettings RunnerId="Run" />
+ <ConfigurationWrapper RunnerId="Run" />
+ <method>
+ <option name="Make" enabled="false" />
+ <option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/.idea/build.xml" target="build-all-classes" />
+ </method>
+ </configuration>
+</component>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/src/idea/LangtoolsIdeaAntLogger.java Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,364 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package idea;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.DefaultLogger;
+import org.apache.tools.ant.Project;
+
+import java.util.EnumSet;
+import java.util.Stack;
+
+import static org.apache.tools.ant.Project.*;
+
+/**
+ * This class is used to wrap the IntelliJ ant logger in order to provide more meaningful
+ * output when building langtools. The basic ant output in IntelliJ can be quite cumbersome to
+ * work with, as it provides two separate views: (i) a tree view, which is good to display build task
+ * in a hierarchical fashion as they are processed; and a (ii) plain text view, which gives you
+ * the full ant output. The main problem is that javac-related messages are buried into the
+ * ant output (which is made very verbose by IntelliJ in order to support the tree view). It is
+ * not easy to figure out which node to expand in order to see the error message; switching
+ * to plain text doesn't help either, as now the output is totally flat.
+ *
+ * This logger class removes a lot of verbosity from the IntelliJ ant logger by not propagating
+ * all the events to the IntelliJ's logger. In addition, certain events are handled in a custom
+ * fashion, to generate better output during the build.
+ */
+public final class LangtoolsIdeaAntLogger extends DefaultLogger {
+
+ /**
+ * This is just a way to pass in customized binary string predicates;
+ *
+ * TODO: replace with @code{BiPredicate<String, String>} and method reference when moving to 8
+ */
+ enum StringBinaryPredicate {
+ CONTAINS() {
+ @Override
+ boolean apply(String s1, String s2) {
+ return s1.contains(s2);
+ }
+ },
+ STARTS_WITH {
+ @Override
+ boolean apply(String s1, String s2) {
+ return s1.startsWith(s2);
+ }
+ };
+
+ abstract boolean apply(String s1, String s2);
+ }
+
+ /**
+ * Various kinds of ant messages that we shall intercept
+ */
+ enum MessageKind {
+
+ /** a javac error */
+ JAVAC_ERROR(StringBinaryPredicate.CONTAINS, MSG_ERR, "error:", "compiler.err"),
+ /** a javac warning */
+ JAVAC_WARNING(StringBinaryPredicate.CONTAINS, MSG_WARN, "warning:", "compiler.warn"),
+ /** a javac note */
+ JAVAC_NOTE(StringBinaryPredicate.CONTAINS, MSG_INFO, "note:", "compiler.note"),
+ /** a javac raw error (these typically come from a build misconfiguration - such as a bad javac flag) */
+ JAVAC_RAW_ERROR(StringBinaryPredicate.STARTS_WITH, MSG_INFO, "javac: "),
+ /** continuation of some javac error message */
+ JAVAC_NESTED_DIAG(StringBinaryPredicate.STARTS_WITH, MSG_INFO, " "),
+ /** a javac crash */
+ JAVAC_CRASH(StringBinaryPredicate.STARTS_WITH, MSG_ERR, "An exception has occurred in the compiler"),
+ /** jtreg test success */
+ JTREG_TEST_PASSED(StringBinaryPredicate.STARTS_WITH, MSG_INFO, "Passed: "),
+ /** jtreg test failure */
+ JTREG_TEST_FAILED(StringBinaryPredicate.STARTS_WITH, MSG_ERR, "FAILED: "),
+ /** jtreg test error */
+ JTREG_TEST_ERROR(StringBinaryPredicate.STARTS_WITH, MSG_ERR, "Error: "),
+ /** jtreg report */
+ JTREG_TEST_REPORT(StringBinaryPredicate.STARTS_WITH, MSG_INFO, "Report written");
+
+ StringBinaryPredicate sbp;
+ int priority;
+ String[] keys;
+
+ MessageKind(StringBinaryPredicate sbp, int priority, String... keys) {
+ this.sbp = sbp;
+ this.priority = priority;
+ this.keys = keys;
+ }
+
+ /**
+ * Does a given message string matches this kind?
+ */
+ boolean matches(String s) {
+ for (String key : keys) {
+ if (sbp.apply(s, key)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+
+ /**
+ * This enum is used to represent the list of tasks we need to keep track of during logging.
+ */
+ enum Task {
+ /** exec task - invoked during compilation */
+ JAVAC("exec", MessageKind.JAVAC_ERROR, MessageKind.JAVAC_WARNING, MessageKind.JAVAC_NOTE,
+ MessageKind.JAVAC_RAW_ERROR, MessageKind.JAVAC_NESTED_DIAG, MessageKind.JAVAC_CRASH),
+ /** jtreg task - invoked during test execution */
+ JTREG("jtreg", MessageKind.JTREG_TEST_PASSED, MessageKind.JTREG_TEST_FAILED, MessageKind.JTREG_TEST_ERROR, MessageKind.JTREG_TEST_REPORT),
+ /** initial synthetic task when the logger is created */
+ ROOT("") {
+ @Override
+ boolean matches(String s) {
+ return false;
+ }
+ },
+ /** synthetic task catching any other tasks not in this list */
+ ANY("") {
+ @Override
+ boolean matches(String s) {
+ return true;
+ }
+ };
+
+ String taskName;
+ MessageKind[] msgs;
+
+ Task(String taskName, MessageKind... msgs) {
+ this.taskName = taskName;
+ this.msgs = msgs;
+ }
+
+ boolean matches(String s) {
+ return s.equals(taskName);
+ }
+ }
+
+ /**
+ * This enum is used to represent the list of targets we need to keep track of during logging.
+ * A regular expression is used to match a given target name.
+ */
+ enum Target {
+ /** jtreg target - executed when launching tests */
+ JTREG("jtreg") {
+ @Override
+ String getDisplayMessage(BuildEvent e) {
+ return "Running jtreg tests: " + e.getProject().getProperty("jtreg.tests");
+ }
+ },
+ /** build bootstrap tool target - executed when bootstrapping javac */
+ BUILD_BOOTSTRAP_JAVAC("build-bootstrap-javac-classes") {
+ @Override
+ String getDisplayMessage(BuildEvent e) {
+ return "Building bootstrap javac...";
+ }
+ },
+ /** build classes target - executed when building classes of given tool */
+ BUILD_ALL_CLASSES("build-all-classes") {
+ @Override
+ String getDisplayMessage(BuildEvent e) {
+ return "Building all classes...";
+ }
+ },
+ /** synthetic target catching any other target not in this list */
+ ANY("") {
+ @Override
+ String getDisplayMessage(BuildEvent e) {
+ return "Executing Ant target(s): " + e.getProject().getProperty("ant.project.invoked-targets");
+ }
+ @Override
+ boolean matches(String msg) {
+ return true;
+ }
+ };
+
+ String targetName;
+
+ Target(String targetName) {
+ this.targetName = targetName;
+ }
+
+ boolean matches(String msg) {
+ return msg.equals(targetName);
+ }
+
+ abstract String getDisplayMessage(BuildEvent e);
+ }
+
+ /**
+ * A custom build event used to represent status changes which should be notified inside
+ * Intellij
+ */
+ static class StatusEvent extends BuildEvent {
+
+ /** the target to which the status update refers */
+ Target target;
+
+ StatusEvent(BuildEvent e, Target target) {
+ super(new StatusTask(e, target.getDisplayMessage(e)));
+ this.target = target;
+ setMessage(getTask().getTaskName(), 2);
+ }
+
+ /**
+ * A custom task used to channel info regarding a status change
+ */
+ static class StatusTask extends org.apache.tools.ant.Task {
+ StatusTask(BuildEvent event, String msg) {
+ setProject(event.getProject());
+ setOwningTarget(event.getTarget());
+ setTaskName(msg);
+ }
+ }
+ }
+
+ /** wrapped ant logger (IntelliJ's own logger) */
+ DefaultLogger logger;
+
+ /** flag - is this the first target we encounter? */
+ boolean firstTarget = true;
+
+ /** flag - should subsequenet failures be suppressed ? */
+ boolean suppressTaskFailures = false;
+
+ /** flag - have we ran into a javac crash ? */
+ boolean crashFound = false;
+
+ /** stack of status changes associated with pending targets */
+ Stack<StatusEvent> statusEvents = new Stack<>();
+
+ /** stack of pending tasks */
+ Stack<Task> tasks = new Stack<>();
+
+ public LangtoolsIdeaAntLogger(Project project) {
+ for (Object o : project.getBuildListeners()) {
+ if (o instanceof DefaultLogger) {
+ this.logger = (DefaultLogger)o;
+ project.removeBuildListener((BuildListener)o);
+ project.addBuildListener(this);
+ }
+ }
+ logger.setMessageOutputLevel(3);
+ tasks.push(Task.ROOT);
+ }
+
+ @Override
+ public void buildStarted(BuildEvent event) {
+ //do nothing
+ }
+
+ @Override
+ public void buildFinished(BuildEvent event) {
+ //do nothing
+ }
+
+ @Override
+ public void targetStarted(BuildEvent event) {
+ EnumSet<Target> statusKinds = firstTarget ?
+ EnumSet.allOf(Target.class) :
+ EnumSet.complementOf(EnumSet.of(Target.ANY));
+
+ String targetName = event.getTarget().getName();
+
+ for (Target statusKind : statusKinds) {
+ if (statusKind.matches(targetName)) {
+ StatusEvent statusEvent = new StatusEvent(event, statusKind);
+ statusEvents.push(statusEvent);
+ logger.taskStarted(statusEvent);
+ firstTarget = false;
+ return;
+ }
+ }
+ }
+
+ @Override
+ public void targetFinished(BuildEvent event) {
+ if (!statusEvents.isEmpty()) {
+ StatusEvent lastEvent = statusEvents.pop();
+ if (lastEvent.target.matches(event.getTarget().getName())) {
+ logger.taskFinished(lastEvent);
+ }
+ }
+ }
+
+ @Override
+ public void taskStarted(BuildEvent event) {
+ String taskName = event.getTask().getTaskName();
+ for (Task task : Task.values()) {
+ if (task.matches(taskName)) {
+ tasks.push(task);
+ return;
+ }
+ }
+ }
+
+ @Override
+ public void taskFinished(BuildEvent event) {
+ if (tasks.peek() == Task.ROOT) {
+ //we need to 'close' the root task to get nicer output
+ logger.taskFinished(event);
+ } else if (!suppressTaskFailures && event.getException() != null) {
+ //the first (innermost) task failure should always be logged
+ event.setMessage(event.getException().toString(), 0);
+ event.setException(null);
+ //note: we turn this into a plain message to avoid stack trace being logged by Idea
+ logger.messageLogged(event);
+ suppressTaskFailures = true;
+ }
+ tasks.pop();
+ }
+
+ @Override
+ public void messageLogged(BuildEvent event) {
+ String msg = event.getMessage();
+
+ boolean processed = false;
+
+ if (!tasks.isEmpty()) {
+ Task task = tasks.peek();
+ for (MessageKind messageKind : task.msgs) {
+ if (messageKind.matches(msg)) {
+ event.setMessage(msg, messageKind.priority);
+ processed = true;
+ if (messageKind == MessageKind.JAVAC_CRASH) {
+ crashFound = true;
+ }
+ break;
+ }
+ }
+ }
+
+ if (event.getPriority() == MSG_ERR || crashFound) {
+ //we log errors regardless of owning task
+ logger.messageLogged(event);
+ suppressTaskFailures = true;
+ } else if (processed) {
+ logger.messageLogged(event);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/vcs.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="hg4idea" />
+ </component>
+</project>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/make/langtools/intellij/template/workspace.xml Wed Aug 29 11:25:51 2018 +0100
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="StructureViewFactory">
+ <option name="ACTIVE_ACTIONS" value=",ALPHA_COMPARATOR" />
+ </component>
+ <component name="antWorkspaceConfiguration">
+ <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+ <option name="FILTER_TARGETS" value="false" />
+ <buildFile url="file://$PROJECT_DIR$/make/langtools/intellij/build.xml">
+ <runInBackground value="false" />
+ <targetFilters>
+ <filter targetName="build-all-tools" isVisible="true" />
+ <filter targetName="build-all-classes" isVisible="true" />
+ <filter targetName="clean" isVisible="true" />
+ <filter targetName="crules" isVisible="true" />
+ </targetFilters>
+ <viewClosedWhenNoErrors value="true" />
+ <expanded value="false" />
+ <treeView value="false" />
+ </buildFile>
+ </component>
+</project>
--- a/make/langtools/intellij/vcs.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="VcsDirectoryMappings">
- <mapping directory="$PROJECT_DIR$" vcs="hg4idea" />
- </component>
-</project>
-
--- a/make/langtools/intellij/workspace.xml Wed Aug 29 14:10:19 2018 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="StructureViewFactory">
- <option name="ACTIVE_ACTIONS" value=",ALPHA_COMPARATOR" />
- </component>
- <component name="antWorkspaceConfiguration">
- <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
- <option name="FILTER_TARGETS" value="false" />
- <buildFile url="file://$PROJECT_DIR$/.idea/build.xml">
- <runInBackground value="false" />
- <targetFilters>
- <filter targetName="build-all-tools" isVisible="true" />
- <filter targetName="build-all-classes" isVisible="true" />
- <filter targetName="clean" isVisible="true" />
- <filter targetName="crules" isVisible="true" />
- </targetFilters>
- <viewClosedWhenNoErrors value="true" />
- <expanded value="false" />
- <treeView value="false" />
- </buildFile>
- </component>
-</project>