Skip to content

Commit 3cf9d8b

Browse files
authored
Merge pull request #8 from softvis-research/development
merge development into master
2 parents 75a67e8 + f4cfe94 commit 3cf9d8b

10 files changed

Lines changed: 23 additions & 143 deletions

File tree

src/main/java/org/jqassistant/contrib/plugin/kieker/api/model/CallsDescriptor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,4 @@ public interface CallsDescriptor extends Descriptor, WeightDescriptor {
1111

1212
@Relation.Incoming
1313
MethodDescriptor getCaller();
14-
1514
}

src/main/java/org/jqassistant/contrib/plugin/kieker/api/model/RecordDescriptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
public interface RecordDescriptor extends KiekerDescriptor, DirectoryDescriptor {
1616

1717
@Relation("CONTAINS")
18-
List<TraceDescriptor> getTraces();
18+
List<MethodDescriptor> getMethods();
1919

2020
@Relation("CONTAINS")
2121
List<MeasurementDescriptor> getMeasurements();

src/main/java/org/jqassistant/contrib/plugin/kieker/api/model/TraceDescriptor.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/main/java/org/jqassistant/contrib/plugin/kieker/impl/scanner/KiekerDirectoryScannerPlugin.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,17 @@ protected RecordDescriptor getContainerDescriptor(File container, ScannerContext
5050
final RecordDescriptor recordDescriptor = scannerContext.getStore().addDescriptorType(directoryDescriptor, RecordDescriptor.class);
5151

5252
// Set record receiver that maps read records to corresponding descriptors
53-
KiekerRecordReceiver kiekerRecordReceiver = new KiekerRecordReceiver(new KiekerHelper(scannerContext, recordDescriptor));
53+
KiekerHelper kiekerHelper = new KiekerHelper(scannerContext, recordDescriptor);
54+
KiekerRecordReceiver kiekerRecordReceiver = new KiekerRecordReceiver(kiekerHelper);
5455

5556
// Set filesystem directory reader (reads *.map, *.dat, *.bin, *.xz files in a directory)
5657
// Todo use another reader
5758
FSDirectoryReader fsDirectoryReader = new FSDirectoryReader(container, kiekerRecordReceiver, true);
5859
fsDirectoryReader.run();
5960

61+
// add all methods to record
62+
kiekerHelper.addMethodsToRecord();
63+
6064
return recordDescriptor;
6165
}
6266

@@ -70,7 +74,6 @@ protected RecordDescriptor getContainerDescriptor(File container, ScannerContext
7074
*/
7175
@Override
7276
protected void enterContainer(File container, RecordDescriptor containerDescriptor, ScannerContext scannerContext) throws IOException {
73-
7477
}
7578

7679
/**
@@ -82,6 +85,5 @@ protected void enterContainer(File container, RecordDescriptor containerDescript
8285
*/
8386
@Override
8487
protected void leaveContainer(File container, RecordDescriptor containerDescriptor, ScannerContext scannerContext) throws IOException {
85-
8688
}
8789
}

src/main/java/org/jqassistant/contrib/plugin/kieker/impl/scanner/KiekerHelper.java

Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.github.benmanes.caffeine.cache.Cache;
55
import com.github.benmanes.caffeine.cache.Caffeine;
66
import kieker.common.record.IMonitoringRecord;
7-
import kieker.common.record.flow.trace.TraceMetadata;
87
import kieker.common.record.flow.trace.operation.AbstractOperationEvent;
98
import kieker.common.record.flow.trace.operation.AfterOperationEvent;
109
import kieker.common.record.flow.trace.operation.BeforeOperationEvent;
@@ -36,7 +35,6 @@ public class KiekerHelper {
3635
private RecordDescriptor recordDescriptor;
3736
private Cache<MethodDescriptorKey, MethodDescriptor> methodDescriptorCache;
3837
private Cache<CallsDescriptorKey, CallsDescriptor> callsDescriptorCache;
39-
private Map<Long, TraceDescriptor> traceCache;
4038
private Map<String, Stack<BeforeOperationEvent>> timestampCache;
4139
private final String REGEX_FOR_METHOD_NAME = "([a-zA-Z0-9_]+) *\\(";
4240

@@ -45,7 +43,6 @@ public KiekerHelper(ScannerContext scannerContext, RecordDescriptor recordDescri
4543
this.recordDescriptor = recordDescriptor;
4644
this.methodDescriptorCache = Caffeine.newBuilder().maximumSize(100000).build();
4745
this.callsDescriptorCache = Caffeine.newBuilder().maximumSize(10000000).build();
48-
this.traceCache = new HashMap<>();
4946
this.timestampCache = new HashMap<>();
5047
}
5148

@@ -60,17 +57,6 @@ void createRecord(KiekerMetadataRecord record) {
6057
recordDescriptor.setNumberOfRecords(record.getNumberOfRecords());
6158
}
6259

63-
void createTrace(TraceMetadata trace) {
64-
TraceDescriptor traceDescriptor = scannerContext.getStore().create(TraceDescriptor.class);
65-
traceDescriptor.setLoggingTimestamp(trace.getLoggingTimestamp());
66-
traceDescriptor.setTraceId(trace.getTraceId());
67-
traceDescriptor.setThreadId(trace.getThreadId());
68-
traceDescriptor.setSessionId(trace.getSessionId());
69-
traceDescriptor.setHostname(trace.getHostname());
70-
recordDescriptor.getTraces().add(traceDescriptor);
71-
traceCache.put(trace.getTraceId(), traceDescriptor);
72-
}
73-
7460
void createEvent(AbstractOperationEvent event) {
7561
if (event instanceof BeforeOperationEvent || event instanceof AfterOperationEvent) {
7662
if (event instanceof BeforeOperationEvent) {
@@ -83,10 +69,6 @@ void createEvent(AbstractOperationEvent event) {
8369
BeforeOperationEvent beforeOperationEvent = popFromTimestampStack(methodDescriptor.getSignature());
8470
if (beforeOperationEvent != null) {
8571
methodDescriptor.setDuration(methodDescriptor.getDuration() + (event.getTimestamp() - beforeOperationEvent.getTimestamp()));
86-
// add method to trace if not already done
87-
if (!getTraceDescriptor(event).getMethods().contains(methodDescriptor)) {
88-
getTraceDescriptor(event).getMethods().add(methodDescriptor);
89-
}
9072
} else {
9173
LOGGER.warn("BeforeOperationEvent for method " + methodDescriptor.getSignature() + " missing.");
9274
}
@@ -96,12 +78,14 @@ void createEvent(AbstractOperationEvent event) {
9678
CallOperationEvent callOperationEvent = (CallOperationEvent) event;
9779
MethodDescriptor caller = getMethodDescriptor(callOperationEvent.getCallerClassSignature(), callOperationEvent.getCallerOperationSignature());
9880
MethodDescriptor callee = getMethodDescriptor(callOperationEvent.getCalleeClassSignature(), callOperationEvent.getCalleeOperationSignature());
81+
// update number of incoming and outgoing calls
82+
if (callOperationEvent.getOrderIndex() == 1) {
83+
caller.setIncomingCalls(caller.getIncomingCalls() + 1);
84+
}
85+
caller.setOutgoingCalls(caller.getOutgoingCalls() + 1);
86+
callee.setIncomingCalls(callee.getIncomingCalls() + 1);
9987
// add call
10088
addCall(caller, callee);
101-
// add caller to trace if not already done
102-
if (!getTraceDescriptor(event).getMethods().contains(caller)) {
103-
getTraceDescriptor(event).getMethods().add(caller);
104-
}
10589
}
10690
}
10791

@@ -127,27 +111,19 @@ private synchronized BeforeOperationEvent popFromTimestampStack(String signature
127111
}
128112
}
129113

130-
private TraceDescriptor getTraceDescriptor(AbstractOperationEvent event) {
131-
TraceDescriptor traceDescriptor;
132-
if (traceCache.containsKey(event.getTraceId())) {
133-
traceDescriptor = traceCache.get(event.getTraceId());
134-
} else {
135-
traceDescriptor = scannerContext.getStore().create(TraceDescriptor.class);
136-
traceDescriptor.setTraceId(event.getTraceId());
137-
recordDescriptor.getTraces().add(traceDescriptor);
138-
traceCache.put(event.getTraceId(), traceDescriptor);
139-
}
140-
return traceDescriptor;
141-
}
142-
143114
private MethodDescriptor getMethodDescriptor(String fqn, String signature) {
144115
return methodDescriptorCache.get(MethodDescriptorKey.builder().type(fqn).signature(signature).build(), methodDescriptorKey -> {
145116
Map<String, Object> params = new HashMap<>();
146117
params.put("fqn", fqn);
147118
params.put("typeName", fqn.substring(fqn.lastIndexOf(".") + 1));
148119
params.put("signature", signature);
149-
params.put("methodName", getMethodNameFromSignature(signature));
150-
return scannerContext.getStore().executeQuery("MERGE (t:Kieker:Type{fqn:$fqn}) ON CREATE SET t.name=$typeName MERGE (t)-[:DECLARES]->(m:Kieker:Method{signature:$signature,name:$methodName}) RETURN m", params).getSingleResult().get("m", MethodDescriptor.class);
120+
// exclude encoded signature as no method name can be created
121+
if (signature.endsWith(")")) {
122+
params.put("methodName", getMethodNameFromSignature(signature));
123+
return scannerContext.getStore().executeQuery("MERGE (t:Kieker:Type{fqn:$fqn}) ON CREATE SET t.name=$typeName MERGE (t)-[:DECLARES]->(m:Kieker:Method{signature:$signature,name:$methodName}) RETURN m", params).getSingleResult().get("m", MethodDescriptor.class);
124+
} else {
125+
return scannerContext.getStore().executeQuery("MERGE (t:Kieker:Type{fqn:$fqn}) ON CREATE SET t.name=$typeName MERGE (t)-[:DECLARES]->(m:Kieker:Method{signature:$signature}) RETURN m", params).getSingleResult().get("m", MethodDescriptor.class);
126+
}
151127
});
152128
}
153129

@@ -276,4 +252,8 @@ private static class CallsDescriptorKey {
276252
private MethodDescriptor callee;
277253

278254
}
255+
256+
public void addMethodsToRecord() {
257+
recordDescriptor.getMethods().addAll(methodDescriptorCache.asMap().values());
258+
}
279259
}

src/main/java/org/jqassistant/contrib/plugin/kieker/impl/scanner/KiekerRecordReceiver.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import kieker.analysis.plugin.reader.util.IMonitoringRecordReceiver;
44
import kieker.common.record.IMonitoringRecord;
5-
import kieker.common.record.flow.trace.TraceMetadata;
65
import kieker.common.record.flow.trace.operation.AbstractOperationEvent;
76
import kieker.common.record.misc.KiekerMetadataRecord;
87
import kieker.common.record.system.*;
@@ -34,8 +33,6 @@ public KiekerRecordReceiver(KiekerHelper kiekerHelper) {
3433
public boolean newMonitoringRecord(IMonitoringRecord iMonitoringRecord) {
3534
if (iMonitoringRecord instanceof KiekerMetadataRecord) {
3635
kiekerHelper.createRecord((KiekerMetadataRecord) iMonitoringRecord);
37-
} else if (iMonitoringRecord instanceof TraceMetadata) {
38-
kiekerHelper.createTrace((TraceMetadata) iMonitoringRecord);
3936
} else if (iMonitoringRecord instanceof AbstractOperationEvent) {
4037
kiekerHelper.createEvent((AbstractOperationEvent) iMonitoringRecord);
4138
} else if (iMonitoringRecord instanceof CPUUtilizationRecord || iMonitoringRecord instanceof DiskUsageRecord ||

src/main/resources/META-INF/jqassistant-plugin.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
<description>Provides a scanner for Kieker files.</description>
44
<model>
55
<class>org.jqassistant.contrib.plugin.kieker.api.model.MethodDescriptor</class>
6-
<class>org.jqassistant.contrib.plugin.kieker.api.model.TraceDescriptor</class>
76
<class>org.jqassistant.contrib.plugin.kieker.api.model.TypeDescriptor</class>
87
<class>org.jqassistant.contrib.plugin.kieker.api.model.RecordDescriptor</class>
98
<class>org.jqassistant.contrib.plugin.kieker.api.model.CallsDescriptor</class>

src/test/java/org/jqassistant/contrib/plugin/kieker/test/MethodIT.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ public void testMethod() {
2929
// kieker.examples.monitoring.aspectj.Bookstore.searchBook()"
3030
assertThat(testResultProperties.getColumn("m.signature").get(0).toString(),
3131
equalTo("public void kieker.examples.monitoring.aspectj.Bookstore.searchBook()"));
32-
// two events have this function -> 1 After- plus 1 BeforeOperationEvent
33-
assertThat(testResultProperties.getColumn("m.signature").size(), equalTo(1));
3432
store.commitTransaction();
3533
}
3634
}

src/test/java/org/jqassistant/contrib/plugin/kieker/test/RecordIT.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@ public void testRecord() {
1717
File directory = new File(TEST_DIRECTORY_PATH);
1818
store.beginTransaction();
1919
getScanner().scan(directory, TEST_DIRECTORY_PATH, DefaultScope.NONE);
20-
TestResult testResult = query("MATCH (:Record)-[:CONTAINS]->(t:Trace) RETURN t");
21-
// one record with two traces
22-
assertThat(testResult.getColumn("t").size(), equalTo(2));
2320

2421
// test property values
2522
TestResult testResultProperties = query(

src/test/java/org/jqassistant/contrib/plugin/kieker/test/TraceIT.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

0 commit comments

Comments
 (0)