[no review] InspectionDiff works with new inspection results format

This commit is contained in:
Anna Kozlova
2007-10-03 16:32:10 +04:00
parent e87d181077
commit ea66b4e7c1
3 changed files with 106 additions and 103 deletions
+26 -40
View File
@@ -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
:end
+41 -46
View File
@@ -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 $*
@@ -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();