Examples of ServiceProvider


Examples of org.platformlayer.xaas.services.ServiceProvider

    }
  }

  protected ModelClass<?> getModelClass(ServiceType serviceType, ItemType itemType)
      throws PlatformLayerClientException {
    ServiceProvider serviceProvider = getServiceProvider(serviceType);
    if (serviceProvider == null) {
      log.warn("Unknown serviceType: " + serviceType);
      throw new PlatformLayerClientException("Service type not recognized: " + serviceType.getKey());
    }
    ModelClass<?> modelClass = serviceProvider.getModels().find(itemType);
    if (modelClass == null) {
      log.warn("Unknown itemtype: " + itemType);
      throw new PlatformLayerClientException("Item type not recognized: " + itemType.getKey());
    }
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

  private List<ModelClass<?>> findModelsProviding(Class<?> serviceClass) throws OpsException {
    List<ModelClass<?>> models = Lists.newArrayList();

    for (ServiceInfo service : serviceProviderDictionary.getAllServices()) {
      ServiceType serviceType = new ServiceType(service.getServiceType());
      ServiceProvider serviceProvider = serviceProviderDictionary.getServiceProvider(serviceType);
      for (ModelClass<?> model : serviceProvider.getModels().all()) {
        Class<?> controllerClass = serviceProvider.getControllerClass(model.getJavaClass());
        if (serviceClass.isAssignableFrom(controllerClass)) {
          models.add(model);
        }
      }
    }
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

      final ProjectAuthorization project = activeJob.getProjectAuthorization();

      final OpsContext opsContext = opsContextBuilder.buildOpsContext(activeJob);

      final ServiceType serviceType = activeJob.getServiceType();
      final ServiceProvider serviceProvider = opsSystem.getServiceProvider(serviceType);

      try {
        return OpsContext.runInContext(opsContext, new CheckedCallable<Object, Exception>() {
          @Override
          public Object call() throws Exception {
            log.info("Starting job");
            activeJob.setState(JobState.RUNNING);

            ItemBase item;
            ManagedItemRepository repository = opsSystem.getManagedItemRepository();
            try {
              boolean fetchTags = true;
              item = repository.getManagedItem(targetItemKey, fetchTags, SecretProvider.from(project));
            } catch (RepositoryException e) {
              throw new OpsException("Error reading item from repository", e);
            }

            if (item == null) {
              throw new WebApplicationException(404);
            }

            List<Object> scopeItems = Lists.newArrayList();

            addActionScopeItems(action, item, scopeItems);

            Object controller = serviceProvider.getController(item);

            scopeItems.add(item);
            scopeItems.add(action);

            BindingScope scope = BindingScope.push(scopeItems);
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

  public <T extends ItemBase> List<ModelClass<? extends T>> getModelSubclasses(Class<T> parent) {
    List<ModelClass<? extends T>> modelClasses = Lists.newArrayList();

    for (ServiceInfo serviceInfo : serviceProviderDictionary.getAllServices()) {
      ServiceType serviceType = new ServiceType(serviceInfo.serviceType);
      ServiceProvider serviceProvider = serviceProviderDictionary.getServiceProvider(serviceType);

      for (ModelClass<?> modelClass : serviceProvider.getModels().all()) {
        Class<?> javaClass = modelClass.getJavaClass();
        if (parent.isAssignableFrom(javaClass)) {
          modelClasses.add((ModelClass<? extends T>) modelClass);
        }
      }
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

    ModelClass<?> modelClass = serviceProviderDictionary.getModelClass(itemType);
    return modelClass.getServiceType();
  }

  public ModelClass<?> getModelClass(String namespaceUri, String nodeName) {
    ServiceProvider serviceProvider = serviceProviderDictionary.getServiceProviderForNamespace(namespaceUri);

    if (serviceProvider == null) {
      throw new IllegalArgumentException("Unknown namespace: " + namespaceUri);
    }

    ModelClass<?> modelClass = null;
    for (ModelClass<?> modelClassCandidate : serviceProvider.getModels().all()) {
      if (nodeName.equals(modelClassCandidate.getXmlElementName())) {
        modelClass = modelClassCandidate;
        break;
      }
    }
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

        ServiceProviderDictionary.class);

    ServiceType serviceType = platformLayerKey.getServiceType();
    ItemType itemType = platformLayerKey.getItemType();

    ServiceProvider serviceProvider = serviceProviderDictionary.getServiceProvider(serviceType);
    if (serviceProvider == null) {
      throw new IllegalArgumentException();
    }
    ModelClass<?> modelClass = serviceProvider.getModelClass(itemType);
    if (modelClass == null) {
      throw new IllegalArgumentException();
    }
    return modelClass;
  }
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

public class MetricsResource extends XaasResourceBase {
  @GET
  @Produces({ XML, JSON })
  public MetricInfoCollection listMetrics() throws OpsException, RepositoryException {
    final ItemBase managedItem = getManagedItem();
    final ServiceProvider serviceProvider = getServiceProvider();

    OpsContextBuilder opsContextBuilder = objectInjector.getInstance(OpsContextBuilder.class);

    final OpsContext opsContext = opsContextBuilder.buildTemporaryOpsContext(getServiceType(),
        getProjectAuthorization());

    return OpsContext.runInContext(opsContext, new CheckedCallable<MetricInfoCollection, Exception>() {
      @Override
      public MetricInfoCollection call() throws Exception {
        BindingScope bindingScope = BindingScope.push(managedItem, managedItem);
        try {
          Object controller = serviceProvider.getController(managedItem);
          MetricConfig metricConfig = opsContext.getMetricInfo(controller);

          return MetricCollector.toMetricInfo(metricConfig);
        } finally {
          bindingScope.pop();
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

  @POST
  @Produces({ XML, JSON })
  public MetricDataSource getMetrics(final MetricQuery query) throws RepositoryException, OpsException {
    final ItemBase managedItem = getManagedItem();
    final ServiceProvider serviceProvider = getServiceProvider();

    OpsContextBuilder opsContextBuilder = objectInjector.getInstance(OpsContextBuilder.class);

    final OpsContext opsContext = opsContextBuilder.buildTemporaryOpsContext(getServiceType(),
        getProjectAuthorization());

    return OpsContext.runInContext(opsContext, new CheckedCallable<MetricDataSource, Exception>() {
      @Override
      public MetricDataSource call() throws Exception {
        BindingScope bindingScope = BindingScope.push(managedItem, managedItem);
        try {
          MetricDataSource metrics = serviceProvider.getMetricValues(managedItem, query);
          return metrics;
        } finally {
          bindingScope.pop();
        }
      }
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

  public <T> ServiceAuthorization createService(final ServiceAuthorization authorization) throws OpsException,
      RepositoryException {
    ServiceType serviceType = getServiceType();
    authorization.serviceType = serviceType.getKey();

    final ServiceProvider serviceProvider = opsSystem.getServiceProvider(serviceType);
    if (serviceProvider == null) {
      log.warn("Unknown serviceProvider: " + serviceType);
      throw new WebApplicationException(404);
    }
View Full Code Here

Examples of org.platformlayer.xaas.services.ServiceProvider

    }
    final Class<T> javaClass = modelClass.getJavaClass();

    // JaxbHelper jaxbHelper = JaxbHelper.get(javaClass);

    final ServiceProvider serviceProvider = modelClass.getProvider();

    String id = item.getId();

    if (Strings.isNullOrEmpty(id)) {
      if (generateUniqueName) {
        id = serviceProvider.buildItemId(modelClass, item);
      } else {
        // TODO: We could auto-generate this, but it seems better to require it,
        // otherwise we end up with lots of randomly named items
        throw new OpsException("Must specify item id");
        // id = UUID.randomUUID().toString();
        // item.setId(id);
      }
    }

    ProjectId project = getProjectId(auth);
    PlatformLayerKey itemKey = new PlatformLayerKey(null, project, modelClass.getServiceType(),
        modelClass.getItemType(), new ManagedItemId(id));
    item.setKey(itemKey);

    item.state = ManagedItemState.CREATION_REQUESTED;

    final OpsContext opsContext = buildTemporaryOpsContext(modelClass.getServiceType(), auth);

    T created = OpsContext.runInContext(opsContext, new CheckedCallable<T, Exception>() {
      @Override
      public T call() throws Exception {
        PlatformLayerKey itemKey = item.getKey();

        T existing;

        SecretProvider secretProvider = SecretProvider.from(auth);

        if (uniqueTagKey != null) {
          boolean fetchTags = true;
          Tag uniqueTag = null;
          for (Tag tag : item.getTags()) {
            if (Objects.equal(tag.getKey(), uniqueTagKey)) {
              uniqueTag = tag;
            }
          }
          if (uniqueTag == null) {
            throw new IllegalArgumentException("Could not find unique tag");
          }
          Filter filter = TagFilter.byTag(uniqueTag);
          filter = StateFilter.excludeDeleted(filter);

          existing = null;
          List<T> existingList = repository.findAll(modelClass, itemKey.getProject(), fetchTags,
              secretProvider, filter);
          if (!existingList.isEmpty()) {
            if (existingList.size() != 1) {
              throw new IllegalArgumentException("Found multiple items with unique tag");
            }
            existing = existingList.get(0);
          }

          if (existing == null) {
            itemKey = findUniqueId(item, itemKey, secretProvider);
          }
        } else {
          if (generateUniqueName) {
            itemKey = findUniqueId(item, itemKey, secretProvider);
          }

          try {
            boolean fetchTags = true;
            existing = Casts.checkedCast(repository.getManagedItem(itemKey, fetchTags, secretProvider),
                javaClass);
          } catch (RepositoryException e) {
            throw new OpsException("Error fetching item from database", e);
          }
        }

        if (!canExist && existing != null) {
          throw new OpsException("Item already exists");
        }

        serviceProvider.beforeCreateItem(item);

        ProjectId project = getProjectId(auth);
        T newItem;
        try {
          if (existing == null) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.