Search in sources :

Example 6 with Vertex

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();
}
Also used : AllocationContext(org.palladiosimulator.pcm.allocation.AllocationContext) Vertex(org.iobserve.service.privacy.violation.transformation.analysisgraph.Vertex) BasicComponent(org.palladiosimulator.pcm.repository.BasicComponent) AssemblyContext(org.palladiosimulator.pcm.core.composition.AssemblyContext) GeoLocation(org.iobserve.model.privacy.GeoLocation) RepositoryComponent(org.palladiosimulator.pcm.repository.RepositoryComponent) ResourceContainer(org.palladiosimulator.pcm.resourceenvironment.ResourceContainer)

Example 7 with Vertex

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()));
}
Also used : Vertex(org.iobserve.service.privacy.violation.transformation.analysisgraph.Vertex) Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) ModelProbeController(org.iobserve.service.privacy.violation.filter.ModelProbeController) ProbeManagementData(org.iobserve.service.privacy.violation.data.ProbeManagementData) WarningModel(org.iobserve.service.privacy.violation.data.WarningModel) LinkedList(java.util.LinkedList) AllocationContext(org.palladiosimulator.pcm.allocation.AllocationContext) OperationSignature(org.palladiosimulator.pcm.repository.OperationSignature) Edge(org.iobserve.service.privacy.violation.transformation.analysisgraph.Edge) HashSet(java.util.HashSet) Test(org.junit.Test)

Aggregations

Vertex (org.iobserve.service.privacy.violation.transformation.analysisgraph.Vertex)7 Edge (org.iobserve.service.privacy.violation.transformation.analysisgraph.Edge)6 AllocationContext (org.palladiosimulator.pcm.allocation.AllocationContext)3 OperationSignature (org.palladiosimulator.pcm.repository.OperationSignature)3 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 LinkedList (java.util.LinkedList)1 Set (java.util.Set)1 EDataProtectionLevel (org.iobserve.model.privacy.EDataProtectionLevel)1 GeoLocation (org.iobserve.model.privacy.GeoLocation)1 IDataProtectionAnnotation (org.iobserve.model.privacy.IDataProtectionAnnotation)1 ProbeManagementData (org.iobserve.service.privacy.violation.data.ProbeManagementData)1 WarningModel (org.iobserve.service.privacy.violation.data.WarningModel)1 ModelProbeController (org.iobserve.service.privacy.violation.filter.ModelProbeController)1 Test (org.junit.Test)1 AssemblyContext (org.palladiosimulator.pcm.core.composition.AssemblyContext)1 BasicComponent (org.palladiosimulator.pcm.repository.BasicComponent)1 Parameter (org.palladiosimulator.pcm.repository.Parameter)1 ParameterModifier (org.palladiosimulator.pcm.repository.ParameterModifier)1