Skip to content
Snippets Groups Projects
Commit 1b9e1e0f authored by Christian Wulf's avatar Christian Wulf
Browse files

added IRecordFactoryMethod concept

parent 07029411
No related branches found
No related tags found
No related merge requests found
set cp=.;MooBench.jar;META-INF/kieker.monitoring.properties;META-INF/kieker.logging.properties set cp=.;MooBench.jar;META-INF/kieker.monitoring.properties;META-INF/kieker.logging.properties
set jvmParams=-javaagent:lib/kieker-1.9_aspectj.jar -Dorg.aspectj.weaver.loadtime.configuration=META-INF/kieker.aop.xml -Dorg.aspectj.weaver.showWeaveInfo=true -Daj.weaving.verbose=true -Dkieker.monitoring.writer=kieker.monitoring.writer.tcp.TCPWriter set jvmParams=-javaagent:lib/kieker-1.9_aspectj.jar -Dorg.aspectj.weaver.loadtime.configuration=META-INF/kieker.aop.xml -Dorg.aspectj.weaver.showWeaveInfo=true -Daj.weaving.verbose=true -Dkieker.monitoring.writer=kieker.monitoring.writer.tcp.TCPWriter
set params=-d 10 -h 1 -m 0 -t 1000000 -o tmp/test.txt -q set params=-d 10 -h 1 -m 0 -t 3000000 -o tmp/test.txt -q
set runs=%1 set runs=%1
for %%i in (1,1,%runs%) do ( for %%i in (%runs%) do (
java -cp %cp% %jvmParams% mooBench.benchmark.Benchmark %params% java -cp %cp% %jvmParams% mooBench.benchmark.Benchmark %params%
) )
\ No newline at end of file
package teetime.variant.methodcallWithPorts.stage.io;
import java.nio.ByteBuffer;
import kieker.common.record.IMonitoringRecord;
import kieker.common.util.registry.ILookup;
public interface IRecordFactoryMethod {
IMonitoringRecord create(ByteBuffer buffer, ILookup<String> stringRegistry);
}
package teetime.variant.methodcallWithPorts.stage.io;
import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
import kieker.common.exception.MonitoringRecordException;
import kieker.common.record.IMonitoringRecord;
import kieker.common.util.registry.ILookup;
public final class RecordFactory {
private final Map<String, IRecordFactoryMethod> recordFactoryMethods = new HashMap<String, IRecordFactoryMethod>();
public IMonitoringRecord create(final int clazzId, final ByteBuffer buffer, final ILookup<String> stringRegistry) throws MonitoringRecordException {
String recordClassName = stringRegistry.get(clazzId);
IRecordFactoryMethod recordFactoryMethod = this.recordFactoryMethods.get(recordClassName);
if (recordFactoryMethod == null) {
throw new IllegalStateException("recordClassName: " + recordClassName);
}
return recordFactoryMethod.create(buffer, stringRegistry);
}
public void register(final String recordClassName, final IRecordFactoryMethod recordFactoryMethod) {
this.recordFactoryMethods.put(recordClassName, recordFactoryMethod);
}
}
...@@ -28,8 +28,11 @@ import teetime.variant.methodcallWithPorts.framework.core.ProducerStage; ...@@ -28,8 +28,11 @@ import teetime.variant.methodcallWithPorts.framework.core.ProducerStage;
import kieker.common.exception.MonitoringRecordException; import kieker.common.exception.MonitoringRecordException;
import kieker.common.logging.Log; import kieker.common.logging.Log;
import kieker.common.logging.LogFactory; import kieker.common.logging.LogFactory;
import kieker.common.record.AbstractMonitoringRecord;
import kieker.common.record.IMonitoringRecord; import kieker.common.record.IMonitoringRecord;
import kieker.common.record.flow.trace.operation.AfterOperationEvent;
import kieker.common.record.flow.trace.operation.BeforeOperationEvent;
import kieker.common.record.flow.trace.operation.CallOperationEvent;
import kieker.common.record.misc.KiekerMetadataRecord;
import kieker.common.record.misc.RegistryRecord; import kieker.common.record.misc.RegistryRecord;
import kieker.common.util.registry.ILookup; import kieker.common.util.registry.ILookup;
import kieker.common.util.registry.Lookup; import kieker.common.util.registry.Lookup;
...@@ -52,6 +55,8 @@ public class TCPReader extends ProducerStage<Void, IMonitoringRecord> { ...@@ -52,6 +55,8 @@ public class TCPReader extends ProducerStage<Void, IMonitoringRecord> {
private TCPStringReader tcpStringReader; private TCPStringReader tcpStringReader;
private RecordFactory recordFactory;
// @Override // implement onStop // @Override // implement onStop
// public void onPipelineStops() { // public void onPipelineStops() {
// super.logger.info("Shutdown of TCPReader requested."); // super.logger.info("Shutdown of TCPReader requested.");
...@@ -77,11 +82,51 @@ public class TCPReader extends ProducerStage<Void, IMonitoringRecord> { ...@@ -77,11 +82,51 @@ public class TCPReader extends ProducerStage<Void, IMonitoringRecord> {
@Override @Override
public void onStart() { public void onStart() {
this.recordFactory = new RecordFactory();
this.register();
this.tcpStringReader = new TCPStringReader(this.port2, this.stringRegistry); this.tcpStringReader = new TCPStringReader(this.port2, this.stringRegistry);
this.tcpStringReader.start(); this.tcpStringReader.start();
super.onStart(); super.onStart();
} }
private void register() {
this.recordFactory.register(kieker.common.record.flow.trace.TraceMetadata.class.getCanonicalName(), new IRecordFactoryMethod() {
@Override
public IMonitoringRecord create(final ByteBuffer buffer, final ILookup<String> stringRegistry) {
return new kieker.common.record.flow.trace.TraceMetadata(buffer, stringRegistry);
}
});
this.recordFactory.register(KiekerMetadataRecord.class.getCanonicalName(), new IRecordFactoryMethod() {
@Override
public IMonitoringRecord create(final ByteBuffer buffer, final ILookup<String> stringRegistry) {
return new KiekerMetadataRecord(buffer, stringRegistry);
}
});
this.recordFactory.register(BeforeOperationEvent.class.getCanonicalName(), new IRecordFactoryMethod() {
@Override
public IMonitoringRecord create(final ByteBuffer buffer, final ILookup<String> stringRegistry) {
return new BeforeOperationEvent(buffer, stringRegistry);
}
});
this.recordFactory.register(AfterOperationEvent.class.getCanonicalName(), new IRecordFactoryMethod() {
@Override
public IMonitoringRecord create(final ByteBuffer buffer, final ILookup<String> stringRegistry) {
return new AfterOperationEvent(buffer, stringRegistry);
}
});
this.recordFactory.register(CallOperationEvent.class.getCanonicalName(), new IRecordFactoryMethod() {
@Override
public IMonitoringRecord create(final ByteBuffer buffer, final ILookup<String> stringRegistry) {
return new CallOperationEvent(buffer, stringRegistry);
}
});
}
@Override @Override
protected void execute5(final Void element) { protected void execute5(final Void element) {
ServerSocketChannel serversocket = null; ServerSocketChannel serversocket = null;
...@@ -104,7 +149,8 @@ public class TCPReader extends ProducerStage<Void, IMonitoringRecord> { ...@@ -104,7 +149,8 @@ public class TCPReader extends ProducerStage<Void, IMonitoringRecord> {
final long loggingTimestamp = buffer.getLong(); final long loggingTimestamp = buffer.getLong();
final IMonitoringRecord record; final IMonitoringRecord record;
try { // NOCS (Nested try-catch) try { // NOCS (Nested try-catch)
record = AbstractMonitoringRecord.createFromByteBuffer(clazzid, buffer, this.stringRegistry); record = this.recordFactory.create(clazzid, buffer, this.stringRegistry);
// record = AbstractMonitoringRecord.createFromByteBuffer(clazzid, buffer, this.stringRegistry);
record.setLoggingTimestamp(loggingTimestamp); record.setLoggingTimestamp(loggingTimestamp);
this.send(record); this.send(record);
} catch (final MonitoringRecordException ex) { } catch (final MonitoringRecordException ex) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment