use of io.cdap.cdap.api.service.ServiceSpecification in project cdap by caskdata.
the class InMemoryServiceProgramRunner method run.
@Override
public ProgramController run(Program program, ProgramOptions options) {
// Extract and verify parameters
ApplicationSpecification appSpec = program.getApplicationSpecification();
Preconditions.checkNotNull(appSpec, "Missing application specification.");
ProgramType processorType = program.getType();
Preconditions.checkNotNull(processorType, "Missing processor type.");
Preconditions.checkArgument(processorType == ProgramType.SERVICE, "Only SERVICE process type is supported.");
ServiceSpecification serviceSpec = appSpec.getServices().get(program.getName());
Preconditions.checkNotNull(serviceSpec, "Missing ServiceSpecification for %s", program.getName());
return startAll(program, options, serviceSpec.getInstances());
}
use of io.cdap.cdap.api.service.ServiceSpecification in project cdap by caskdata.
the class DefaultStore method getServiceInstances.
@Override
public int getServiceInstances(ProgramId id) {
return TransactionRunners.run(transactionRunner, context -> {
ApplicationSpecification appSpec = getAppSpecOrFail(getAppMetadataStore(context), id);
ServiceSpecification serviceSpec = getServiceSpecOrFail(id, appSpec);
return serviceSpec.getInstances();
});
}
use of io.cdap.cdap.api.service.ServiceSpecification in project cdap by caskdata.
the class ServiceClientTestRun method testGetServiceSpecification.
@Test
public void testGetServiceSpecification() throws Exception {
ServiceSpecification serviceSpecification = serviceClient.get(service);
assertEquals(serviceSpecification.getName(), PingService.NAME);
assertEquals(serviceSpecification.getHandlers().size(), 1);
}
use of io.cdap.cdap.api.service.ServiceSpecification in project cdap by caskdata.
the class GenerateClientUsageExample method serviceClient.
public void serviceClient() throws Exception {
// Construct the client used to interact with CDAP
ServiceClient serviceClient = new ServiceClient(clientConfig);
// Fetch service information using the service in the PurchaseApp example
ServiceSpecification serviceSpec = serviceClient.get(NamespaceId.DEFAULT.app("PurchaseApp").service("CatalogLookup"));
}
use of io.cdap.cdap.api.service.ServiceSpecification in project cdap by caskdata.
the class DefaultStoreTest method testServiceInstances.
@Test
public void testServiceInstances() {
ApplicationSpecification appSpec = Specifications.from(new AppWithServices());
ApplicationId appId = NamespaceId.DEFAULT.app(appSpec.getName());
store.addApplication(appId, appSpec);
// Test setting of service instances
ProgramId programId = appId.program(ProgramType.SERVICE, "NoOpService");
int count = store.getServiceInstances(programId);
Assert.assertEquals(1, count);
store.setServiceInstances(programId, 10);
count = store.getServiceInstances(programId);
Assert.assertEquals(10, count);
ApplicationSpecification newSpec = store.getApplication(appId);
Assert.assertNotNull(newSpec);
Map<String, ServiceSpecification> services = newSpec.getServices();
Assert.assertEquals(1, services.size());
ServiceSpecification serviceSpec = services.get("NoOpService");
Assert.assertEquals(10, serviceSpec.getInstances());
}
Aggregations