Package org.apache.felix.bundlerepository

Examples of org.apache.felix.bundlerepository.Resolver


        Repository[] repos = repositoryAdmin.listRepositories();
        for (Repository r : repos) {
            resolveRepos.add(r);
        }

        Resolver obrResolver = repositoryAdmin.resolver(resolveRepos.toArray(new Repository[resolveRepos.size()]));
        // add a resource describing the requirements of the application metadata.
        obrResolver.add(createApplicationResource(helper, appName, appVersion, appContent));
       
        log.debug("Resolving application resources");
        boolean resolved = obrResolver.resolve();
        log.debug("Resolution result: {}", resolved);
       
        if (resolved) {
            Set<BundleInfo> fragmentResult = null;
            if (resolveFragments) {
                fragmentResult = resolveFragments(obrResolver, resolveRepos, appName);
            }

            Set<BundleInfo> result = new HashSet<BundleInfo>();
            toBundleInfo(result, obrResolver.getRequiredResources(), false);
            if (returnOptionalResources) {
                toBundleInfo(result, obrResolver.getOptionalResources(), true);
            }
            if (fragmentResult != null) {
                result.addAll(fragmentResult);
            }                       
            return result;
View Full Code Here


                }
            }
        }
       
        if (!requiredFragments.isEmpty() || !optionalFragments.isEmpty()) {
            Resolver fragmentResolver = repositoryAdmin.resolver(resolveRepos.toArray(new Repository[resolveRepos.size()]));
            for (Resource fragment : requiredFragments) {
                fragmentResolver.add(fragment);
            }
            for (Resource fragment : optionalFragments) {
                fragmentResolver.add(fragment);
            }
           
            log.debug("Resolving fragment resources, required={}, optional={}", requiredFragments, optionalFragments);
            boolean resolved = fragmentResolver.resolve();
            log.debug("Resolution result: {}", resolved);
            if (resolved) {
                Set<BundleInfo> result = new HashSet<BundleInfo>();
                toBundleInfo(result, requiredFragments, false);
                toBundleInfo(result, fragmentResolver.getRequiredResources(), false);
                if (returnOptionalResources) {
                    toBundleInfo(result, optionalFragments, true);
                    toBundleInfo(result, fragmentResolver.getOptionalResources(), true);
                }
                return result;
            } else {
                throw createResolveException(appName, fragmentResolver);
            }
View Full Code Here

            Resource[] resources = getAllResources(repositoryAdmin);
            for (Resource resource : resources) {
                resourceMap.put(resource.getSymbolicName() + "/" + resource.getVersion(), resource);
            }
                   
            Resolver resolver = repositoryAdmin.resolver();
                   
            for (String resourceName : selectedResources) {
                Resource resource = resourceMap.get(resourceName);
                if (resource == null) {
                    throw new IllegalArgumentException("Resource not found: " + resourceName);
                }
                resolver.add(resource);
            }
           
            request.setAttribute("resolved", resolver.resolve());
            request.setAttribute("resolver", resolver);
            String resolverId = String.valueOf(resolver.hashCode());
            request.setAttribute("resolverId", resolverId);
            resolverMap.put(resolverId, resolver);
            resolveView.include(request, response);
        } finally {
            if (reference != null) {
View Full Code Here

    }       

    private void deployResources(RenderRequest request, RenderResponse response) throws Exception {
        String resolverId = request.getParameter("resolverId");

        Resolver resolver = resolverMap.get(resolverId);
       
        try {
            resolver.deploy(Resolver.START);
            addInfoMessage(request, getLocalizedString(request, "consolebase.obrmanager.info.deploy"));
        } catch (Exception e) {
            addErrorMessage(request, getLocalizedString(request, "consolebase.obrmanager.err.deploy"), e.getMessage());
            logger.error("Exception", e);
        }
View Full Code Here

      throws ResolverException {
     log.debug(LOG_ENTRY, "resolve", new Object[]{appName, appVersion,byValueBundles, inputs});
    Collection<ImportedBundle> importedBundles = toImportedBundle(inputs);
    Collection<ModelledResource> toReturn = new ArrayList<ModelledResource>();
   
    Resolver obrResolver = getConfiguredObrResolver(appName, appVersion, byValueBundles, platformRepository);
    // add a resource describing the requirements of the application metadata.
    obrResolver.add(createApplicationResource( appName, appVersion, importedBundles));
   
    if (obrResolver.resolve()) {
     
      List<Resource> requiredResources = retrieveRequiredResources(obrResolver);

      if (requiredResources == null) {
        log.debug("resolver.getRequiredResources() returned null");
      } else {

        for (Resource r : requiredResources) {
          NameValueMap<String, String> attribs = new NameValueMap<String, String>();
          attribs.put(Constants.VERSION_ATTRIBUTE, "[" + r.getVersion() + ',' + r.getVersion()
              + "]");
          ModelledResource modelledResourceForThisMatch = null;
          // OBR may give us back the global capabilities. Typically these do not have a bundle symbolic name - they're a
          // list of packages available in the target runtime environment. If the resource has no symbolic name, we can ignore it
          if (r.getSymbolicName() != null) {
            try {
              modelledResourceForThisMatch = new ModelledBundleResource (r, modellingManager, modellingHelper);
            } catch (InvalidAttributeException iax) {
             
              ResolverException re = new ResolverException("Internal error occurred: " + iax.toString());
              log.debug(LOG_EXIT, "resolve", re);
             
              throw re;
            }
            toReturn.add(modelledResourceForThisMatch);
          }
        }
      }
      log.debug(LOG_EXIT, "resolve", toReturn);
      return toReturn;
    } else {
      Reason[] reasons = obrResolver.getUnsatisfiedRequirements();
      // let's refine the list by removing the indirect unsatisfied bundles that are caused by unsatisfied packages or other bundles
      Map<String,Set<String>> refinedReqs = refineUnsatisfiedRequirements(obrResolver, reasons);
      StringBuffer reqList = new StringBuffer();
      List<String> unsatisfiedRequirements = new LinkedList<String>();
View Full Code Here

    // add user-defined repositories
    Repository[] repos = repositoryAdmin.listRepositories();
    for (Repository r : repos) {
      resolveRepos.add(r);     
    }    
    Resolver obrResolver = repositoryAdmin.resolver(resolveRepos.toArray(new Repository[resolveRepos.size()]));
    addPlatformRepositories (obrResolver, appName, platformRepository);
    log.debug(LOG_EXIT, "getConfiguredObrResolver", obrResolver);
    return obrResolver;
  }
View Full Code Here

      for (ResolveConstraint con: constraints) {
        contents.add(ManifestHeaderProcessor.parseContent(con.getBundleName(), con.getVersionRange().toString()));
      }
    }

    Resolver obrResolver = getConfiguredObrResolver(appName, appVersion.toString(), toModelledResource(app.getBundleInfo()));
    // add a resource describing the requirements of the application metadata.
    obrResolver.add(createApplicationResource( appName, appVersion, contents));
    if (obrResolver.resolve()) {
     Set<BundleInfo> result = new HashSet<BundleInfo>();
      List<Resource> requiredResources = retrieveRequiredResources(obrResolver);
     
      for (Resource resource: requiredResources) {
        BundleInfo bundleInfo = toBundleInfo(resource, false);
        result.add(bundleInfo);
      }
      if (returnOptionalResources) {
        for (Resource resource: obrResolver.getOptionalResources()) {
          BundleInfo bundleInfo = toBundleInfo(resource, true);
          result.add(bundleInfo);
        }
      }
           
      return result;
    } else {
      Reason[] reasons = obrResolver.getUnsatisfiedRequirements();
      //refine the list by removing the indirect unsatisfied bundles that are caused by unsatisfied packages or other bundles
      Map<String,Set<String>> refinedReqs = refineUnsatisfiedRequirements(obrResolver, reasons);
      StringBuffer reqList = new StringBuffer();
      List<String> unsatisfiedRequirements = new LinkedList<String>();
View Full Code Here

      throws ResolverException {
     
    log.debug(LOG_ENTRY, "resolve", new Object[]{appName, appVersion,byValueBundles, inputs});
    Collection<ImportedBundle> importedBundles = toImportedBundle(inputs);
   
    Resolver obrResolver = getConfiguredObrResolver(appName, appVersion, byValueBundles, false);
    // add a resource describing the requirements of the application metadata.
    obrResolver.add(createApplicationResource( appName, appVersion, importedBundles));
   
    log.debug(LOG_EXIT, "resolve");
    return doResolve(obrResolver, appName);   
  }
View Full Code Here

          Collection<Content> inputs) throws ResolverException {
     
      log.debug(LOG_ENTRY, "resolve", new Object[]{appName, appVersion,byValueBundles, inputs});
      Collection<ImportedBundle> importedBundles = toImportedBundle(inputs);
     
      Resolver obrResolver = getConfiguredObrResolver(appName, appVersion, byValueBundles, true);
      // add a resource describing the requirements of the application metadata.
      obrResolver.add(createApplicationResource( appName, appVersion, importedBundles));
     
      log.debug(LOG_EXIT, "resolve");
      return doResolve(obrResolver, appName);  
 
View Full Code Here

        for (Repository r : repos) {
          resolveRepos.add(r);     
        }    
    }

    Resolver obrResolver = repositoryAdmin.resolver(resolveRepos.toArray(new Repository[resolveRepos.size()]));
    addPlatformRepositories (obrResolver, appName, platformRepository);
    log.debug(LOG_EXIT, "getConfiguredObrResolver", obrResolver);
    return obrResolver;
  }
View Full Code Here

TOP

Related Classes of org.apache.felix.bundlerepository.Resolver

Copyright © 2018 www.massapicom. 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.