if (contracts.containsKey(contract.getApiKey())) { throw new RegistrationException(Messages.i18n.format("InMemoryRegistry.ContractAlreadyPublished", //$NON-NLS-1$ contract.getApiKey())); String svcKey = getServiceKey(contract.getServiceOrgId(), contract.getServiceId(), contract.getServiceVersion()); if (!services.containsKey(svcKey)) { throw new RegistrationException(Messages.i18n.format("InMemoryRegistry.ServiceNotFoundInOrg", //$NON-NLS-1$ contract.getServiceId(), contract.getServiceOrgId())); String svcKey = getServiceKey(contract.getServiceOrgId(), contract.getServiceId(), contract.getServiceVersion()); ServiceContract sc = new ServiceContract(contract.getApiKey(), services.get(svcKey), application, contract.getPolicies()); contracts.put(contract.getApiKey(), sc);
/** * Generates a valid document ID for a api referenced by a contract, used to * retrieve the api from ES. * @param contract */ protected String getApiId(Contract contract) { return getApiId(contract.getApiOrgId(), contract.getApiId(), contract.getApiVersion()); }
/** * Checks the API unique identifier against what this contract expects (org id, id, version). * Returns true if they match. * @param request the request * @return true if the given request matches this contract */ public boolean matches(ApiRequest request) { String apiOrgId = request.getApiOrgId(); String apiId = request.getApiId(); String apiVersion = request.getApiVersion(); return matches(apiOrgId, apiId, apiVersion); }
Contract myContract = new Contract(); Company myCompany = new Company(); myContract.setCompany(myCompany); contractService.save( myContract ); //assuming this would save the company as well
contractBean.getApi().getVersion()); if (apisToPublish.contains(apiInfo)) { Contract contract = new Contract(); contract.setPlan(contractBean.getPlan().getPlan().getId()); contract.setApiId(contractBean.getApi().getApi().getId()); contract.setApiOrgId(contractBean.getApi().getApi().getOrganization().getId()); contract.setApiVersion(contractBean.getApi().getVersion()); contract.getPolicies().addAll(aggregateContractPolicies(contractBean, info)); contracts.add(contract); ApiVersionBean svb = storage.getApiVersion(contract.getApiOrgId(), contract.getApiId(), contract.getApiVersion()); Set<ApiGatewayBean> gateways = svb.getGateways(); if (gateways == null) {
} else { Optional<Contract> matchedOpt = client.getContracts().stream() .filter(contract -> contract.matches(apiOrganizationId, apiId, apiVersion)) .findFirst(); ApiContract apiContract = new ApiContract(api, client, contract.getPlan(), contract.getPolicies()); handler.handle(AsyncResultImpl.create(apiContract)); } else {
/** * @see io.apiman.gateway.engine.IRegistry#registerClient(io.apiman.gateway.engine.beans.Client, io.apiman.gateway.engine.async.IAsyncResultHandler) */ @Override public void registerClient(Client client, IAsyncResultHandler<Void> handler) { Set<Contract> contracts = client.getContracts(); if (contracts != null) { for (Contract contract : contracts) { List<Policy> policies = contract.getPolicies(); encryptPolicies(client.getOrganizationId(), client.getClientId(), client.getVersion(), EntityType.ClientApp, policies); } } delegate.registerClient(client, handler); if (contracts != null) { for (Contract contract : contracts) { List<Policy> policies = contract.getPolicies(); decryptPolicies(client.getOrganizationId(), client.getClientId(), client.getVersion(), EntityType.ClientApp, policies); } } }
/** * Ensures that the api referenced by the Contract at the head of * the iterator actually exists (is published). * @param contract * @param apiMap */ private void validateContract(final Contract contract) throws RegistrationException { final String id = getApiId(contract); try { Get get = new Get.Builder(getIndexName(), id).type("api").build(); //$NON-NLS-1$ JestResult result = getClient().execute(get); if (!result.isSucceeded()) { String apiId = contract.getApiId(); String orgId = contract.getApiOrgId(); throw new ApiNotFoundException(Messages.i18n.format("ESRegistry.ApiNotFoundInOrg", apiId, orgId)); //$NON-NLS-1$ } } catch (IOException e) { throw new RegistrationException(Messages.i18n.format("ESRegistry.ErrorValidatingClient"), e); //$NON-NLS-1$ } }
contracts = new ArrayList<Contract>(); contracts.add(new Contract("name")); ArrayAdapter<Contract> adapter = new ContractAdapter(this,android.R.layout.simple_list_item_1, contracts);
Contract contract = new Contract(); contract.setPlan(contractBean.getPlanId()); contract.setApiId(contractBean.getApiId()); contract.setApiOrgId(contractBean.getApiOrganizationId()); contract.setApiVersion(contractBean.getApiVersion()); contract.getPolicies().addAll(aggregateContractPolicies(contractBean)); contracts.add(contract); Map<String, IGatewayLink> links = new HashMap<>(); for (Contract contract : client.getContracts()) { ApiVersionBean svb = storage.getApiVersion(contract.getApiOrgId(), contract.getApiId(), contract.getApiVersion()); Set<ApiGatewayBean> gateways = svb.getGateways(); if (gateways == null) {
} else { Optional<Contract> matchedOpt = client.getContracts().stream() .filter(contract -> contract.matches(apiOrganizationId, apiId, apiVersion)) .findFirst(); ApiContract apiContract = new ApiContract(api, client, contract.getPlan(), contract.getPolicies()); handler.handle(AsyncResultImpl.create(apiContract)); } else {
/** * @see io.apiman.gateway.engine.IRegistry#registerClient(io.apiman.gateway.engine.beans.Client, io.apiman.gateway.engine.async.IAsyncResultHandler) */ @Override public void registerClient(Client client, IAsyncResultHandler<Void> handler) { Set<Contract> contracts = client.getContracts(); if (contracts != null) { for (Contract contract : contracts) { List<Policy> policies = contract.getPolicies(); encryptPolicies(client.getOrganizationId(), client.getClientId(), client.getVersion(), EntityType.ClientApp, policies); } } delegate.registerClient(client, handler); if (contracts != null) { for (Contract contract : contracts) { List<Policy> policies = contract.getPolicies(); decryptPolicies(client.getOrganizationId(), client.getClientId(), client.getVersion(), EntityType.ClientApp, policies); } } }
/** * Ensures that the api referenced by the Contract at the head of * the iterator actually exists (is published). * @param contract * @param apiMap */ private void validateContract(final Contract contract) throws RegistrationException { final String id = getApiId(contract); try { Get get = new Get.Builder(getIndexName(), id).type("api").build(); //$NON-NLS-1$ JestResult result = getClient().execute(get); if (!result.isSucceeded()) { String apiId = contract.getApiId(); String orgId = contract.getApiOrgId(); throw new ApiNotFoundException(Messages.i18n.format("ESRegistry.ApiNotFoundInOrg", apiId, orgId)); //$NON-NLS-1$ } } catch (IOException e) { throw new RegistrationException(Messages.i18n.format("ESRegistry.ErrorValidatingClient"), e); //$NON-NLS-1$ } }
public class ContractTestActivity extends Activity { private List<Contract> contracts = new ArrayList<Contract>(); public final String TAG = "ContractTest"; //public Contract newContract = new Contract(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView list; list = (ListView)findViewById(R.id.mylist); ArrayAdapter<Contract> adapter = new ContractAdapter(this, android.R.layout.simple_list_item_1, myContracts()); list.setAdapter(adapter); } private List<Contract> myContracts(){ List<Contract> list = new ArrayList<Contract>(); list.add(new Contract("Friend1")); list.add(new Contract("Friend2")); list.add(new Contract("Friend3")); list.add(new Contract("Friend4")); return list; } }
Contract contract = new Contract(); contract.setPlan(contractBean.getPlanId()); contract.setApiId(contractBean.getApiId()); contract.setApiOrgId(contractBean.getApiOrganizationId()); contract.setApiVersion(contractBean.getApiVersion()); contract.getPolicies().addAll(aggregateContractPolicies(contractBean)); contracts.add(contract); Map<String, IGatewayLink> links = new HashMap<>(); for (Contract contract : client.getContracts()) { ApiVersionBean svb = storage.getApiVersion(contract.getApiOrgId(), contract.getApiId(), contract.getApiVersion()); Set<ApiGatewayBean> gateways = svb.getGateways(); if (gateways == null) {
/** * Generates a valid document ID for a api referenced by a contract, used to * retrieve the api from ES. * @param contract */ private String getApiId(Contract contract) { return getApiId(contract.getApiOrgId(), contract.getApiId(), contract.getApiVersion()); }
if (contract.matches(apiOrganizationId, apiId, apiVersion)) { matchedContract = contract; break; ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract));
@Override public void getClient(String organizationId, String clientId, String clientVersion, IAsyncResultHandler<Client> handler) { delegate.getClient(organizationId, clientId, clientVersion, result -> { if (result.isSuccess()) { Client client = result.getResult(); if (client != null) { for (Contract contract : client.getContracts()) { decryptPolicies(client.getOrganizationId(), client.getClientId(), client.getVersion(), EntityType.ClientApp, contract.getPolicies()); } } } handler.handle(result); }); }
applications.put(getApplicationKey(application), application); for (Contract contract : application.getContracts()) { String svcKey = getServiceKey(contract.getServiceOrgId(), contract.getServiceId(), contract.getServiceVersion()); ServiceContract sc = new ServiceContract(contract.getApiKey(), services.get(svcKey), application, contract.getPolicies()); contracts.put(contract.getApiKey(), sc);
public class ContractTestActivity extends Activity { private List<Contract> contracts = new ArrayList<Contract>(); public final String TAG = "ContractTest"; //public Contract newContract = new Contract(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView list; list = (ListView)findViewById(R.id.mylist); ArrayAdapter<Contract> adapter = new ContractAdapter(this, android.R.layout.simple_list_item_1, myContracts()); list.setAdapter(adapter); } private List<Contract> myContracts(){ List<Contract> list = new ArrayList<Contract>(); list.add(new Contract("Friend1")); return list; }