Package org.apache.aries.blueprint.di

Examples of org.apache.aries.blueprint.di.Repository


            getSatisfiableDependenciesMap(true);
            trackServiceReferences();       
        }
    }
    private void updateUninstantiatedRecipes() {
        Repository tmpRepo = new RecipeBuilder(this, tempRecipeIdSpace).createRepository();
       
        LOGGER.debug("Updating blueprint repository");
       
        for (String name : repository.getNames()) {
            if (repository.getInstance(name) == null) {
                LOGGER.debug("Removing uninstantiated recipe {}", new Object[] { name });
                repository.removeRecipe(name);
            } else {
                LOGGER.debug("Recipe {} is already instantiated", new Object[] { name });
            }
        }
       
        for (String name : tmpRepo.getNames()) {
            if (repository.getInstance(name) == null) {
                LOGGER.debug("Adding new recipe {}", new Object[] { name });
                Recipe r = tmpRepo.getRecipe(name);
                if (r != null) {
                    repository.putRecipe(name, r);
                }
            } else {
                LOGGER.debug("Recipe {} is already instantiated and cannot be updated", new Object[] { name });
View Full Code Here


        }
    }
   
    private Object createRecipe(Recipe recipe) {
        String name = recipe.getName();
        Repository repo = blueprintContainer.getRepository();
        if (repo.getRecipe(name) != recipe) {
            repo.putRecipe(name, recipe);
        }
        return repo.create(name);
    }
View Full Code Here

public class WiringTest extends AbstractBlueprintTest {

    public void testWiring() throws Exception {
        ComponentDefinitionRegistryImpl registry = parse("/test-wiring.xml");
        Repository repository = new TestBlueprintContainer(registry).getRepository();
       
        Object obj1 = repository.create("pojoA");
        assertNotNull(obj1);
        assertTrue(obj1 instanceof PojoA);
        PojoA pojoa = (PojoA) obj1;
        // test singleton scope
        assertTrue(obj1 == repository.create("pojoA"));
       
        Object obj2 = repository.create("pojoB");
        assertNotNull(obj2);
        assertTrue(obj2 instanceof PojoB);
        PojoB pojob = (PojoB) obj2;
       
        assertNotNull(pojoa.getPojob());
        assertNotNull(pojoa.getPojob().getUri());
       
        assertNotNull(pojoa.getList());
        assertEquals("list value", pojoa.getList().get(0));
        assertEquals(new Integer(55), pojoa.getList().get(2));
        assertEquals(URI.create("http://geronimo.apache.org"), pojoa.getList().get(3));
        Object c0 = pojoa.getList().get(1);
        Object c1 = pojoa.getList().get(4);
        assertNotNull(c0);
        assertNotNull(c1);
        assertEquals(PojoB.class, c0.getClass());
        assertEquals(PojoB.class, c1.getClass());
        assertNotSame(c0, c1);

        assertNotNull(pojoa.getArray());
        assertEquals("list value", pojoa.getArray()[0]);
        assertEquals(pojob, pojoa.getArray()[1]);
        assertEquals(new Integer(55), pojoa.getArray()[2]);
        assertEquals(URI.create("http://geronimo.apache.org"), pojoa.getArray()[3]);
       
        assertNotNull(pojoa.getSet());
        assertTrue(pojoa.getSet().contains("set value"));
        assertTrue(pojoa.getSet().contains(pojob));
        assertTrue(pojoa.getSet().contains(URI.create("http://geronimo.apache.org")));
       
        assertNotNull(pojoa.getMap());
        assertEquals("val", pojoa.getMap().get("key"));
        assertEquals(pojob, pojoa.getMap().get(pojob));     
        assertEquals(URI.create("http://geronimo.apache.org"), pojoa.getMap().get(new Integer(5)));
       
        assertNotNull(pojoa.getProps());
        assertEquals("value1", pojoa.getProps().get("key1"));
        assertEquals("value2", pojoa.getProps().get("2"));
        assertEquals("bar", pojoa.getProps().get("foo"));
       
        assertNotNull(pojoa.getNumber());
        assertEquals(new BigInteger("10"), pojoa.getNumber());
       
        assertNotNull(pojoa.getIntArray());
        assertEquals(3, pojoa.getIntArray().length);
        assertEquals(1, pojoa.getIntArray()[0]);
        assertEquals(50, pojoa.getIntArray()[1]);
        assertEquals(100, pojoa.getIntArray()[2]);
       
        assertNotNull(pojoa.getNumberArray());
        assertEquals(4, pojoa.getNumberArray().length);
        assertEquals(new Integer(1), pojoa.getNumberArray()[0]);
        assertEquals(new BigInteger("50"), pojoa.getNumberArray()[1]);
        assertEquals(new Long(100), pojoa.getNumberArray()[2]);
        assertEquals(new Integer(200), pojoa.getNumberArray()[3]);
       
        // test init-method
        assertEquals(true, pojob.getInitCalled());
       
        // test service
        Object obj3 = repository.create("service1");
        assertNotNull(obj3);
        assertTrue(obj3 instanceof ServiceRegistration);   
       
        // tests 'prototype' scope
        Object obj4 = repository.create("pojoC");
        assertNotNull(obj4);
       
        assertTrue(obj4 != repository.create("pojoC"));
       
        repository.destroy();
       
        // test destroy-method
        assertEquals(true, pojob.getDestroyCalled());
    }
View Full Code Here

        assertEquals(true, pojob.getDestroyCalled());
    }
   
    public void testSetterDisambiguation() throws Exception {
        ComponentDefinitionRegistryImpl registry = parse("/test-wiring.xml");
        Repository repository = new TestBlueprintContainer(registry).getRepository();

        AmbiguousPojo pojo = (AmbiguousPojo) repository.create("ambiguousViaInt");
        assertEquals(5, pojo.getSum());
       
        pojo = (AmbiguousPojo) repository.create("ambiguousViaList");
        assertEquals(7, pojo.getSum());
       
       
    }
View Full Code Here

       
    }
   
    public void testFieldInjection() throws Exception {
      ComponentDefinitionRegistryImpl registry = parse("/test-wiring.xml");
      Repository repository = new TestBlueprintContainer(registry).getRepository();
     
      Object fiTestBean = repository.create("FITestBean");
      assertNotNull(fiTestBean);
      assertTrue(fiTestBean instanceof FITestBean);
     
      FITestBean bean = (FITestBean) fiTestBean;
      // single field injection
      assertEquals("value", bean.getAttr());
      // prefer setter injection to field injection
      assertEquals("IS_LOWER", bean.getUpperCaseAttr());
      // support cascaded injection 'bean.name' via fields
      assertEquals("aName", bean.getBeanName());
     
      // fail if field-injection is not specified
      try {
          repository.create("FIFailureTestBean");
          Assert.fail("Expected exception");
      } catch (ComponentDefinitionException cde) {}
     
      // fail if field-injection is false
      try {
          repository.create("FIFailureTest2Bean");
          Assert.fail("Expected exception");
      } catch (ComponentDefinitionException cde) {}
    }
