import java.util.ArrayList;
import java.util.List;
import gr.upatras.ece.nam.fci.core.FCI;
import gr.upatras.ece.nam.fci.core.ParameterValuePair;
import gr.upatras.ece.nam.fci.core.ResourceContext;
import gr.upatras.ece.nam.fci.core.ResourceGroup;
import gr.upatras.ece.nam.fci.core.ResourceProvider;
import gr.upatras.ece.nam.fci.core.ResourceProxy;
import gr.upatras.ece.nam.fci.core.ServiceType;
import brokermodel.fcielements.AuthorizationKey;
import brokermodel.fcielements.FCICredentials;
public class HelloPLCWorld {
FCICredentials creds;
AuthorizationKey key;
/**
* @param args
*/
public static void main(String[] args) {
new HelloPLCWorld();
}
public HelloPLCWorld() {
CreateScenario();
}
private void CreateScenario() {
FCI fci = FCI.getInstance();
FCICredentials cred = fci.createFCICredentials("ctranoris", "ctranoris");
AuthorizationKey authKey = fci.createAuthorizationKey(cred);
ResourceContext uop = fci.createResourceContext("uop", authKey);
for (ServiceType elem : uop.getAvailableServices()) {
System.out.println("Service: " + elem.getName() + "("
+ elem.getDescription() + ")");
}
ServiceType service = uop.getServiceType("echo");
for (ResourceProvider elem : uop.getResourceProvidersForServiceType(service)) {
System.out.println("Service Provider: " + elem.getName() + "("+ elem.getDescription() + ")");
}
ResourceProvider provider = uop.getFirstResourceProviderOfService(service);
System.out.println("A first available Provider: " + provider.getName());
ResourceGroup myGroup = fci.createResourceGroup("ScenarioExample");
List<ParameterValuePair> params = new ArrayList<ParameterValuePair>();
ParameterValuePair p = new ParameterValuePair("input", "Christos", "myinp");
params.add(p);
ResourceProxy resourceEcho = uop.createResourceProxy("myTempVCT", "myEchoResource", provider, service, params);
System.out.println("Echo resource GUID: " + resourceEcho.getGUID());
myGroup.addResourceProxy(resourceEcho);
// Update all resources of group
System.out.println("Echo output = "+ resourceEcho.getParameterValueOfResource("output", true));
// Terminate the group..terminate any contained resources
myGroup.TearDownResources();
}
}