public RequiredPortInstance ofType(RequiredPort type) { for (RequiredPortInstance port: this) { if (port.getType().equals(type)) { return port; } } return null; }
public RequiredPortInstance withTypeNamed(String name){ for (RequiredPortInstance port: this) { if (port.getType().getName().equals(name)) { return port; } } return null; }
@Override protected void handleLackOfCandidate(Deployment deployment, List<Relationship> candidates) { final String message = String.format( "Unable to find any relevant relationship type for client port '%s' of type '%s'", requiredPort.getQualifiedName(), requiredPort.getType().getQualifiedName()); throw new IllegalStateException(message); }
private void validateRequiredEnd(Report report) { if (!requiredEnd.getType().equals(type.getRequiredEnd())) { final String message = String.format( "illegal relationship '%s' instance that does not match its type (required port found '%s' but expected '%s')", getName(), requiredEnd.getType().getName(), type.getRequiredEnd().getName()); report.addError(message); } }
public String selectClientPortInstance(RelationshipInstance bi) { JPanel panel = new JPanel(); panel.add(new JLabel("Please make a selection:")); DefaultComboBoxModel model = new DefaultComboBoxModel(); for (ComponentInstance ai : dm.getComponentInstances()) { if (ai instanceof InternalComponentInstance) { for (RequiredPortInstance ci : ((InternalComponentInstance) ai).getRequiredPorts()) { System.out.println(bi.getType().getRequiredEnd() + " #### " + ci.getType()); if (ci.getType().equals(bi.getType().getRequiredEnd())) { model.addElement(ci); } } } } JComboBox comboBox = new JComboBox(model); panel.add(comboBox); int result = JOptionPane.showConfirmDialog(null, panel, "RequiredPort", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); switch (result) { case JOptionPane.OK_OPTION: bi.setRequiredEnd((RequiredPortInstance) comboBox.getSelectedItem()); return ((RequiredPortInstance) comboBox.getSelectedItem()).getOwner().getName(); } return ""; }
private boolean isRelevant(RequiredPortInstance requiredPort, Relationship relationship) { return relationship.getRequiredEnd().equals(requiredPort.getType()) && !isExcluded(relationship); }
private void convertAndAddRequiredPortInstances(List<RequiredPortInstance> requiredPortInstances, net.cloudml.core.InternalComponentInstance kai) { checkNull(requiredPortInstances, "Cannot iterate on null"); for (RequiredPortInstance api: requiredPortInstances) { checkNull(api, "Cannot convert null"); net.cloudml.core.RequiredPortInstance kapi = factory.createRequiredPortInstance(); kapi.setName(api.getName()); kapi.setType(requiredPorts.get(calculatePortIdentifier(api.getType()))); //kapi.setType(requiredPorts.get(kai.getType().getName() + "_" + api.getType().getName())); convertProperties(api, kapi, factory); kai.addRequiredPortInstances(kapi); this.requiredPortInstances.put(escapePortInstanceName(api), kapi); } }
/** * Find all the component that can be used as service providers for the * given required port * * @param requiredPort the port for which a provider is needed * @return the list of candidates service providers */ private List<ComponentInstance<?>> findAllCandidateProviders(RequiredPortInstance requiredPort) { assert requiredPort != null: "Unable to find service providers for 'null'"; final List<ComponentInstance<?>> candidates = new LinkedList<ComponentInstance<?>>(); final Deployment deployment = requiredPort.getDeployment(); for (Relationship eachRelationship: deployment.getRelationships()) { if (eachRelationship.getRequiredEnd().equals(requiredPort.getType())) { final ProvidedPort serverType = eachRelationship.getProvidedEnd(); for (ComponentInstance<?> eachComponent: deployment.getComponentInstances()) { if (eachComponent.getType().canProvide(serverType)) { candidates.add(eachComponent); } } } } return candidates; }
private void unconfigureRelationship(RelationshipInstance b) { if (!b.getRequiredEnd().getType().isLocal()) { RequiredPortInstance client = b.getRequiredEnd(); ProvidedPortInstance server = b.getProvidedEnd(); Resource clientResource = b.getType().getClientResource(); Resource serverResource = b.getType().getServerResource(); //client resources unconfigureWithIP(clientResource, client); //server resources unconfigureWithIP(serverResource, server); } }
.named(name) .from(mapping.get(ri.getClientComponent()).getName(), mapping.get(ri.getClientComponent()).asInternal().getRequiredPorts().ofType(ri.getRequiredEnd().getType()).getType().getName()) .to(mapping.get(ri.getServerComponent()).getName(), mapping.get(ri.getServerComponent()).getProvidedPorts().ofType(ri.getProvidedEnd().getType()).getType().getName()) .named(name) .from(mapping.get(ri.getClientComponent()).getName(), mapping.get(ri.getClientComponent()).asInternal().getRequiredPorts().ofType(ri.getRequiredEnd().getType()).getType().getName()) .to(ri.getServerComponent().getName(), ri.getProvidedEnd().getType().getName())
@Override public Void applyTo(Deployment deployment) { if (!clientPort.isBound()) { final Relationship bindingType = getLibrary().findRelationshipFor(deployment, clientPort); final String name = getLibrary().createUniqueRelationshipInstanceName(deployment, bindingType); final ProvidedPortInstance serverPort = getLibrary().findProvidedPortFor(deployment, bindingType); if(bindingType == null){ throw new IllegalStateException("No type of relationship found for the client port: "+clientPort.getQualifiedName()); } if(serverPort == null){ throw new IllegalStateException("No Server port for the client port: "+clientPort.getQualifiedName()); } aRelationshipInstance() .named(name) .from(clientPort.getOwner().getName(), clientPort.getType().getName()) .to(serverPort.getOwner().getName(), serverPort.getType().getName()) .ofType(bindingType.getName()) .integrateIn(deployment); } return NOTHING; }
ExternalComponentInstance<ExternalComponent> exclienti = ((ExternalComponentInstance) clienti); ipAddress = exclienti.getPublicAddress(); port = String.valueOf(bi.getRequiredEnd().getType().getPortNumber()); port = String.valueOf(bi.getRequiredEnd().getType().getPortNumber()); coordinator.updateStatus(serveri.getName(), ComponentInstance.State.RUNNING, CloudAppDeployer.class.getName()); else if (bi.getRequiredEnd().getType().isRemote()) { RequiredPortInstance client = bi.getRequiredEnd(); ProvidedPortInstance server = bi.getProvidedEnd();
/** * Find the destination of an ComponentInstance * * @param a an instance of component * @return a VMInstance */ private ExternalComponentInstance findDestinationWhenNoRequiredExecutionPlatformSpecified(InternalComponentInstance a) { if (getDestination(a) != null) { return getDestination(a); } else { for (RelationshipInstance b : currentModel.getRelationshipInstances()) { if (a.getRequiredPorts().contains(b.getRequiredEnd()) && b.getRequiredEnd().getType().isLocal()) { return getDestination(b.getProvidedEnd().getOwner().get()); } if (a.getProvidedPorts().contains(b.getProvidedEnd()) && b.getProvidedEnd().getType().isLocal()) { return getDestination(b.getRequiredEnd().getOwner().get()); } } return null; } }
public void drawEdgesFromDeploymentModel(Deployment dm, ArrayList<Vertex> v) { for (ComponentInstance x : dm.getComponentInstances()) { if (x instanceof InternalComponentInstance) { InternalComponentInstance ix = (InternalComponentInstance) x; if (ix.getRequiredExecutionPlatform() != null) { Vertex v1 = findVertex(ix.getName(), v); Vertex v2 = findVertex(ix.getRequiredExecutionPlatform().getName(), v); Edge e = new Edge("dest" + ix.getName(), "destination"); createEdge(e, v1, v2); } }//TODO else } for (RelationshipInstance bi : dm.getRelationshipInstances()) { Vertex v1 = findVertex(bi.getRequiredEnd().getOwner().getName(), v); Vertex v2 = findVertex(bi.getProvidedEnd().getOwner().getName(), v); Edge e; if (!bi.getRequiredEnd().getType().isMandatory()) { e = new Edge(bi.getName(), "optional", bi); } else { e = new Edge(bi.getName(), "mandatory", bi); } createEdge(e, v1, v2); } }
if (bi.getRequiredEnd().getType().isMandatory() && x.getRequiredPorts().contains(bi.getRequiredEnd())) { final ComponentInstance<? extends Component> serverComponent = bi.getServerComponent(); if( getDestination(serverComponent).isVM()){