use of org.iobserve.service.privacy.violation.transformation.analysisgraph.Vertex in project iobserve-analysis by research-iobserve.
the class DataProtectionWarner method addDeployedComponents.
/**
* Adding deployment info.
*
* @param privacyGraph
* the graph containing privacy information
* @throws DBException
* @throws InvocationException
*/
private void addDeployedComponents(final PrivacyGraph privacyGraph) throws InvocationException, DBException {
DeploymentLock.lock();
for (final AllocationContext allocationContext : this.allocationRootElement.getAllocationContexts_Allocation()) {
final AssemblyContext proxyAssemblyContext = allocationContext.getAssemblyContext_AllocationContext();
final AssemblyContext assemblyContext = this.systemModelResource.resolve(proxyAssemblyContext);
final RepositoryComponent proxyComponent = assemblyContext.getEncapsulatedComponent__AssemblyContext();
final BasicComponent basicComponent = (BasicComponent) this.repositoryResource.resolve(proxyComponent);
/**
* Creating component vertices. *
*/
// TODO name should be allocation name or assembly name + instance count
final Vertex vertex = new Vertex(basicComponent.getEntityName(), this.computeStereotype(basicComponent));
vertex.setAllocationContext(allocationContext);
privacyGraph.addVertex(vertex);
this.vertices.put(basicComponent.getId(), vertex);
final ResourceContainer resourceContainer = this.resourceEnvironmentResource.resolve(allocationContext.getResourceContainer_AllocationContext());
final GeoLocation geo = this.geolocations.get(resourceContainer.getId());
if (geo == null) {
this.logger.info("Geolocation infomation not available {}", resourceContainer.getId());
} else {
final Vertex vGeo = new Vertex(geo.getIsocode().getName(), EStereoType.GEOLOCATION);
if (!this.vertices.containsKey(geo.getIsocode().getName())) {
// New Geolocation
privacyGraph.addVertex(vGeo);
privacyGraph.addEdge(vGeo, vertex);
this.vertices.put(geo.getIsocode().getName(), vGeo);
} else {
// Existing Geolocation
privacyGraph.addEdge(this.vertices.get(geo.getIsocode().getName()), vertex);
}
}
}
DeploymentLock.unlock();
}
use of org.iobserve.service.privacy.violation.transformation.analysisgraph.Vertex in project iobserve-analysis by research-iobserve.
the class ModelProbeControllerTest method testComputedMethodsToActivateAndToDeactivate.
@Test
public void testComputedMethodsToActivateAndToDeactivate() {
this.modelProbeController = new ModelProbeController();
final OperationSignature operationSignature1 = Mockito.mock(OperationSignature.class);
final OperationSignature operationSignature2 = Mockito.mock(OperationSignature.class);
final AllocationContext allocationContext1 = Mockito.mock(AllocationContext.class);
final AllocationContext allocationContext2 = Mockito.mock(AllocationContext.class);
final WarningModel warnings1 = new WarningModel();
final Edge edge1 = new Edge(new Vertex("test vertex 1", EStereoType.DATASOURCE), new Vertex("test vertex 2", EStereoType.DATASOURCE));
edge1.setOperationSignature(operationSignature1);
edge1.getSource().setAllocationContext(allocationContext1);
final Edge edge2 = new Edge(new Vertex("test vertex 3", EStereoType.DATASOURCE), new Vertex("test vertex 4", EStereoType.DATASOURCE));
edge2.setOperationSignature(operationSignature2);
edge2.getSource().setAllocationContext(allocationContext2);
warnings1.addWarningEdge(edge1);
warnings1.addWarningEdge(edge2);
final Map<AllocationContext, Set<OperationSignature>> methodsToActivate1 = new HashMap<>();
final Set<OperationSignature> methodsSet1 = new HashSet<>();
methodsSet1.add(operationSignature1);
methodsToActivate1.put(allocationContext1, methodsSet1);
final Set<OperationSignature> methodsSet2 = new HashSet<>();
methodsSet2.add(operationSignature2);
methodsToActivate1.put(allocationContext2, methodsSet2);
final ProbeManagementData expectedOutcome1 = new ProbeManagementData(methodsToActivate1, new HashMap<AllocationContext, Set<OperationSignature>>());
// deactivate 1, keep 1, add 1 to existing and add double set / allocation to output port
final OperationSignature operationSignature3 = Mockito.mock(OperationSignature.class);
final OperationSignature operationSignature4 = Mockito.mock(OperationSignature.class);
final OperationSignature operationSignature5 = Mockito.mock(OperationSignature.class);
final AllocationContext allocationContext3 = Mockito.mock(AllocationContext.class);
final Edge edge3 = new Edge(new Vertex("test vertex 5", EStereoType.DATASOURCE), new Vertex("test vertex 6", EStereoType.DATASOURCE));
edge3.setOperationSignature(operationSignature3);
edge3.getSource().setAllocationContext(allocationContext2);
final Edge edge4 = new Edge(new Vertex("test vertex 7", EStereoType.DATASOURCE), new Vertex("test vertex 8", EStereoType.DATASOURCE));
edge4.setOperationSignature(operationSignature4);
edge4.getSource().setAllocationContext(allocationContext3);
final Edge edge5 = new Edge(new Vertex("test vertex 9", EStereoType.DATASOURCE), new Vertex("test vertex 10", EStereoType.DATASOURCE));
edge5.setOperationSignature(operationSignature5);
edge5.getSource().setAllocationContext(allocationContext3);
final WarningModel warnings2 = new WarningModel();
warnings2.addWarningEdge(edge2);
warnings2.addWarningEdge(edge3);
warnings2.addWarningEdge(edge4);
warnings2.addWarningEdge(edge5);
final Map<AllocationContext, Set<OperationSignature>> methodsToActivate2 = new HashMap<>();
final Set<OperationSignature> methodsSet3 = new HashSet<>();
methodsSet3.add(operationSignature3);
methodsToActivate2.put(allocationContext2, methodsSet3);
final Set<OperationSignature> methodsSet4 = new HashSet<>();
methodsSet4.add(operationSignature4);
methodsSet4.add(operationSignature5);
methodsToActivate2.put(allocationContext3, methodsSet4);
final Map<AllocationContext, Set<OperationSignature>> methodsToDeactivate2 = new HashMap<>();
methodsToDeactivate2.put(allocationContext1, methodsSet1);
final ProbeManagementData expectedOutcome2 = new ProbeManagementData(methodsToActivate2, methodsToDeactivate2);
final List<WarningModel> input = new LinkedList<>();
input.add(warnings1);
input.add(warnings2);
final List<ProbeManagementData> output = new LinkedList<>();
StageTester.test(this.modelProbeController).and().send(input).to(this.modelProbeController.getInputPort()).receive(output).from(this.modelProbeController.getOutputPort()).start();
Assert.assertTrue(output.get(0).getMethodsToActivate().equals(expectedOutcome1.getMethodsToActivate()));
Assert.assertTrue(output.get(0).getMethodsToDeactivate().equals(expectedOutcome1.getMethodsToDeactivate()));
Assert.assertTrue(output.get(1).getMethodsToActivate().equals(expectedOutcome2.getMethodsToActivate()));
Assert.assertTrue(output.get(1).getMethodsToDeactivate().equals(expectedOutcome2.getMethodsToDeactivate()));
}
Aggregations