diff --git a/bin/inspect_diff.bat b/bin/inspect_diff.bat index 688e7ce55c75..6d6ae2f0ddda 100644 --- a/bin/inspect_diff.bat +++ b/bin/inspect_diff.bat @@ -5,62 +5,48 @@ ::---------------------------------------------------------------------- :: --------------------------------------------------------------------- -:: Before you can run IntelliJ IDEA, please, specify the location of the -:: Sun's JDK 1.4.0_01 (or higher) on your system. -:: The JDK you specify here will be used to start IntelliJ IDEA. -:: You may also specify JDK location in IDEA_JAVA_HOME environment -:: variable. +:: Before you run IntelliJ IDEA specify the location of the +:: JDK 1.5 installation directory which will be used for running IDEA :: --------------------------------------------------------------------- -IF NOT EXIST "%IDEA_JAVA_HOME%" SET IDEA_JAVA_HOME=c:\j2sdk1.4.0_01 + +IF "%IDEA_JDK%" == "" SET IDEA_JDK=%JDK_HOME% +IF "%IDEA_JDK%" == "" goto error :: --------------------------------------------------------------------- -:: Before you run IntelliJ IDEA, please, specify the location of the +:: Before you run IntelliJ IDEA specify the location of the :: directory where IntelliJ IDEA is installed +:: In most cases you do not need to change the settings below. :: --------------------------------------------------------------------- SET IDEA_HOME=.. -:: --------------------------------------------------------------------- -:: If you have correctly set the IDEA_JAVA_HOME path, then in most cases -:: you will not need to change the settings below. -:: --------------------------------------------------------------------- -SET JAVA_EXE=%IDEA_JAVA_HOME%\bin\java.exe - +SET JAVA_EXE=%IDEA_JDK%\jre\bin\java.exe IF NOT EXIST "%JAVA_EXE%" goto error -IF NOT EXIST "%IDEA_JAVA_HOME%\lib\tools.jar" goto error +IF "%IDEA_MAIN_CLASS_NAME%" == "" SET IDEA_MAIN_CLASS_NAME=com.intellij.codeInspection.InspectionDiff -SET OLD_CVS_PASSFILE=%CVS_PASSFILE% -IF "%CVS_PASSFILE%" == "" SET CVS_PASSFILE=C:\.cvspass - -SET MAIN_CLASS_NAME=com.intellij.codeInspection.InspectionDiff +IF NOT "%IDEA_PROPERTIES%" == "" set IDEA_PROPERTIES_PROPERTY=-Didea.properties.file=%IDEA_PROPERTIES% :: --------------------------------------------------------------------- -:: You may specify your own JVM arguments in IDEA_JVM_ARGS variable. +:: You may specify your own JVM arguments in idea.exe.vmoptions file. Put one option per line there. :: --------------------------------------------------------------------- -IF "%IDEA_JVM_ARGS%" == "" set IDEA_JVM_ARGS=-Xms16m -Xmx128m -Dsun.java2d.noddraw=true +SET ACC= +FOR /F "delims=" %%i in (%IDEA_HOME%\bin\idea.exe.vmoptions) DO call %IDEA_HOME%\bin\append.bat "%%i" -SET JVM_ARGS= %IDEA_JVM_ARGS% -Didea.system.path="%IDEA_HOME%\system" -DCVS_PASSFILE="%CVS_PASSFILE%" +set REQUIRED_IDEA_JVM_ARGS=-Xbootclasspath/p:%IDEA_HOME%/lib/boot.jar %IDEA_PROPERTIES_PROPERTY% %REQUIRED_IDEA_JVM_ARGS% +SET JVM_ARGS=%ACC% %REQUIRED_IDEA_JVM_ARGS% SET OLD_PATH=%PATH% -SET PATH=%IDEA_JAVA_HOME%\bin;%PATH% +SET PATH=%IDEA_HOME%\bin;%PATH% -SET CLASS_PATH=%IDEA_HOME%\lib\xerces.jar +SET CLASS_PATH=%IDEA_HOME%\lib\bootstrap.jar SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\idea.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\idea_rt.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\icons.jar +SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\resources_en.jar +SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\openapi.jar SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\jdom.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\oromatcher.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\jh.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\ant.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\optional.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\junit.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\servlet.jar SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\log4j.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\velocity.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\JNIWrap.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\jasper-compiler.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\jasper-runtime.jar -SET CLASS_PATH=%CLASS_PATH%;%IDEA_JAVA_HOME%\lib\tools.jar +SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\extensions.jar +SET CLASS_PATH=%CLASS_PATH%;%IDEA_HOME%\lib\trove4j.jar +SET CLASS_PATH=%CLASS_PATH%;%IDEA_JDK%\lib\tools.jar :: --------------------------------------------------------------------- :: You may specify additional class paths in IDEA_CLASS_PATH variable. @@ -68,15 +54,15 @@ SET CLASS_PATH=%CLASS_PATH%;%IDEA_JAVA_HOME%\lib\tools.jar :: --------------------------------------------------------------------- IF NOT "%IDEA_CLASS_PATH%" == "" SET CLASS_PATH=%CLASS_PATH%;%IDEA_CLASS_PATH% -"%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %MAIN_CLASS_NAME% %* +"%JAVA_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %* SET PATH=%OLD_PATH% -SET CVS_PASSFILE=%OLD_CVS_PASSFILE% goto end :error echo --------------------------------------------------------------------- echo ERROR: cannot start IntelliJ IDEA. -echo Please, specify IDEA_JAVA_HOME variable in this batch file. +echo No JDK found to run IDEA. Please validate either IDEA_JDK or JDK_HOME points to valid JDK installation echo --------------------------------------------------------------------- pause -:end \ No newline at end of file + +:end diff --git a/bin/inspect_diff.sh b/bin/inspect_diff.sh index 582d38879439..8aea3a15a494 100644 --- a/bin/inspect_diff.sh +++ b/bin/inspect_diff.sh @@ -4,33 +4,17 @@ # IntelliJ IDEA Startup Script for Unix # ------------------------------------------------------ # -# Please customize this script by specifying locations of JDK_HOME and -# IDEA_HOME below -# -#-------------------------------------------------------------------------- -# Specify the JAVA_HOME for this script. JAVA_HOME should refer to the -# home location where your system's Java Development Kit version 1.4 is installed -# For instance, the supplied example assumes the JDK is installed at -# /usr/java/j2sdk1.4.0_01 - -darwin=false; -case "`uname`" in - Darwin*) darwin=true; -esac - -if [ -z "$JAVA_HOME" ]; then - if $darwin ; then - JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home - else - JAVA_HOME=/usr/java/j2sdk1.4.0_01 - fi +# --------------------------------------------------------------------- +# Before you run IntelliJ IDEA specify the location of the +# JDK 1.5 installation directory which will be used for running IDEA +# --------------------------------------------------------------------- +if [ -z "$IDEA_JDK" ]; then +IDEA_JDK=$JDK_HOME +if [ -z "$IDEA_JDK" ]; then +echo ERROR: cannot start IntelliJ IDEA. +echo No JDK found to run IDEA. Please validate either IDEA_JDK or JDK_HOME points to valid JDK installation fi - -if $darwin ; then - TOOLS_PATH=$JAVA_HOME/lib/ext/jpda.jar -else - TOOLS_PATH=$JAVA_HOME/lib/tools.jar fi #-------------------------------------------------------------------------- @@ -38,31 +22,42 @@ fi # home directory where IntelliJ IDEA is installed on your system. IDEA_HOME=`dirname "$0"`/.. - -if [ -z "$CVS_PASSFILE" ]; then - CVS_PASSFILE=${HOME}/.cvspass -fi +IDEA_BIN_HOME=`dirname "$0"` export JAVA_HOME export IDEA_HOME -export CVS_PASSFILE -MAIN_CLASS_NAME="com.intellij.codeInspection.InspectionDiff" -JVM_ARGS="-Xms16M -Xmx156M" - -while [ $# -gt 0 ]; do - args="$args $1" - shift -done - -oldcp=$CLASSPATH -CLASSPATH=$IDEA_HOME/lib/idea.jar:$IDEA_HOME/lib/jh.jar:$IDEA_HOME/lib/oromatcher.jar:$IDEA_HOME/lib/jaxp.jar:$IDEA_HOME/lib/xerces.jar:$IDEA_HOME/lib/jdom.jar:$TOOLS_PATH:$IDEA_HOME/lib/icons.jar:$IDEA_HOME/lib/ant.jar:$IDEA_HOME/lib/junit.jar:$IDEA_HOME/lib/optional.jar:$IDEA_HOME/lib/servlet.jar:$IDEA_HOME/lib/log4j.jar -BOOT_CLASS_PATH=$IDEA_HOME/lib/jaxp.jar:$IDEA_HOME/lib/xerces.jar:$IDEA_HOME/lib/jdom.jar - -# Append old classpath to current classpath -if [ ! -z "$oldcp" ]; then - CLASSPATH=${CLASSPATH}:$oldcp +if [ -n "$IDEA_PROPERTIES" ]; then +IDEA_PROPERTIES_PROPERTY=-Didea.properties.file=$IDEA_PROPERTIES fi +if [ -z "$IDEA_MAIN_CLASS_NAME" ]; then +IDEA_MAIN_CLASS_NAME="com.intellij.codeInspection.InspectionDiff" +fi + +if [ -z "$IDEA_VM_OPTIONS" ]; then +IDEA_VM_OPTIONS="$IDEA_HOME/bin/idea.vmoptions" +fi + +REQUIRED_JVM_ARGS="-Xbootclasspath/p:../lib/boot.jar $IDEA_PROPERTIES_PROPERTY $REQUIRED_JVM_ARGS" +JVM_ARGS=`tr '\n' ' ' < "$IDEA_VM_OPTIONS"` +JVM_ARGS="$JVM_ARGS $REQUIRED_JVM_ARGS" + +CLASSPATH=../lib/bootstrap.jar +CLASSPATH=$CLASSPATH:../lib/openapi.jar +CLASSPATH=$CLASSPATH:../lib/idea.jar +CLASSPATH=$CLASSPATH:../lib/resources_en.jar +CLASSPATH=$CLASSPATH:../lib/jdom.jar +CLASSPATH=$CLASSPATH:../lib/log4j.jar +CLASSPATH=$CLASSPATH:../lib/extensions.jar +CLASSPATH=$CLASSPATH:../lib/trove4j.jar +CLASSPATH=$CLASSPATH:$IDEA_JDK/lib/tools.jar +CLASSPATH=$CLASSPATH:$IDEA_CLASSPATH + export CLASSPATH -exec ${JAVA_HOME}/bin/java -Xbootclasspath/p:${BOOT_CLASS_PATH} -DCVS_PASSFILE=${CVS_PASSFILE} $JVM_ARGS $MAIN_CLASS_NAME $args + +LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH + +cd "$IDEA_BIN_HOME" +exec $IDEA_JDK/bin/java $JVM_ARGS $IDEA_MAIN_CLASS_NAME $* diff --git a/inspections/impl/com/intellij/codeInspection/InspectionDiff.java b/inspections/impl/com/intellij/codeInspection/InspectionDiff.java index fb6b3f7d06ae..a8c74525d1f3 100644 --- a/inspections/impl/com/intellij/codeInspection/InspectionDiff.java +++ b/inspections/impl/com/intellij/codeInspection/InspectionDiff.java @@ -48,27 +48,49 @@ public class InspectionDiff { String newPath = args[1]; String outPath = args.length == 3 ? args[2] : null; - - try { - InputStream oldStream = new BufferedInputStream(new FileInputStream(oldPath)); - InputStream newStream = new BufferedInputStream(new FileInputStream(newPath)); - - Document oldDoc = JDOMUtil.loadDocument(oldStream); - Document newDoc = JDOMUtil.loadDocument(newStream); - - OutputStream outStream = System.out; - if (outPath != null) { - outStream = new BufferedOutputStream(new FileOutputStream(outPath)); + final File oldResults = new File(oldPath); + final File newResults = new File(newPath); + if (oldResults.isDirectory() && newResults.isDirectory()) { + final File[] old = oldResults.listFiles(); + final File[] results = newResults.listFiles(); + for (File result : results) { + final String inspectionName = result.getName(); + boolean found = false; + for (File oldFile : old) { + if (oldFile.getName().equals(inspectionName)) { + writeInspectionDiff(oldFile.getPath(), result.getPath(), outPath); + found = true; + break; + } + } + if (!found) { + writeInspectionDiff(null, result.getPath(), outPath); + } } - - Document delta = createDelta(oldDoc, newDoc); - JDOMUtil.writeDocument(delta, outStream, "\n"); - } catch (Exception e) { - System.out.println(e); - e.printStackTrace(); } } + private static void writeInspectionDiff(final String oldPath, final String newPath, final String outPath) { + try { + InputStream oldStream = oldPath != null ? new BufferedInputStream(new FileInputStream(oldPath)) : null; + InputStream newStream = new BufferedInputStream(new FileInputStream(newPath)); + + Document oldDoc = oldStream != null ? JDOMUtil.loadDocument(oldStream) : null; + Document newDoc = JDOMUtil.loadDocument(newStream); + + OutputStream outStream = System.out; + if (outPath != null) { + outStream = new BufferedOutputStream(new FileOutputStream(outPath + File.separator + new File(oldPath).getName())); + } + + Document delta = createDelta(oldDoc, newDoc); + JDOMUtil.writeDocument(delta, outStream, "\n"); + } catch (Exception e) { + System.out.println(e); + e.printStackTrace(); + } + } + @SuppressWarnings({"HardCodedStringLiteral"}) private static Document createDelta(Document oldDoc, Document newDoc) { Element oldRoot = oldDoc.getRootElement();