diff --git a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/TracerLaunchConfigurationDelegate.java b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/TracerLaunchConfigurationDelegate.java index abed747..0a91b41 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/TracerLaunchConfigurationDelegate.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/TracerLaunchConfigurationDelegate.java @@ -151,7 +151,7 @@ private String getPath(String location) { System.out.println(location); if (location.indexOf('/') >= 0) { - return location.substring(location.indexOf('/')).split("!/")[0]; + return location.substring(location.indexOf('/') + 1).split("!/")[0]; } else { return location.split("!/")[0]; } 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 e05c4db..3e30919 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/handlers/InstrumentationHandler.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/handlers/InstrumentationHandler.java @@ -47,7 +47,6 @@ try { // Javassist �� ClassPool �� Javassist ���C�u�������A����т��̃v���O�C�����̃N���X�����‚�����悤�ɂ��� ClassPool cp = new ClassPool(true); -// String bundlePath = Activator.getDefault().getBundle().getLocation(); try { String bundlePath = FileLocator.resolve(Activator.getDefault().getBundle().getEntry("/")).getPath(); String tracerClassPath = FileLocator.resolve(this.getClass().getClassLoader().getResource(Tracer.TRACER_CLASS_PATH)).getPath(); @@ -82,8 +81,6 @@ } // �C���X�g�D�������e�[�V�������s�� -// Tracer.initialize(new OutputStatementsGenerator(new JSONTraceGenerator()), cp); // �����ŏo�̓t�H�[�}�b�g���w�肷�� -// Tracer.initialize(new OutputStatementsGenerator(new OnlineTraceGenerator()), cp); // �����ŏo�̓t�H�[�}�b�g���w�肷�� Tracer.initialize(new OutputStatementsGenerator(getGenerator()), cp); // �����ŏo�̓t�H�[�}�b�g���w�肷�� Tracer.packageInstrumentation("", classPath + "/"); } catch (JavaModelException | NotFoundException e) { @@ -98,7 +95,7 @@ private String getPath(String location) { if (location.indexOf('/') >= 0) { - return location.substring(location.indexOf('/')).split("!/")[0]; + return location.substring(location.indexOf('/') + 1).split("!/")[0]; } else { return location.split("!/")[0]; } diff --git a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/ITraceGenerator.java b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/ITraceGenerator.java index 27c8c28..6e557e4 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/ITraceGenerator.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/ITraceGenerator.java @@ -12,7 +12,6 @@ * */ public interface ITraceGenerator { - public abstract String generateReplaceStatementsForFieldSet( String fieldName, String containerClass, String containerObject, String valueClass, String valueObject, @@ -51,4 +50,6 @@ public abstract String generateInsertBeforeStatementsForClassDefinition( String className, String classPath, String loaderPath); + public abstract String getArrayAdvisorClassName(); + } diff --git a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/JSONTraceGenerator.java b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/JSONTraceGenerator.java index 473bd23..0aae591 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/JSONTraceGenerator.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/JSONTraceGenerator.java @@ -234,4 +234,9 @@ mapJSON += "}"; return mapJSON; } + + @Override + public String getArrayAdvisorClassName() { + return "JSONArrayAdvisor"; + } } diff --git a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/OnlineTraceGenerator.java b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/OnlineTraceGenerator.java index b98c547..510162c 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/OnlineTraceGenerator.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/OnlineTraceGenerator.java @@ -167,4 +167,9 @@ OnlineTraceOutput.onlineTraceArrayGet(arrayType, arrayId, index, valueType, valueId, String.valueOf(threadId), timeStamp); } + + @Override + public String getArrayAdvisorClassName() { + return "OnlineArrayAdvisor"; + } } diff --git a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/PlainTextTraceGenerator.java b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/PlainTextTraceGenerator.java index 781f69f..6d13f65 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/PlainTextTraceGenerator.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/PlainTextTraceGenerator.java @@ -117,4 +117,9 @@ String className, String classPath, String loaderPath) { return ""; } + + @Override + public String getArrayAdvisorClassName() { + return null; + } } 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 f8171c0..dae607b 100644 --- a/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/Tracer.java +++ b/org.ntlab.traceCollector/src/org/ntlab/traceCollector/tracer/Tracer.java @@ -54,7 +54,7 @@ packageInstrumentation("worstCase/", classPath); // �w�肵���p�b�P�[�W���̑S�N���X�ɃC���X�g�D�������e�[�V�������s�� } catch (UnsupportedEncodingException e) { e.printStackTrace(); - } + } } /** @@ -73,14 +73,12 @@ * @param cp Javassist�̃N���X�v�[�� */ public static void initialize(OutputStatementsGenerator outputStatementsGenerator, ClassPool cp) { - // �z��ւ̃A�N�Z�X�̌��o] Tracer.cp = cp; - Tracer.outputStatementsGenerator = outputStatementsGenerator; // �����ŏo�̓t�H�[�}�b�g���w�肷�� + Tracer.outputStatementsGenerator = outputStatementsGenerator; Tracer.conv = new CodeConverter(); - if (!(Tracer.outputStatementsGenerator.getGenerator() instanceof PlainTextTraceGenerator)) { + if (outputStatementsGenerator.getGenerator().getArrayAdvisorClassName() != null) { try { -// CtClass cc = cp.get(TRACER + "JSONArrayAdvisor"); // JSON�̏ꍇ�̂ݔz��A�N�Z�X���o�͂��� - CtClass cc = cp.get(TRACER + "OnlineArrayAdvisor"); // �I�����C����͂̏ꍇ�ɔz��A�N�Z�X���o�͂��� + CtClass cc = cp.get(TRACER + outputStatementsGenerator.getGenerator().getArrayAdvisorClassName()); // Javassist��p���Ĕz��A�N�Z�X���o�͂��� conv.replaceArrayAccess(cc, new CodeConverter.DefaultArrayAccessReplacementMethodNames()); } catch (NotFoundException e1) { e1.printStackTrace();