mirror of https://github.com/mchr3k/org.intrace
Upgrade to SWT 4.3, Miglayout 4.2, and tweak code after pull request #34.
This commit is contained in:
parent
24db68904d
commit
fa62aa7a37
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -2,7 +2,7 @@
|
|||
<feature
|
||||
id="intrace.ecl.feature"
|
||||
label="InTrace Eclipse Plugin"
|
||||
version="0.20">
|
||||
version="0.21">
|
||||
|
||||
<description url="https://github.com/mchr3k/org.intrace/wiki">
|
||||
Enable launching Java Applications with the InTrace agent.
|
||||
|
|
@ -215,6 +215,6 @@ litigation.
|
|||
id="intrace.ecl"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.20.0"/>
|
||||
version="0.21.0"/>
|
||||
|
||||
</feature>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,23 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: InTrace Eclipse
|
||||
Bundle-SymbolicName: intrace.ecl;singleton:=true
|
||||
Bundle-Version: 0.20
|
||||
Bundle-Activator: intrace.ecl.Activator
|
||||
Require-Bundle: org.eclipse.ui,
|
||||
org.eclipse.core.runtime,
|
||||
org.eclipse.debug.core,
|
||||
org.eclipse.debug.ui,
|
||||
org.eclipse.jdt.debug.ui,
|
||||
org.eclipse.jdt.launching,
|
||||
org.eclipse.ui.ide,
|
||||
org.eclipse.jdt.junit,
|
||||
org.eclipse.jdt.core
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||
Bundle-ClassPath: lib/miglayout-3.7.3.1-swt.jar,
|
||||
.,
|
||||
lib/intrace-ui-helper.jar
|
||||
Export-Package: intrace.ecl,
|
||||
intrace.ecl.ui.launching,
|
||||
intrace.ecl.ui.output
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: InTrace Eclipse
|
||||
Bundle-SymbolicName: intrace.ecl;singleton:=true
|
||||
Bundle-Version: 0.21
|
||||
Bundle-Activator: intrace.ecl.Activator
|
||||
Require-Bundle: org.eclipse.ui,
|
||||
org.eclipse.core.runtime,
|
||||
org.eclipse.debug.core,
|
||||
org.eclipse.debug.ui,
|
||||
org.eclipse.jdt.debug.ui,
|
||||
org.eclipse.jdt.launching,
|
||||
org.eclipse.ui.ide,
|
||||
org.eclipse.jdt.junit,
|
||||
org.eclipse.jdt.core
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||
Bundle-ClassPath: lib/miglayout-3.7.3.1-swt.jar,
|
||||
.,
|
||||
lib/intrace-ui-helper.jar
|
||||
Export-Package: intrace.ecl,
|
||||
intrace.ecl.ui.launching,
|
||||
intrace.ecl.ui.output
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -8,8 +8,9 @@
|
|||
<classpathentry kind="lib" path="lib/cglib-nodep-2.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/asm-debug-all-3.3.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jar-in-jar-loader.jar"/>
|
||||
<classpathentry kind="lib" path="lib/swt-win32-3.6.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/miglayout-3.7.3.1-swt.jar"/>
|
||||
<classpathentry kind="lib" path="lib/miglayout-swt-4.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/miglayout-core-4.2.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="lib/swt-win64-4.3.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
|||
|
|
@ -1,428 +1,430 @@
|
|||
<project name="InTrace" basedir="." default="help">
|
||||
|
||||
<!-- directory that contains emma.jar and emma_ant.jar: -->
|
||||
<path id="emma.lib" >
|
||||
<pathelement location="./lib/emma.jar" />
|
||||
<pathelement location="./lib/emma_ant.jar" />
|
||||
</path>
|
||||
|
||||
<path id="findbugs.lib" >
|
||||
<fileset dir="./lib/findbugs" includes="*.jar" />
|
||||
</path>
|
||||
|
||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="./lib/ant-contrib-1.0b3.jar" />
|
||||
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />
|
||||
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask">
|
||||
<classpath refid="findbugs.lib"/>
|
||||
</taskdef>
|
||||
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
|
||||
classpath="./lib/jarjar-1.0.jar"/>
|
||||
<taskdef name="swtjar" classname="org.swtjar.ant.SWTJarTask"
|
||||
classpath="./lib/swtjar.jar"/>
|
||||
<taskdef name="jarbundler" classname="net.sourceforge.jarbundler.JarBundler"
|
||||
classpath="./lib/jarbundler-2.2.0.jar"/>
|
||||
|
||||
<property name="findbugs.home" value="./lib/findbugs" />
|
||||
|
||||
|
||||
<target name="help">
|
||||
<java classname="org.apache.tools.ant.Main">
|
||||
<arg value="-projecthelp" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="clean" description="Comile classes">
|
||||
<delete dir="./build" />
|
||||
<delete dir="./reports" />
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="build" description="Comile classes">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/classes" />
|
||||
|
||||
<javac destdir="./build/classes" debug="true" source="1.6" target="1.6"
|
||||
includeantruntime="false">
|
||||
<src path="./src"/>
|
||||
<classpath>
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="getgitdetails" >
|
||||
<exec executable="git" outputproperty="git.tagstring">
|
||||
<arg value="describe"/>
|
||||
</exec>
|
||||
<exec executable="git" outputproperty="git.revision">
|
||||
<arg value="rev-parse"/>
|
||||
<arg value="HEAD"/>
|
||||
</exec>
|
||||
<if>
|
||||
<contains string="${git.tagstring}" substring="cannot"/>
|
||||
<then>
|
||||
<property name="git.tag" value="none"/>
|
||||
</then>
|
||||
<else>
|
||||
<property name="git.tag" value="${git.tagstring}"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="jar" description="Create Jars" depends="build,getgitdetails" >
|
||||
|
||||
<mkdir dir="./build/tmp/" />
|
||||
<mkdir dir="./build/jars/" />
|
||||
|
||||
<!-- Agent -->
|
||||
<jarjar jarfile="./build/jars/intrace-agent.jar">
|
||||
<manifest>
|
||||
<attribute name="Premain-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Agent-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Can-Retransform-Classes" value="true" />
|
||||
<attribute name="Class-Path" value="." />
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
<fileset dir="./build/classes" includes="**/agent/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/output/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<zipfileset excludes="META-INF/*.MF" src="./lib/asm-debug-all-3.3.jar"/>
|
||||
<rule pattern="org.objectweb.asm.**" result="org.intrace.internal.objectweb.asm.@1"/>
|
||||
</jarjar>
|
||||
<copy file="./build/jars/intrace-agent.jar" todir="./lib/" />
|
||||
|
||||
<!-- UI (Cross platform SWT Jar (Windows/Linux)) -->
|
||||
<swtjar jarfile="./build/jars/intrace-ui.jar"
|
||||
targetmainclass="org.intrace.client.gui.InTraceStandaloneUI"
|
||||
swtversion="3.6.2">
|
||||
<manifest>
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
|
||||
<!-- InTrace classes -->
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/client/gui/**/*.class" />
|
||||
|
||||
<!-- InTrace icons -->
|
||||
<fileset dir="./src" includes="**/icons/**/*.*" />
|
||||
|
||||
<!-- Required Jars -->
|
||||
<zipfileset excludes="META-INF/*.MF" src="lib/miglayout-3.7.3.1-swt.jar"/>
|
||||
|
||||
<!-- SWT Jars (Windows/Linux) -->
|
||||
<fileset dir="./lib" includes="swt-win*-3.6.2.jar" />
|
||||
<fileset dir="./lib" includes="swt-lin*-3.6.2.jar" />
|
||||
</swtjar>
|
||||
|
||||
<!-- UI (OSX SWT Jar) -->
|
||||
<swtjar jarfile="./build/tmp/intrace-ui-osx.jar"
|
||||
targetmainclass="org.intrace.client.gui.InTraceStandaloneUI"
|
||||
swtversion="3.6.2">
|
||||
<manifest>
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
|
||||
<!-- InTrace classes -->
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/client/gui/**/*.class" />
|
||||
|
||||
<!-- InTrace icons -->
|
||||
<fileset dir="./src" includes="**/icons/**/*.*" />
|
||||
|
||||
<!-- Required Jars -->
|
||||
<zipfileset excludes="META-INF/*.MF" src="lib/miglayout-3.7.3.1-swt.jar"/>
|
||||
|
||||
<!-- SWT Jars (OSX) -->
|
||||
<fileset dir="./lib" includes="swt-osx*-3.6.2.jar" />
|
||||
</swtjar>
|
||||
|
||||
<!-- UI (OSX application) -->
|
||||
<mkdir dir="./build/tmp/InTraceApp/" />
|
||||
<jarbundler dir="./build/tmp/InTraceApp/"
|
||||
name="InTrace"
|
||||
mainclass="org.swtjar.SWTLoader"
|
||||
jar="./build/tmp/intrace-ui-osx.jar"
|
||||
startOnMainThread="true"
|
||||
icon="./src/org/intrace/icons/intrace128.icns"
|
||||
stubfile="./lib/JavaApplicationStub" />
|
||||
<delete file="./build/tmp/InTraceApp/InTrace.app/Contents/MacOS/JavaApplicationStub" />
|
||||
<mkdir dir="./build/tmp/InTraceAppLauncher/InTrace.app/Contents/MacOS/" />
|
||||
<copy file="./lib/JavaApplicationStub"
|
||||
todir="./build/tmp/InTraceAppLauncher/InTrace.app/Contents/MacOS/" />
|
||||
<tar destfile="./build/jars/InTrace.app.tar">
|
||||
<tarfileset dir="./build/tmp/InTraceAppLauncher/" filemode="777" />
|
||||
<tarfileset dir="./build/tmp/InTraceApp/" />
|
||||
</tar>
|
||||
|
||||
<!-- InTrace UI Library -->
|
||||
<jar jarfile="./build/jars/intrace-ui-helper.jar">
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/client/gui/helper/*.class" />
|
||||
<fileset dir="./src" includes="**/icons/**/*.*" />
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="test" description="Run Tests" depends="build" >
|
||||
<property name="emma.enabled" value="true" />
|
||||
|
||||
<mkdir dir="./reports" />
|
||||
<mkdir dir="./reports/junit" />
|
||||
<mkdir dir="./reports/junit/raw" />
|
||||
<mkdir dir="./reports/emma" />
|
||||
<mkdir dir="./reports/emma/metadata" />
|
||||
|
||||
<mkdir dir="./build/test" />
|
||||
<mkdir dir="./build/classes_instr" />
|
||||
|
||||
<javac destdir="./build/test" debug="true" source="1.6" target="1.6"
|
||||
includeantruntime="false">
|
||||
<src path="./testsrc"/>
|
||||
<classpath>
|
||||
<pathelement path="./build/classes" />
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
|
||||
<copy todir="./build/classes_instr">
|
||||
<fileset dir="./build/classes"/>
|
||||
</copy>
|
||||
|
||||
<emma enabled="${emma.enabled}" >
|
||||
<instr instrpath="./build/classes_instr"
|
||||
metadatafile="./reports/emma/metadata/metadata.emma"
|
||||
merge="true"
|
||||
mode="overwrite"
|
||||
/>
|
||||
</emma>
|
||||
|
||||
<!-- Build agent with coverage instrumentation enabled -->
|
||||
<jar jarfile="./build/tmp/intrace-agent-instr.jar">
|
||||
<manifest>
|
||||
<attribute name="Premain-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Agent-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Can-Redefine-Classes" value="true" />
|
||||
<attribute name="Class-Path" value="." />
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
<fileset dir="./build/classes_instr" includes="**/agent/**/*.class" />
|
||||
<fileset dir="./build/classes_instr" includes="**/output/**/*.class" />
|
||||
<fileset dir="./build/classes_instr" includes="**/shared/*.class" />
|
||||
<zipfileset excludes="META-INF/*.MF" src="./lib/asm-debug-all-3.3.jar"/>
|
||||
</jar>
|
||||
|
||||
<junit printsummary="yes" failureproperty="test.failure">
|
||||
<classpath>
|
||||
<pathelement location="./build/test"/>
|
||||
<fileset dir="./lib" includes="*.jar" excludes="intrace*.jar" />
|
||||
<path refid="emma.lib" />
|
||||
</classpath>
|
||||
<jvmarg value="-Demma.coverage.out.file=./reports/emma/metadata/coverage.emma" />
|
||||
<jvmarg value="-Demma.coverage.out.merge=true" />
|
||||
<jvmarg value="-javaagent:./build/tmp/intrace-agent-instr.jar"/>
|
||||
<jvmarg value="-Xbootclasspath/a:./lib/emma.jar" />
|
||||
|
||||
<formatter type="xml"/>
|
||||
<formatter type="plain"/>
|
||||
|
||||
<batchtest fork="yes" todir="./reports/junit/raw">
|
||||
<fileset dir="./testsrc">
|
||||
<include name="**/agent/*Test.java"/>
|
||||
</fileset>
|
||||
</batchtest>
|
||||
</junit>
|
||||
|
||||
<junit printsummary="yes" failureproperty="test.failure">
|
||||
<classpath>
|
||||
<pathelement location="./build/test"/>
|
||||
<pathelement location="./build/classes_instr"/>
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
<path refid="emma.lib" />
|
||||
</classpath>
|
||||
<jvmarg value="-Demma.coverage.out.file=./reports/emma/metadata/coverage.emma" />
|
||||
<jvmarg value="-Demma.coverage.out.merge=true" />
|
||||
|
||||
<formatter type="xml"/>
|
||||
<formatter type="plain"/>
|
||||
|
||||
<batchtest fork="yes" todir="./reports/junit/raw">
|
||||
<fileset dir="./testsrc">
|
||||
<include name="**/gui/*Test.java"/>
|
||||
</fileset>
|
||||
</batchtest>
|
||||
</junit>
|
||||
|
||||
<junitreport todir="./reports/junit">
|
||||
<fileset dir="./reports/junit/raw">
|
||||
<include name="TEST-*.xml"/>
|
||||
</fileset>
|
||||
<report format="frames" todir="./reports/junit/"/>
|
||||
</junitreport>
|
||||
|
||||
<emma enabled="${emma.enabled}" >
|
||||
<report sourcepath="./src" >
|
||||
<fileset dir="./reports/emma/metadata/" >
|
||||
<include name="*.emma" />
|
||||
</fileset>
|
||||
|
||||
<txt outfile="./reports/emma/coverage.txt" />
|
||||
<html outfile="./reports/emma/coverage.html" />
|
||||
</report>
|
||||
</emma>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="findbugs" depends="build">
|
||||
|
||||
<mkdir dir="./reports/findbugs" />
|
||||
|
||||
<!-- Build Findbugs Trace Agent (Don't include ASM classes) -->
|
||||
<jar destfile="./reports/findbugs/intrace-agent-findbugs.jar" compress="false">
|
||||
<fileset dir="./build/classes" includes="**/agent/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/output/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
</jar>
|
||||
|
||||
<findbugs home="${findbugs.home}"
|
||||
output="xml"
|
||||
outputFile="./reports/findbugs/intrace-agent-findbugs-results.xml"
|
||||
excludeFilter="./conf/findbugs_exclude.xml"
|
||||
reportLevel="low"
|
||||
effort="max"
|
||||
errorProperty="findbugs.errors"
|
||||
warningsProperty="findbugs.warns"
|
||||
jvmargs="-Xmx256m">
|
||||
<auxClasspath>
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</auxClasspath>
|
||||
<sourcePath path="./src" />
|
||||
<class location="./reports/findbugs/intrace-agent-findbugs.jar" />
|
||||
</findbugs>
|
||||
|
||||
<fail if="findbugs.errors">FindBugs: Errors found, please run "ant view-findbugs"</fail>
|
||||
<fail if="findbugs.warns">FindBugs: Warnings found, please run "ant view-findbugs"</fail>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="view-findbugs" description="View report generated by findbugs target">
|
||||
|
||||
<java jar="./lib/findbugs/findbugs.jar" fork="true">
|
||||
<arg value="./reports/findbugs/intrace-agent-findbugs-results.xml"/>
|
||||
</java>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="validate" description="Build jars and run all automated tests" depends="jar, test, findbugs" >
|
||||
<fail message="Tests failed" if="test.failure" />
|
||||
</target>
|
||||
|
||||
<target name="release1" description="Validate InTrace and copy files ready for Eclipse build" depends="validate,update_eclipse_jars">
|
||||
<copy todir="../binaries/jars/latest_development" overwrite="true">
|
||||
<fileset file="./build/jars/intrace-agent.jar" />
|
||||
<fileset file="./build/jars/intrace-ui.jar" />
|
||||
</copy>
|
||||
<delete>
|
||||
<fileset dir="../intrace.appengine/war/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.appengine/war/plugins/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/plugins/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/" includes="artifacts.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/" includes="content.jar"/>
|
||||
</delete>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
<echo>Now run Build All in Eclipse for the intrace.ecl.site project</echo>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
</target>
|
||||
|
||||
<target name="release1_dev" depends="jar,update_eclipse_jars">
|
||||
<copy todir="../binaries/jars/latest_development" overwrite="true">
|
||||
<fileset file="./build/jars/intrace-agent.jar" />
|
||||
<fileset file="./build/jars/intrace-ui.jar" />
|
||||
</copy>
|
||||
<delete>
|
||||
<fileset dir="../intrace.appengine/war/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.appengine/war/plugins/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/plugins/" includes="*.jar"/>
|
||||
</delete>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
<echo>Now run Build All in Eclipse for the intrace.ecl.site project</echo>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
</target>
|
||||
|
||||
<target name="release2" description="Copy around built Eclipse files">
|
||||
<copy todir="../intrace.appengine/war" overwrite="true">
|
||||
<fileset dir="../intrace.ecl.site/" excludes="artifacts.jar,content.jar,.project"/>
|
||||
</copy>
|
||||
|
||||
<delete file="../binaries/jars/latest_development/intrace.ecl.site.zip" />
|
||||
<zip destfile="../binaries/jars/latest_development/intrace.ecl.site.zip"
|
||||
basedir="../intrace.ecl.site/"
|
||||
excludes=".project"
|
||||
/>
|
||||
</target>
|
||||
|
||||
<target name="update_eclipse_jars" depends="jar" >
|
||||
<copy todir="../intrace.ecl.plugin/lib/">
|
||||
<fileset file="./build/jars/intrace-agent.jar" />
|
||||
<fileset file="./build/jars/intrace-ui-helper.jar" />
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="example_build">
|
||||
<mkdir dir="./build/test" />
|
||||
<javac destdir="./build/test" debug="true" source="1.6" target="1.6"
|
||||
includeantruntime="false">
|
||||
<src path="./testsrc"/>
|
||||
<classpath>
|
||||
<pathelement path="./build/classes" />
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="example" depends="jar,example_build">
|
||||
<java classname="example.TraceExample" fork="true">
|
||||
<arg value="5000" />
|
||||
<classpath>
|
||||
<pathelement path="./build/test" />
|
||||
</classpath>
|
||||
<jvmarg value="-javaagent:build/jars/intrace-agent.jar=[instru-true" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="waitexample" depends="jar,example_build">
|
||||
<java classname="example.TraceExample" fork="true">
|
||||
<arg value="5000" />
|
||||
<classpath>
|
||||
<pathelement path="./build/test" />
|
||||
</classpath>
|
||||
<jvmarg value="-javaagent:build/jars/intrace-agent.jar=[instru-true[startwait" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="fastexample" depends="jar,example_build">
|
||||
<java classname="example.TraceExample" fork="true">
|
||||
<arg value="0" />
|
||||
<classpath>
|
||||
<pathelement path="./build/test" />
|
||||
</classpath>
|
||||
<jvmarg value="-javaagent:build/jars/intrace-agent.jar=[instru-true" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
</project>
|
||||
<project name="InTrace" basedir="." default="help">
|
||||
|
||||
<!-- directory that contains emma.jar and emma_ant.jar: -->
|
||||
<path id="emma.lib" >
|
||||
<pathelement location="./lib/emma.jar" />
|
||||
<pathelement location="./lib/emma_ant.jar" />
|
||||
</path>
|
||||
|
||||
<path id="findbugs.lib" >
|
||||
<fileset dir="./lib/findbugs" includes="*.jar" />
|
||||
</path>
|
||||
|
||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="./lib/ant-contrib-1.0b3.jar" />
|
||||
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />
|
||||
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask">
|
||||
<classpath refid="findbugs.lib"/>
|
||||
</taskdef>
|
||||
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
|
||||
classpath="./lib/jarjar-1.0.jar"/>
|
||||
<taskdef name="swtjar" classname="org.swtjar.ant.SWTJarTask"
|
||||
classpath="./lib/swtjar.jar"/>
|
||||
<taskdef name="jarbundler" classname="net.sourceforge.jarbundler.JarBundler"
|
||||
classpath="./lib/jarbundler-2.2.0.jar"/>
|
||||
|
||||
<property name="findbugs.home" value="./lib/findbugs" />
|
||||
|
||||
|
||||
<target name="help">
|
||||
<java classname="org.apache.tools.ant.Main">
|
||||
<arg value="-projecthelp" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="clean" description="Comile classes">
|
||||
<delete dir="./build" />
|
||||
<delete dir="./reports" />
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="build" description="Comile classes">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/classes" />
|
||||
|
||||
<javac destdir="./build/classes" debug="true" source="1.6" target="1.6"
|
||||
includeantruntime="false">
|
||||
<src path="./src"/>
|
||||
<classpath>
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="getgitdetails" >
|
||||
<exec executable="git" outputproperty="git.tagstring">
|
||||
<arg value="describe"/>
|
||||
</exec>
|
||||
<exec executable="git" outputproperty="git.revision">
|
||||
<arg value="rev-parse"/>
|
||||
<arg value="HEAD"/>
|
||||
</exec>
|
||||
<if>
|
||||
<contains string="${git.tagstring}" substring="cannot"/>
|
||||
<then>
|
||||
<property name="git.tag" value="none"/>
|
||||
</then>
|
||||
<else>
|
||||
<property name="git.tag" value="${git.tagstring}"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<target name="jar" description="Create Jars" depends="build,getgitdetails" >
|
||||
|
||||
<mkdir dir="./build/tmp/" />
|
||||
<mkdir dir="./build/jars/" />
|
||||
|
||||
<!-- Agent -->
|
||||
<jarjar jarfile="./build/jars/intrace-agent.jar">
|
||||
<manifest>
|
||||
<attribute name="Premain-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Agent-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Can-Retransform-Classes" value="true" />
|
||||
<attribute name="Class-Path" value="." />
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
<fileset dir="./build/classes" includes="**/agent/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/output/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<zipfileset excludes="META-INF/*.MF" src="./lib/asm-debug-all-3.3.jar"/>
|
||||
<rule pattern="org.objectweb.asm.**" result="org.intrace.internal.objectweb.asm.@1"/>
|
||||
</jarjar>
|
||||
<copy file="./build/jars/intrace-agent.jar" todir="./lib/" />
|
||||
|
||||
<!-- UI (Cross platform SWT Jar (Windows/Linux)) -->
|
||||
<swtjar jarfile="./build/jars/intrace-ui.jar"
|
||||
targetmainclass="org.intrace.client.gui.InTraceStandaloneUI"
|
||||
swtversion="4.3">
|
||||
<manifest>
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
|
||||
<!-- InTrace classes -->
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/client/gui/**/*.class" />
|
||||
|
||||
<!-- InTrace icons -->
|
||||
<fileset dir="./src" includes="**/icons/**/*.*" />
|
||||
|
||||
<!-- Required Jars -->
|
||||
<zipfileset excludes="META-INF/*.MF" src="lib/miglayout-core-4.2.jar"/>
|
||||
<zipfileset excludes="META-INF/*.MF" src="lib/miglayout-swt-4.2.jar"/>
|
||||
|
||||
<!-- SWT Jars (Windows/Linux) -->
|
||||
<fileset dir="./lib" includes="swt-win*-4.3.jar" />
|
||||
<fileset dir="./lib" includes="swt-lin*-4.3.jar" />
|
||||
</swtjar>
|
||||
|
||||
<!-- UI (OSX SWT Jar) -->
|
||||
<swtjar jarfile="./build/tmp/intrace-ui-osx.jar"
|
||||
targetmainclass="org.intrace.client.gui.InTraceStandaloneUI"
|
||||
swtversion="4.3">
|
||||
<manifest>
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
|
||||
<!-- InTrace classes -->
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/client/gui/**/*.class" />
|
||||
|
||||
<!-- InTrace icons -->
|
||||
<fileset dir="./src" includes="**/icons/**/*.*" />
|
||||
|
||||
<!-- Required Jars -->
|
||||
<zipfileset excludes="META-INF/*.MF" src="lib/miglayout-core-4.2.jar"/>
|
||||
<zipfileset excludes="META-INF/*.MF" src="lib/miglayout-swt-4.2.jar"/>
|
||||
|
||||
<!-- SWT Jars (OSX) -->
|
||||
<fileset dir="./lib" includes="swt-osx*-4.3.jar" />
|
||||
</swtjar>
|
||||
|
||||
<!-- UI (OSX application) -->
|
||||
<mkdir dir="./build/tmp/InTraceApp/" />
|
||||
<jarbundler dir="./build/tmp/InTraceApp/"
|
||||
name="InTrace"
|
||||
mainclass="org.swtjar.SWTLoader"
|
||||
jar="./build/tmp/intrace-ui-osx.jar"
|
||||
startOnMainThread="true"
|
||||
icon="./src/org/intrace/icons/intrace128.icns"
|
||||
stubfile="./lib/JavaApplicationStub" />
|
||||
<delete file="./build/tmp/InTraceApp/InTrace.app/Contents/MacOS/JavaApplicationStub" />
|
||||
<mkdir dir="./build/tmp/InTraceAppLauncher/InTrace.app/Contents/MacOS/" />
|
||||
<copy file="./lib/JavaApplicationStub"
|
||||
todir="./build/tmp/InTraceAppLauncher/InTrace.app/Contents/MacOS/" />
|
||||
<tar destfile="./build/jars/InTrace.app.tar">
|
||||
<tarfileset dir="./build/tmp/InTraceAppLauncher/" filemode="777" />
|
||||
<tarfileset dir="./build/tmp/InTraceApp/" />
|
||||
</tar>
|
||||
|
||||
<!-- InTrace UI Library -->
|
||||
<jar jarfile="./build/jars/intrace-ui-helper.jar">
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/client/gui/helper/*.class" />
|
||||
<fileset dir="./src" includes="**/icons/**/*.*" />
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="test" description="Run Tests" depends="build" >
|
||||
<property name="emma.enabled" value="true" />
|
||||
|
||||
<mkdir dir="./reports" />
|
||||
<mkdir dir="./reports/junit" />
|
||||
<mkdir dir="./reports/junit/raw" />
|
||||
<mkdir dir="./reports/emma" />
|
||||
<mkdir dir="./reports/emma/metadata" />
|
||||
|
||||
<mkdir dir="./build/test" />
|
||||
<mkdir dir="./build/classes_instr" />
|
||||
|
||||
<javac destdir="./build/test" debug="true" source="1.6" target="1.6"
|
||||
includeantruntime="false">
|
||||
<src path="./testsrc"/>
|
||||
<classpath>
|
||||
<pathelement path="./build/classes" />
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
|
||||
<copy todir="./build/classes_instr">
|
||||
<fileset dir="./build/classes"/>
|
||||
</copy>
|
||||
|
||||
<emma enabled="${emma.enabled}" >
|
||||
<instr instrpath="./build/classes_instr"
|
||||
metadatafile="./reports/emma/metadata/metadata.emma"
|
||||
merge="true"
|
||||
mode="overwrite"
|
||||
/>
|
||||
</emma>
|
||||
|
||||
<!-- Build agent with coverage instrumentation enabled -->
|
||||
<jar jarfile="./build/tmp/intrace-agent-instr.jar">
|
||||
<manifest>
|
||||
<attribute name="Premain-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Agent-Class" value="org.intrace.agent.Agent" />
|
||||
<attribute name="Can-Redefine-Classes" value="true" />
|
||||
<attribute name="Class-Path" value="." />
|
||||
<attribute name="Git-Revision" value="${git.revision}" />
|
||||
<attribute name="Implementation-Version" value="${git.tag}" />
|
||||
</manifest>
|
||||
<fileset dir="./build/classes_instr" includes="**/agent/**/*.class" />
|
||||
<fileset dir="./build/classes_instr" includes="**/output/**/*.class" />
|
||||
<fileset dir="./build/classes_instr" includes="**/shared/*.class" />
|
||||
<zipfileset excludes="META-INF/*.MF" src="./lib/asm-debug-all-3.3.jar"/>
|
||||
</jar>
|
||||
|
||||
<junit printsummary="yes" failureproperty="test.failure">
|
||||
<classpath>
|
||||
<pathelement location="./build/test"/>
|
||||
<fileset dir="./lib" includes="*.jar" excludes="intrace*.jar" />
|
||||
<path refid="emma.lib" />
|
||||
</classpath>
|
||||
<jvmarg value="-Demma.coverage.out.file=./reports/emma/metadata/coverage.emma" />
|
||||
<jvmarg value="-Demma.coverage.out.merge=true" />
|
||||
<jvmarg value="-javaagent:./build/tmp/intrace-agent-instr.jar"/>
|
||||
<jvmarg value="-Xbootclasspath/a:./lib/emma.jar" />
|
||||
|
||||
<formatter type="xml"/>
|
||||
<formatter type="plain"/>
|
||||
|
||||
<batchtest fork="yes" todir="./reports/junit/raw">
|
||||
<fileset dir="./testsrc">
|
||||
<include name="**/agent/*Test.java"/>
|
||||
</fileset>
|
||||
</batchtest>
|
||||
</junit>
|
||||
|
||||
<junit printsummary="yes" failureproperty="test.failure">
|
||||
<classpath>
|
||||
<pathelement location="./build/test"/>
|
||||
<pathelement location="./build/classes_instr"/>
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
<path refid="emma.lib" />
|
||||
</classpath>
|
||||
<jvmarg value="-Demma.coverage.out.file=./reports/emma/metadata/coverage.emma" />
|
||||
<jvmarg value="-Demma.coverage.out.merge=true" />
|
||||
|
||||
<formatter type="xml"/>
|
||||
<formatter type="plain"/>
|
||||
|
||||
<batchtest fork="yes" todir="./reports/junit/raw">
|
||||
<fileset dir="./testsrc">
|
||||
<include name="**/gui/*Test.java"/>
|
||||
</fileset>
|
||||
</batchtest>
|
||||
</junit>
|
||||
|
||||
<junitreport todir="./reports/junit">
|
||||
<fileset dir="./reports/junit/raw">
|
||||
<include name="TEST-*.xml"/>
|
||||
</fileset>
|
||||
<report format="frames" todir="./reports/junit/"/>
|
||||
</junitreport>
|
||||
|
||||
<emma enabled="${emma.enabled}" >
|
||||
<report sourcepath="./src" >
|
||||
<fileset dir="./reports/emma/metadata/" >
|
||||
<include name="*.emma" />
|
||||
</fileset>
|
||||
|
||||
<txt outfile="./reports/emma/coverage.txt" />
|
||||
<html outfile="./reports/emma/coverage.html" />
|
||||
</report>
|
||||
</emma>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="findbugs" depends="build">
|
||||
|
||||
<mkdir dir="./reports/findbugs" />
|
||||
|
||||
<!-- Build Findbugs Trace Agent (Don't include ASM classes) -->
|
||||
<jar destfile="./reports/findbugs/intrace-agent-findbugs.jar" compress="false">
|
||||
<fileset dir="./build/classes" includes="**/agent/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/output/**/*.class" />
|
||||
<fileset dir="./build/classes" includes="**/shared/*.class" />
|
||||
</jar>
|
||||
|
||||
<findbugs home="${findbugs.home}"
|
||||
output="xml"
|
||||
outputFile="./reports/findbugs/intrace-agent-findbugs-results.xml"
|
||||
excludeFilter="./conf/findbugs_exclude.xml"
|
||||
reportLevel="low"
|
||||
effort="max"
|
||||
errorProperty="findbugs.errors"
|
||||
warningsProperty="findbugs.warns"
|
||||
jvmargs="-Xmx256m">
|
||||
<auxClasspath>
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</auxClasspath>
|
||||
<sourcePath path="./src" />
|
||||
<class location="./reports/findbugs/intrace-agent-findbugs.jar" />
|
||||
</findbugs>
|
||||
|
||||
<fail if="findbugs.errors">FindBugs: Errors found, please run "ant view-findbugs"</fail>
|
||||
<fail if="findbugs.warns">FindBugs: Warnings found, please run "ant view-findbugs"</fail>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="view-findbugs" description="View report generated by findbugs target">
|
||||
|
||||
<java jar="./lib/findbugs/findbugs.jar" fork="true">
|
||||
<arg value="./reports/findbugs/intrace-agent-findbugs-results.xml"/>
|
||||
</java>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="validate" description="Build jars and run all automated tests" depends="jar, test, findbugs" >
|
||||
<fail message="Tests failed" if="test.failure" />
|
||||
</target>
|
||||
|
||||
<target name="release1" description="Validate InTrace and copy files ready for Eclipse build" depends="validate,update_eclipse_jars">
|
||||
<copy todir="../binaries/jars/latest_development" overwrite="true">
|
||||
<fileset file="./build/jars/intrace-agent.jar" />
|
||||
<fileset file="./build/jars/intrace-ui.jar" />
|
||||
</copy>
|
||||
<delete>
|
||||
<fileset dir="../intrace.appengine/war/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.appengine/war/plugins/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/plugins/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/" includes="artifacts.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/" includes="content.jar"/>
|
||||
</delete>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
<echo>Now run Build All in Eclipse for the intrace.ecl.site project</echo>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
</target>
|
||||
|
||||
<target name="release1_dev" depends="jar,update_eclipse_jars">
|
||||
<copy todir="../binaries/jars/latest_development" overwrite="true">
|
||||
<fileset file="./build/jars/intrace-agent.jar" />
|
||||
<fileset file="./build/jars/intrace-ui.jar" />
|
||||
</copy>
|
||||
<delete>
|
||||
<fileset dir="../intrace.appengine/war/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.appengine/war/plugins/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/features/" includes="*.jar"/>
|
||||
<fileset dir="../intrace.ecl.site/plugins/" includes="*.jar"/>
|
||||
</delete>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
<echo>Now run Build All in Eclipse for the intrace.ecl.site project</echo>
|
||||
<echo>****</echo>
|
||||
<echo>****</echo>
|
||||
</target>
|
||||
|
||||
<target name="release2" description="Copy around built Eclipse files">
|
||||
<copy todir="../intrace.appengine/war" overwrite="true">
|
||||
<fileset dir="../intrace.ecl.site/" excludes="artifacts.jar,content.jar,.project"/>
|
||||
</copy>
|
||||
|
||||
<delete file="../binaries/jars/latest_development/intrace.ecl.site.zip" />
|
||||
<zip destfile="../binaries/jars/latest_development/intrace.ecl.site.zip"
|
||||
basedir="../intrace.ecl.site/"
|
||||
excludes=".project"
|
||||
/>
|
||||
</target>
|
||||
|
||||
<target name="update_eclipse_jars" depends="jar" >
|
||||
<copy todir="../intrace.ecl.plugin/lib/">
|
||||
<fileset file="./build/jars/intrace-agent.jar" />
|
||||
<fileset file="./build/jars/intrace-ui-helper.jar" />
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="example_build">
|
||||
<mkdir dir="./build/test" />
|
||||
<javac destdir="./build/test" debug="true" source="1.6" target="1.6"
|
||||
includeantruntime="false">
|
||||
<src path="./testsrc"/>
|
||||
<classpath>
|
||||
<pathelement path="./build/classes" />
|
||||
<fileset dir="./lib" includes="*.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="example" depends="jar,example_build">
|
||||
<java classname="example.TraceExample" fork="true">
|
||||
<arg value="5000" />
|
||||
<classpath>
|
||||
<pathelement path="./build/test" />
|
||||
</classpath>
|
||||
<jvmarg value="-javaagent:build/jars/intrace-agent.jar=[instru-true" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="waitexample" depends="jar,example_build">
|
||||
<java classname="example.TraceExample" fork="true">
|
||||
<arg value="5000" />
|
||||
<classpath>
|
||||
<pathelement path="./build/test" />
|
||||
</classpath>
|
||||
<jvmarg value="-javaagent:build/jars/intrace-agent.jar=[instru-true[startwait" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="fastexample" depends="jar,example_build">
|
||||
<java classname="example.TraceExample" fork="true">
|
||||
<arg value="0" />
|
||||
<classpath>
|
||||
<pathelement path="./build/test" />
|
||||
</classpath>
|
||||
<jvmarg value="-javaagent:build/jars/intrace-agent.jar=[instru-true" />
|
||||
</java>
|
||||
</target>
|
||||
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -39,5 +39,10 @@
|
|||
<Method name="generateCallToAgentHelper" />
|
||||
<Bug code="SF" />
|
||||
</Match>
|
||||
` `
|
||||
// Ignore all problems in Base64 which is an external class
|
||||
<Match>
|
||||
<Class name="org.intrace.shared.Base64" />
|
||||
</Match>
|
||||
|
||||
</FindBugsFilter>
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -27,7 +27,6 @@ import org.intrace.agent.server.AgentServer;
|
|||
import org.intrace.output.AgentHelper;
|
||||
import org.intrace.output.InstruRunnable;
|
||||
import org.intrace.output.trace.TraceHandler;
|
||||
import org.intrace.output.trace.TraceSettings;
|
||||
import org.intrace.shared.AgentConfigConstants;
|
||||
import org.objectweb.asm.ClassReader;
|
||||
|
||||
|
|
|
|||
|
|
@ -793,7 +793,7 @@ public class InTraceUI implements ISocketCallback, IControlConnectionListener
|
|||
|
||||
private TraceTab(Composite parent)
|
||||
{
|
||||
MigLayout windowLayout = new MigLayout("fill", "[80][80][250][100][grow]");
|
||||
MigLayout windowLayout = new MigLayout("fill", "[80][80][250][140][grow]");
|
||||
|
||||
composite = new Composite(parent, SWT.NONE);
|
||||
composite.setLayout(windowLayout);
|
||||
|
|
@ -818,7 +818,6 @@ public class InTraceUI implements ISocketCallback, IControlConnectionListener
|
|||
exitStackTrace.setText(ClientStrings.ENABLE_EXIT_STACK_TRACE);
|
||||
exitStackTrace.setAlignment(SWT.CENTER);
|
||||
|
||||
|
||||
entryExitTrace
|
||||
.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,10 +4,8 @@ import java.io.PrintWriter;
|
|||
import java.io.StringWriter;
|
||||
import java.lang.reflect.Array;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.intrace.output.AgentHelper;
|
||||
|
|
@ -29,15 +27,16 @@ public class TraceHandler implements IInstrumentationHandler
|
|||
{
|
||||
// Private constructor
|
||||
}
|
||||
|
||||
|
||||
private boolean entryExitTrace = true;
|
||||
private boolean branchTrace = false;
|
||||
private boolean argTrace = true;
|
||||
private boolean truncateArrays = true;
|
||||
private boolean exitStackTrace = false;
|
||||
|
||||
|
||||
private static final TraceSettings traceSettings = new TraceSettings("");
|
||||
|
||||
@Override
|
||||
public String getResponse(String args)
|
||||
{
|
||||
// TraceSettings oldSettings = new TraceSettings(traceSettings);
|
||||
|
|
@ -60,10 +59,11 @@ public class TraceHandler implements IInstrumentationHandler
|
|||
argTrace = traceSettings.isArgTraceEnabled();
|
||||
truncateArrays = traceSettings.isTruncateArraysEnabled();
|
||||
exitStackTrace = traceSettings.isExitStackTraceEnabled();
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getSettingsMap()
|
||||
{
|
||||
return traceSettings.getSettingsMap();
|
||||
|
|
@ -78,7 +78,7 @@ public class TraceHandler implements IInstrumentationHandler
|
|||
}
|
||||
return lRet;
|
||||
}
|
||||
|
||||
|
||||
private String arrayStr(String xiArrStr)
|
||||
{
|
||||
String ret = xiArrStr;
|
||||
|
|
@ -89,7 +89,7 @@ public class TraceHandler implements IInstrumentationHandler
|
|||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void val(String desc, String className, String methodName, byte byteArg)
|
||||
{
|
||||
|
|
@ -100,6 +100,7 @@ public class TraceHandler implements IInstrumentationHandler
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void val(String desc, String className, String methodName,
|
||||
byte[] byteArrayArg)
|
||||
{
|
||||
|
|
@ -121,6 +122,7 @@ public class TraceHandler implements IInstrumentationHandler
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void val(String desc, String className, String methodName,
|
||||
short[] shortArrayArg)
|
||||
{
|
||||
|
|
@ -270,7 +272,7 @@ private static final String STACK_TRACE_DELIM = "~";
|
|||
* Just like Arrays.toString(Object), place a comma between each element of the stack trace
|
||||
*/
|
||||
private static final Object STACK_ELE_DELIM = ",";
|
||||
|
||||
|
||||
private String replaceChars(String xiArg)
|
||||
{
|
||||
String ret = xiArg;
|
||||
|
|
@ -278,21 +280,21 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
for (int ii = 0; ii < xiArg.length(); ii++)
|
||||
{
|
||||
char c = xiArg.charAt(ii);
|
||||
|
||||
|
||||
// Detect special char
|
||||
if ((0x00 <= c) &&
|
||||
if ((0x00 <= c) &&
|
||||
(c <= 0x20) &&
|
||||
(c != '\r') &&
|
||||
(c != '\n'))
|
||||
{
|
||||
// Replace char
|
||||
c = ESCAPE_REPLACEMENT;
|
||||
|
||||
|
||||
// Setup stringbuilder
|
||||
if (str == null)
|
||||
{
|
||||
str = new StringBuilder();
|
||||
|
||||
|
||||
// Append any previous non special chars
|
||||
if (ii > 0)
|
||||
{
|
||||
|
|
@ -300,23 +302,23 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If we are storing chars we better write
|
||||
|
||||
// If we are storing chars we better write
|
||||
// this one now
|
||||
if (str != null)
|
||||
{
|
||||
str.append(c);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (str != null)
|
||||
{
|
||||
ret = str.toString();
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void val(String desc, String className, String methodName,
|
||||
Object objArg)
|
||||
|
|
@ -337,12 +339,13 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
else
|
||||
{
|
||||
objStr = (objArg != null ? objArg.toString() : "null");
|
||||
}
|
||||
}
|
||||
writeTraceOutput(className + ":" + methodName + ": " + desc + ": "
|
||||
+ objStr);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void val(String desc, String className, String methodName,
|
||||
Object[] objArrayArg)
|
||||
{
|
||||
|
|
@ -361,11 +364,12 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
{
|
||||
if (branchTrace)
|
||||
{
|
||||
writeTraceOutput(className + ":" + methodName + ": /" +
|
||||
writeTraceOutput(className + ":" + methodName + ": /" +
|
||||
(lineNo >= 0 ? ":" + lineNo : ""));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void val(String desc, String className, String methodName, int lineNo,
|
||||
Throwable throwable)
|
||||
{
|
||||
|
|
@ -398,7 +402,7 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
{
|
||||
if (entryExitTrace)
|
||||
{
|
||||
writeTraceOutput(className + ":" + methodName + ": {" +
|
||||
writeTraceOutput(className + ":" + methodName + ": {" +
|
||||
(lineNo >= 0 ? ":" + lineNo : ""));
|
||||
}
|
||||
}
|
||||
|
|
@ -408,17 +412,17 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
* @return
|
||||
*/
|
||||
public String getStackTrace() {
|
||||
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int counter = 0;
|
||||
for(StackTraceElement ste : Thread.currentThread().getStackTrace() ) {
|
||||
if ( ste.getClassName().indexOf(INTRACE_PACKAGE) <0
|
||||
if ( ste.getClassName().indexOf(INTRACE_PACKAGE) <0
|
||||
&& (ste.getClassName().indexOf(THREAD) < 0) && ste.getMethodName().indexOf(GET_STACK_TRACE)<0) {
|
||||
if (counter++>0) sb.append(STACK_ELE_DELIM); //Just like Arrays.toString(), place a comma between each stack trace ele.
|
||||
if (counter++>0) sb.append(STACK_ELE_DELIM); //Just like Arrays.toString(), place a comma between each stack trace ele.
|
||||
sb.append(ste.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
@Override
|
||||
|
|
@ -426,13 +430,13 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
{
|
||||
if (entryExitTrace)
|
||||
{
|
||||
|
||||
|
||||
if (exitStackTrace) {
|
||||
writeTraceOutput(className + ":" + methodName + ": }" +
|
||||
(lineNo >= 0 ? ":" + lineNo : "") +
|
||||
writeTraceOutput(className + ":" + methodName + ": }" +
|
||||
(lineNo >= 0 ? ":" + lineNo : "") +
|
||||
STACK_TRACE_DELIM + getStackTrace() );
|
||||
} else {
|
||||
writeTraceOutput(className + ":" + methodName + ": }" +
|
||||
writeTraceOutput(className + ":" + methodName + ": }" +
|
||||
(lineNo >= 0 ? ":" + lineNo : "") );
|
||||
}
|
||||
}
|
||||
|
|
@ -445,7 +449,7 @@ private static final Object STACK_ELE_DELIM = ",";
|
|||
* <li>FileOut
|
||||
* <li>NetworkOut
|
||||
* </ul>
|
||||
*
|
||||
*
|
||||
* @param xiOutput
|
||||
*/
|
||||
public void writeTraceOutput(String xiOutput)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,18 +1,11 @@
|
|||
package org.intracetest.agent;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.intrace.agent.AgentSettings;
|
||||
import org.intrace.output.trace.TraceHandler;
|
||||
import org.intrace.output.trace.TraceSettings;
|
||||
import org.intrace.shared.AgentConfigConstants;
|
||||
import org.intrace.shared.TraceConfigConstants;
|
||||
|
||||
public class StackTraceTest extends TestCase
|
||||
{
|
||||
private static final String MY_PACKAGE_AND_CLASS = "org.intracetest.agent.StackTraceTest";
|
||||
private String m_stackTrace;
|
||||
/** Here is the raw stack trace that we want to validate:
|
||||
* <PRE>
|
||||
|
|
@ -23,7 +16,7 @@ org.intracetest.agent.StackTraceTest.c(StackTraceTest.java:57),org.intracetest.a
|
|||
* <li>java.lang.Thread.getStackTrace</li>
|
||||
* <li>all org.intrace. activity</li>
|
||||
* </ul>
|
||||
*
|
||||
*
|
||||
*/
|
||||
public void testStackTrace()
|
||||
{
|
||||
|
|
@ -41,14 +34,14 @@ public void testStackTrace()
|
|||
}
|
||||
private void validateStackTraceElement(String expectedPackageAndClassAndMethod, String actual) {
|
||||
String[] partsOfStackTraceElement = actual.split("[\\(:\\)]");
|
||||
assertEquals("The package and class and method name were not found in the right place",
|
||||
expectedPackageAndClassAndMethod,
|
||||
assertEquals("The package and class and method name were not found in the right place",
|
||||
expectedPackageAndClassAndMethod,
|
||||
partsOfStackTraceElement[0]);
|
||||
|
||||
assertEquals("source file not found in the right place",
|
||||
"StackTraceTest.java",
|
||||
|
||||
assertEquals("source file not found in the right place",
|
||||
"StackTraceTest.java",
|
||||
partsOfStackTraceElement[1]);
|
||||
|
||||
|
||||
}
|
||||
private void a() {
|
||||
b();
|
||||
|
|
|
|||
|
|
@ -4,9 +4,7 @@ import java.util.Map;
|
|||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.intrace.agent.AgentSettings;
|
||||
import org.intrace.output.trace.TraceSettings;
|
||||
import org.intrace.shared.AgentConfigConstants;
|
||||
import org.intrace.shared.TraceConfigConstants;
|
||||
|
||||
public class TraceSettingsTest extends TestCase
|
||||
|
|
@ -25,7 +23,7 @@ public class TraceSettingsTest extends TestCase
|
|||
+ TraceConfigConstants.EXIT_STACK_TRACE
|
||||
+ "true"
|
||||
);
|
||||
|
||||
|
||||
assertTrue(ts.isArgTraceEnabled());
|
||||
assertTrue(ts.isEntryExitTraceEnabled());
|
||||
assertTrue(ts.isBranchTraceEnabled());
|
||||
|
|
|
|||
Loading…
Reference in New Issue