Examples of Resolver


Examples of org.apache.felix.bundlerepository.Resolver

   * Return null if deployment is not possible.
   *
   */
  private Component deploy(OBRManager context) {
   
    Resolver resolver = manager.getResolver(context);

    /*
     * Try to perform requirement resolution and deployment. This may need to be retried several times
     * as other installations can be ongoing in parallel, and the resource requirement resolution must
     * be recalculated in the new resource context.
     */
    boolean deployed = false;
    boolean retrying = true;
   
    do {

      /*
       * calculate the transitive dependencies to satisfy requirements of the resource being deployed
       */
      resolver.add(this.resource);
      resolver.resolve();

      /*
       * If we can not resolve the resource requirements, just give up
       */
      if (resolver.getUnsatisfiedRequirements().length > 0) {
       
        retrying = false;
        deployed = false;
       
        continue;
      }

      /*
       * Perform the actual installation,
       */
      try {

        resolver.deploy(Resolver.START+Resolver.NO_OPTIONAL_RESOURCES);

        retrying = false;
        deployed = true;
       
        /*
         * Verify that all required resources were actually installed. A resource may not be installed if a
         * concurrent deployment has installed a conflicting version.
         *
         * In this case there is not much we can do, we just give up the deployment
         */
        List<Resource> deployedResources = new ArrayList<Resource>();
       
        deployedResources.addAll(Arrays.asList(resolver.getAddedResources()));
        deployedResources.addAll(Arrays.asList(resolver.getRequiredResources()));
       

        for (Resource deployedResource : deployedResources) {
          if (getBundle(deployedResource) == null)
            deployed = false;
        }

       
      }
     
      /*
       * Concurrent bundle deployment may interfere with installation and change the state of the local repository,
       * which produces an IllegalStateException of the resolver.
       *
       * We can recover by trying again the resolution and installation process, using the new local bundles.
       *
       */
      catch (IllegalStateException e) {
       
        logger.debug("OBR changed state. Resolving again " + this.resource.getSymbolicName());
       
        retrying = true;
        deployed = false;
      }

      /*
       * If we can not recover from the error, just give up
       *
       */
      catch (Exception e) {
       
        logger.error ("Deployment of " + component + " from "+resource+" failed.",e) ;
       
        retrying = false;
        deployed = false;
      }

    } while (retrying);

   
    /*
     * Log deployment result
     */

    logger.debug("Component: " + component+ (deployed ? " successfully " : " not ") + "deployed");
    logger.debug("  repository: " + repository);
   
    List<Resource> deployedResources = new ArrayList<Resource>();
   
    deployedResources.addAll(Arrays.asList(resolver.getAddedResources()));
    deployedResources.addAll(Arrays.asList(resolver.getRequiredResources()));
   
    for (Resource deployedResource : deployedResources) {
      logger.debug("  required resource: " + deployedResource+(getBundle(deployedResource) != null ? " (installed) ":" (not installed) "));
      logger.debug("    location: " + deployedResource.getURI());
     
      Reason[] reasons = resolver.getReason(deployedResource);
      for(Reason reason : reasons != null ? reasons : new Reason[0]) {
        logger.debug("    satisfies requirement: " + reason.getRequirement()+" of "+reason.getResource());
      }
    }

    for (Reason missingRequirement : resolver.getUnsatisfiedRequirements()) {
      logger.error("  unsatisfied requirement: " + missingRequirement.getRequirement());
    }

    return deployed ? CST.componentBroker.getWaitComponent(component.getName(), 10*1000 /* milliseconds*/) : null;
  }
View Full Code Here

Examples of org.apache.felix.bundlerepository.Resolver

    {
        URL url = getClass().getResource("/repo_for_resolvertest.xml");
        RepositoryAdminImpl repoAdmin = createRepositoryAdmin(StaxParser.class);
        RepositoryImpl repo = (RepositoryImpl) repoAdmin.addRepository(url);

        Resolver resolver = repoAdmin.resolver();

        Resource[] discoverResources = repoAdmin.discoverResources("(symbolicname=org.apache.felix.test*)");
        assertNotNull(discoverResources);
        assertEquals(1, discoverResources.length);

        resolver.add(discoverResources[0]);
        assertTrue(resolver.resolve());
    }
View Full Code Here

Examples of org.apache.felix.bundlerepository.Resolver

    {
        URL url = getClass().getResource("/repo_for_resolvertest.xml");
        RepositoryAdminImpl repoAdmin = createRepositoryAdmin(PullParser.class);
        RepositoryImpl repo = (RepositoryImpl) repoAdmin.addRepository(url);

        Resolver resolver = repoAdmin.resolver();

        Resource[] discoverResources = repoAdmin.discoverResources("(symbolicname=org.apache.felix.test*)");
        assertNotNull(discoverResources);
        assertEquals(1, discoverResources.length);

        resolver.add(discoverResources[0]);
        assertTrue(resolver.resolve());
    }
