/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package at.ac.tuwien.dsg.cloud.salsa.examples.dataaccess; import at.ac.tuwien.dsg.cloud.elise.master.RESTService.EliseRepository; import at.ac.tuwien.dsg.cloud.elise.model.provider.ServiceTemplate; import at.ac.tuwien.dsg.cloud.salsa.domainmodels.types.ServiceCategory; import at.ac.tuwien.dsg.cloud.elise.model.extra.contract.Contract; import at.ac.tuwien.dsg.cloud.elise.model.extra.contract.ContractItem; import at.ac.tuwien.dsg.cloud.elise.model.provider.Artifact; import at.ac.tuwien.dsg.cloud.salsa.domainmodels.types.SalsaArtifactType; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.UUID; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; /** * * @author hungld */ public class testContractorModel { public static void main(String[] args) { /** CREATE A CONTRACT AND ATTACH TO A SERVICE TEMPLATE **/ Contract contract = new Contract(); contract.setName("MyContract"); Set<ContractItem> items = new HashSet<>(); ContractItem item1 = new ContractItem(); item1.setName("BandwidthGuarantee"); item1.setService("MonitorService1"); ContractItem item2 = new ContractItem(); item2.setName("Availability"); item2.setService("MonitorService2"); items.addAll(Arrays.asList(item1, item2)); contract.setItems(items); // create new service template add the contract as an extensible model ServiceTemplate serviceTemplate = new ServiceTemplate("template1", ServiceCategory.SystemService); String uuid = UUID.randomUUID().toString(); serviceTemplate.setUuid(uuid); serviceTemplate.setContract(contract); Artifact artifact = new Artifact("MyArtifact", SalsaArtifactType.misc, "1.0", "http://github.com/..."); serviceTemplate.hasArtifact(artifact); /** CREATE PROXY TO THE REPOSITORY SERVICE AND SAVE THE SERVICE TEMPLATE **/ String endpoint = "http://localhost:8080/salsa-engine/rest/elise/"; EliseRepository mng = JAXRSClientFactory.create(endpoint, EliseRepository.class, Arrays.asList(new JacksonJaxbJsonProvider())); mng.saveServiceTemplate(serviceTemplate); /** READ AGAIN AND PRINT OUT **/ ServiceTemplate templateRead = mng.readServiceTemplate(uuid); System.out.println(templateRead.toJson()); /** TRY TO EDIT, SAVE AND PRINT AGAIN **/ Contract contractRead = templateRead.getContract(); ContractItem item3 = new ContractItem(); item3.setName("QualityOfData"); item3.setService("MonitorService3"); contractRead.getItems().add(item3); serviceTemplate.setContract(contractRead); mng.saveServiceTemplate(serviceTemplate); // save again templateRead = mng.readServiceTemplate(uuid); // read again System.out.println("\n=============\n"+templateRead.toJson()); } }