View Full Code Here

      } catch (ComponentDefinitionException cde) {}
    }
   
    public void testCompoundProperties() throws Exception {
        ComponentDefinitionRegistryImpl registry = parse("/test-wiring.xml");
        Repository repository = new TestBlueprintContainer(registry).getRepository();
       
        Object obj5 = repository.create("compound");
        assertNotNull(obj5);
        assertTrue(obj5 instanceof PojoB);
        PojoB pojob = (PojoB) obj5;
   
        assertEquals("hello bean property", pojob.getBean().getName());

        Object obj = repository.create("goodIdRef");
        assertNotNull(obj);
        assertTrue(obj instanceof BeanD);
        BeanD bean = (BeanD) obj;

        assertEquals("pojoA", bean.getName());
View Full Code Here

   
    public void testDependencies() throws Exception {
        CallbackTracker.clear();

        ComponentDefinitionRegistryImpl registry = parse("/test-depends-on.xml");
        Repository repository = new TestBlueprintContainer(registry).getRepository();
        Map instances = repository.createAll(Arrays.asList("c", "d", "e"));
       
        List<Callback> callback = CallbackTracker.getCallbacks();
        assertEquals(3, callback.size());
        checkInitCallback(instances.get("d"), callback.get(0));
        checkInitCallback(instances.get("c"), callback.get(1));
        checkInitCallback(instances.get("e"), callback.get(2));
               
        repository.destroy();
       
        assertEquals(6, callback.size());
        checkDestroyCallback(instances.get("e"), callback.get(3));
        checkDestroyCallback(instances.get("c"), callback.get(4));
        checkDestroyCallback(instances.get("d"), callback.get(5));
View Full Code Here

        assertEquals(obj, callback.getObject());
    }
   
    public void testConstructor() throws Exception {
        ComponentDefinitionRegistryImpl registry = parse("/test-constructor.xml");
        Repository repository = new TestBlueprintContainer(registry).getRepository();

        Object obj1 = repository.create("pojoA");
        assertNotNull(obj1);
        assertTrue(obj1 instanceof PojoA);
        PojoA pojoa = (PojoA) obj1;
       
        Object obj2 = repository.create("pojoB");
        testPojoB(obj2, URI.create("urn:myuri"), 10);
       
        assertEquals(obj2, pojoa.getPojob());
        assertEquals(new BigInteger("10"), pojoa.getNumber());
       
        Object obj3 = repository.create("pojoC");
        testPojoB(obj3, URI.create("urn:myuri-static"), 15);
       
        Object obj4 = repository.create("pojoD");
        testPojoB(obj4, URI.create("urn:myuri-static"), 15);
       
        Object obj5 = repository.create("pojoE");
        testPojoB(obj5, URI.create("urn:myuri-dynamic"), 20);
       
        Object obj6 = repository.create("multipleInt");
        testMultiple(obj6, null, 123, null);
       
        Object obj7 = repository.create("multipleInteger");
        testMultiple(obj7, null, -1, new Integer(123));
       
        Object obj8 = repository.create("multipleString");
        testMultiple(obj8, "123", -1, null);

        // TODO: check the below tests when the incoherence between TCK / spec is solved
//        try {
//            graph.create("multipleStringConvertable");
//            fail("Did not throw exception");
//        } catch (RuntimeException e) {
//            // we expect exception
//        }
       
        Object obj10 = repository.create("multipleFactory1");
        testMultiple(obj10, null, 1234, null);

        Object obj11 = repository.create("multipleFactory2");
        testMultiple(obj11, "helloCreate-boolean", -1, null);       
       
        try {
            repository.create("multipleFactoryNull");
            fail("Did not throw exception");
        } catch (RuntimeException e) {
            // we expect exception
            // TODO: check the exception string?
        }
       
        Object obj12 = repository.create("multipleFactoryTypedNull");
        testMultiple(obj12, "hello-boolean", -1, null);

        // TODO: check the below tests when the incoherence between TCK / spec is solved
//        Object obj13 = graph.create("mapConstruction");
//        Object obj14 = graph.create("propsConstruction");

        BeanF obj15 = (BeanF) repository.create("booleanWrapped");
        assertNotNull(obj15.getWrapped());
        assertEquals(false, (boolean) obj15.getWrapped());
        assertNull(obj15.getPrim());

        // TODO: check the below tests when the incoherence between TCK / spec is solved
View Full Code Here

        assertEquals(integerValue, ((Multiple)obj).getInteger());       
    }

    public void testGenerics() throws Exception {
        ComponentDefinitionRegistryImpl registry = parse("/test-generics.xml");
        Repository repository = new TestBlueprintContainer(registry).getRepository();

        List<Integer> expectedList = new ArrayList<Integer>();
        expectedList.add(new Integer(10));
        expectedList.add(new Integer(20));
        expectedList.add(new Integer(50));
       
        Set<Long> expectedSet = new HashSet<Long>();
        expectedSet.add(new Long(1000));
        expectedSet.add(new Long(2000));
        expectedSet.add(new Long(5000));
       
        Map<Short, Boolean> expectedMap = new HashMap<Short, Boolean>();
        expectedMap.put(new Short((short)1), Boolean.TRUE);
        expectedMap.put(new Short((short)2), Boolean.FALSE);
        expectedMap.put(new Short((short)5), Boolean.TRUE);
       
        Object obj;
        PojoGenerics pojo;
       
        obj = repository.create("method");
        assertTrue(obj instanceof PojoGenerics);
        pojo = (PojoGenerics) obj;
       
        assertEquals(expectedList, pojo.getList());
        assertEquals(expectedSet, pojo.getSet());
        assertEquals(expectedMap, pojo.getMap());
       
        obj = repository.create("constructorList");
        assertTrue(obj instanceof PojoGenerics);
        pojo = (PojoGenerics) obj;
       
        assertEquals(expectedList, pojo.getList());
       
        obj = repository.create("constructorSet");
        assertTrue(obj instanceof PojoGenerics);
        pojo = (PojoGenerics) obj;
       
        assertEquals(expectedSet, pojo.getSet());
       
        obj = repository.create("constructorMap");
        assertTrue(obj instanceof PojoGenerics);
        pojo = (PojoGenerics) obj;
       
        assertEquals(expectedMap, pojo.getMap());
       
        obj = repository.create("genericPojo");
        assertTrue(obj instanceof Primavera);
        assertEquals("string", ((Primavera) obj).prop);
       
        obj = repository.create("doubleGenericPojo");
        assertTrue(obj instanceof Primavera);
        assertEquals("stringToo", ((Primavera) obj).prop);
    }
View Full Code Here

        }
    }
   
    private Object createRecipe(Recipe recipe) {
        String name = recipe.getName();
        Repository repo = blueprintContainer.getRepository();
        if (repo.getRecipe(name) != recipe) {
            repo.putRecipe(name, recipe);
        }
        return repo.create(name);
    }
View Full Code Here

TOP

Related Classes of org.apache.aries.blueprint.di.Repository

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.