View Full Code Here

Examples of org.apache.felix.bundlerepository.Resolver

        URL url = getClass().getResource("/repo_for_resolvertest.xml");
        RepositoryAdminImpl repoAdmin = createRepositoryAdmin();
        RepositoryImpl repo = (RepositoryImpl) repoAdmin.addRepository(url);

        Resolver resolver = repoAdmin.resolver();

        Resource[] discoverResources = repoAdmin.discoverResources("(symbolicname=org.apache.felix.test*)");
        assertNotNull(discoverResources);
        assertEquals(1, discoverResources.length);

        resolver.add(discoverResources[0]);
        assertTrue(resolver.resolve());
    }
View Full Code Here

Examples of org.apache.felix.bundlerepository.Resolver

    public void testResolveReq() throws Exception
    {
        RepositoryAdminImpl repoAdmin = createRepositoryAdmin();
        repoAdmin.addRepository(getClass().getResource("/repo_for_resolvertest.xml"));

        Resolver resolver = repoAdmin.resolver();
        resolver.add(repoAdmin.getHelper().requirement("package", "(package=org.apache.felix.test.osgi)"));
        assertTrue(resolver.resolve());
    }
View Full Code Here

Examples of org.apache.felix.bundlerepository.Resolver

    public void testResolveInterrupt() throws Exception
    {
        RepositoryAdminImpl repoAdmin = createRepositoryAdmin();
        repoAdmin.addRepository(getClass().getResource("/repo_for_resolvertest.xml"));

        Resolver resolver = repoAdmin.resolver();
        resolver.add(repoAdmin.getHelper().requirement("package", "(package=org.apache.felix.test.osgi)"));

        Thread.currentThread().interrupt();
        try
        {
            resolver.resolve();
            fail("An excepiton should have been thrown");
        }
        catch (org.apache.felix.bundlerepository.InterruptedResolutionException e)
        {
            // ok
View Full Code Here

Examples of org.apache.felix.bundlerepository.Resolver

    public void testOptionalResolution() throws Exception
    {
        RepositoryAdminImpl repoAdmin = createRepositoryAdmin();
        repoAdmin.addRepository(getClass().getResource("/repo_for_optional_resources.xml"));

        Resolver resolver = repoAdmin.resolver();
        resolver.add(repoAdmin.getHelper().requirement("bundle", "(symbolicname=res1)"));

        assertTrue(resolver.resolve());
        assertEquals(1, resolver.getRequiredResources().length);
        assertEquals(2, resolver.getOptionalResources().length);
    }
View Full Code Here

Examples of org.apache.felix.bundlerepository.Resolver

    public void testMandatoryPackages() throws Exception
    {
        RepositoryAdminImpl repoAdmin = createRepositoryAdmin();
        repoAdmin.addRepository(getClass().getResource("/repo_for_mandatory.xml"));

        Resolver resolver = repoAdmin.resolver();
        resolver.add(repoAdmin.getHelper().requirement("bundle", "(symbolicname=res2)"));
        assertFalse(resolver.resolve());

        resolver = repoAdmin.resolver();
        resolver.add(repoAdmin.getHelper().requirement("bundle", "(symbolicname=res3)"));
        assertTrue(resolver.resolve());

        resolver = repoAdmin.resolver();
        resolver.add(repoAdmin.getHelper().requirement("bundle", "(symbolicname=res4)"));
        assertFalse(resolver.resolve());

    }
View Full Code Here

Examples of org.apache.felix.framework.resolver.Resolver

        for (VerifierBundleRevision rev : m_bundles.values()) {
            state.addRevision(rev);
        }

        Resolver resolver = new ResolverImpl(m_log);

        try {
            Map<BundleRevision, List<ResolverWire>> result = resolver.resolve(
                state,
                (mandatory == null) ? new HashSet<BundleRevision>() : mandatory,
                (optional == null) ? new HashSet<BundleRevision>() : optional,
                (ondemandFragments == null) ? new HashSet<BundleRevision>() : ondemandFragments);
View Full Code Here

Examples of org.apache.hadoop.gateway.util.urltemplate.Resolver

  public void testResolve() throws Exception {

    UrlRewriteEnvironment environment = EasyMock.createNiceMock( UrlRewriteEnvironment.class );
    EasyMock.expect( environment.resolve( "test-env-param-name" ) ).andReturn( Arrays.asList( "test-env-param-value" ) ).anyTimes();

    Resolver resolver = EasyMock.createNiceMock( Resolver.class );
    EasyMock.expect( resolver.resolve( "test-ctx-param-name" ) ).andReturn( Arrays.asList( "test-ctx-param-value" ) );

    EasyMock.replay( environment, resolver );

    Map<String,UrlRewriteFunctionProcessor> functions = new HashMap<String,UrlRewriteFunctionProcessor>();
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.