diff --git a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/handlers/InstrumentationHandler.java b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/handlers/InstrumentationHandler.java index f1a1b6f..a79d04c 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/handlers/InstrumentationHandler.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/handlers/InstrumentationHandler.java @@ -88,10 +88,11 @@ // �C���X�g�D�������e�[�V�������s�� final String CLASS_PATH = classPath; - Tracer.initialize(new OutputStatementsGenerator(getGenerator()), cp); // �����ŏo�̓t�H�[�}�b�g���w�肷�� + final ClassPool CP = cp; Job job = new Job("Instrumentation") { @Override - protected IStatus run(IProgressMonitor monitor) { + protected IStatus run(IProgressMonitor monitor) { + Tracer.initialize(new OutputStatementsGenerator(getGenerator()), CP, monitor); // �����ŏo�̓t�H�[�}�b�g���w�肷�� monitor.beginTask("Running instrumentation...", IProgressMonitor.UNKNOWN); Tracer.packageInstrumentation("", CLASS_PATH + "/"); monitor.done(); diff --git a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/Tracer.java b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/Tracer.java index dae607b..2e5d979 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/Tracer.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/Tracer.java @@ -7,6 +7,8 @@ import java.net.URLDecoder; import java.util.List; +import org.eclipse.core.runtime.IProgressMonitor; + import javassist.CannotCompileException; import javassist.ClassPool; import javassist.CodeConverter; @@ -44,6 +46,7 @@ private static OutputStatementsGenerator outputStatementsGenerator = null; private static ClassPool cp = null; private static CodeConverter conv = null; + private static IProgressMonitor monitor = null; public static void main(String[] args) { initialize(new OutputStatementsGenerator(new JSONTraceGenerator())); // �����ŏo�̓t�H�[�}�b�g���w�肷�� @@ -73,6 +76,10 @@ * @param cp Javassist�̃N���X�v�[�� */ public static void initialize(OutputStatementsGenerator outputStatementsGenerator, ClassPool cp) { + initialize(outputStatementsGenerator, cp, null); + } + + public static void initialize(OutputStatementsGenerator outputStatementsGenerator, ClassPool cp, IProgressMonitor monitor) { Tracer.cp = cp; Tracer.outputStatementsGenerator = outputStatementsGenerator; Tracer.conv = new CodeConverter(); @@ -84,6 +91,7 @@ e1.printStackTrace(); } } + Tracer.monitor = monitor; } /** @@ -102,6 +110,7 @@ } else if (file.isDirectory()) { packageInstrumentation(packageName + file.getName() + "/", classPath); } + if (monitor != null && monitor.isCanceled()) return; } }