Package org.apache.aries.blueprint.reflect

Examples of org.apache.aries.blueprint.reflect.BeanMetadataImpl


  }
 
  @Test
  public void testNoMoreProxying_110() {
      Element e = getTestElement("contextWithProps", root_110);
      BeanMetadata input = new BeanMetadataImpl();
      Object output = sut.decorate(e, input, parserCtx);
      assertTrue(input == output);
  }
View Full Code Here


  }
 
  @Test
  public void testNonIndexedArgs_110() {
      Element e = getTestElement("withUnitArg", root_110);
      BeanMetadata input = new BeanMetadataImpl();
      Object output = sut.decorate(e, input, parserCtx);
      assertEquals("Wrong number of arguments",
          1 ,input.getArguments().size());
      assertEquals("Wrong class type", "javax.persistence.EntityManagerFactory",
          ((BeanArgument)input.getArguments().get(0)).getValueType());
      assertEquals("Wrong index", -1,
          ((BeanArgument)input.getArguments().get(0)).getIndex());
     
      ReferenceMetadata reference = (ReferenceMetadata) ((BeanArgument)input.getArguments().get(0)).getValue();
      assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
      assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name=myUnit))", reference.getFilter());
     
      Skeleton.getSkeleton(manager).assertSkeletonNotCalled();
      assertTrue(registeredComponents.isEmpty());
     
      e = getTestElement("withContextArg", root_110);
      input = new BeanMetadataImpl();
      output = sut.decorate(e, input, parserCtx);
     
      assertEquals("Wrong number of arguments",
          1 ,input.getArguments().size());
      assertEquals("Wrong type", "javax.persistence.EntityManager",
          ((BeanArgument)input.getArguments().get(0)).getValueType());
      assertEquals("Wrong index", -1,
          ((BeanArgument)input.getArguments().get(0)).getIndex());
     
      BeanMetadata innerBean = (BeanMetadata) ((BeanArgument)input.getArguments().get(0)).getValue();

      assertEquals("createEntityManager", innerBean.getFactoryMethod());
      assertEquals("internalClose", innerBean.getDestroyMethod());

      assertEquals(1, registeredComponents.size());
View Full Code Here

  }
 
  @Test
  public void testIndexedArgs_110() {
      Element e = getTestElement("withIndexedUnitArg", root_110);
      BeanMetadata input = new BeanMetadataImpl();
      Object output = sut.decorate(e, input, parserCtx);
      assertEquals("Wrong number of arguments",
          1 ,input.getArguments().size());
      assertEquals("Wrong class type", "javax.persistence.EntityManagerFactory",
          ((BeanArgument)input.getArguments().get(0)).getValueType());
      assertEquals("Wrong index", 0,
          ((BeanArgument)input.getArguments().get(0)).getIndex());
     
      ReferenceMetadata reference = (ReferenceMetadata) ((BeanArgument)input.getArguments().get(0)).getValue();
      assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
      assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name=myUnit))", reference.getFilter());
     
      Skeleton.getSkeleton(manager).assertSkeletonNotCalled();
      assertTrue(registeredComponents.isEmpty());
     
      e = getTestElement("withIndexedContextArg", root_110);
      input = new BeanMetadataImpl();
      output = sut.decorate(e, input, parserCtx);
     
      assertEquals("Wrong number of arguments",
          1 ,input.getArguments().size());
      assertEquals("Wrong type", "javax.persistence.EntityManager",
          ((BeanArgument)input.getArguments().get(0)).getValueType());
      assertEquals("Wrong index", 1,
          ((BeanArgument)input.getArguments().get(0)).getIndex());
     
      BeanMetadata innerBean = (BeanMetadata) ((BeanArgument)input.getArguments().get(0)).getValue();

      assertEquals("createEntityManager", innerBean.getFactoryMethod());
      assertEquals("internalClose", innerBean.getDestroyMethod());

      assertEquals(1, registeredComponents.size());
View Full Code Here

  }
 
  @Test
  public void testInvalidIndex_110() {
      Element e = getTestElement("withInvalidIndexArg", root_110);
      BeanMetadata input = new BeanMetadataImpl();
      try {
          Object output = sut.decorate(e, input, parserCtx);
          fail("Should throw an exception");
      } catch (IllegalArgumentException iae) {
          assertTrue("Wrong cause type", iae.getCause() instanceof NumberFormatException);
View Full Code Here

        }
        return metadata;
    }

    private ComponentMetadata parseBeanMetadata(Element element, boolean topElement) {
        BeanMetadataImpl metadata = new BeanMetadataImpl();
        if (topElement) {
            metadata.setId(getId(element));
            if (element.hasAttribute(SCOPE_ATTRIBUTE)) {
                metadata.setScope(element.getAttribute(SCOPE_ATTRIBUTE));
                if (metadata.getScope().equals(BeanMetadata.SCOPE_PROTOTYPE)) {
                    if (element.hasAttribute(ACTIVATION_ATTRIBUTE)) {
                        if (element.getAttribute(ACTIVATION_ATTRIBUTE).equals(ACTIVATION_EAGER)) {
                            throw new ComponentDefinitionException("A <bean> with a prototype scope can not have an eager activation");
                        }
                    }
                    metadata.setActivation(ComponentMetadata.ACTIVATION_LAZY);
                } else {
                    metadata.setActivation(parseActivation(element));
                }
            } else {
                metadata.setActivation(parseActivation(element));
            }
        } else {
            metadata.setActivation(ComponentMetadata.ACTIVATION_LAZY);
        }
        if (element.hasAttribute(CLASS_ATTRIBUTE)) {
            metadata.setClassName(element.getAttribute(CLASS_ATTRIBUTE));
        }
        if (element.hasAttribute(DEPENDS_ON_ATTRIBUTE)) {
            metadata.setDependsOn(parseList(element.getAttribute(DEPENDS_ON_ATTRIBUTE)));
        }
        if (element.hasAttribute(INIT_METHOD_ATTRIBUTE)) {
            metadata.setInitMethod(element.getAttribute(INIT_METHOD_ATTRIBUTE));
        }
        if (element.hasAttribute(DESTROY_METHOD_ATTRIBUTE)) {
            metadata.setDestroyMethod(element.getAttribute(DESTROY_METHOD_ATTRIBUTE));
        }
        if (element.hasAttribute(FACTORY_REF_ATTRIBUTE)) {
            metadata.setFactoryComponent(new RefMetadataImpl(element.getAttribute(FACTORY_REF_ATTRIBUTE)));
        }
        if (element.hasAttribute(FACTORY_METHOD_ATTRIBUTE)) {
            String factoryMethod = element.getAttribute(FACTORY_METHOD_ATTRIBUTE);
            metadata.setFactoryMethod(factoryMethod);
        }

        // Do some validation
        if (metadata.getClassName() == null && metadata.getFactoryComponent() == null) {
            throw new ComponentDefinitionException("Bean class or factory-ref must be specified");
        }
        if (metadata.getFactoryComponent() != null && metadata.getFactoryMethod() == null) {
            throw new ComponentDefinitionException("factory-method is required when factory-component is set");
        }
        if (MetadataUtil.isPrototypeScope(metadata) && metadata.getDestroyMethod() != null) {
            throw new ComponentDefinitionException("destroy-method must not be set for a <bean> with a prototype scope");
        }

        // Parse elements
        NodeList nl = element.getChildNodes();
        for (int i = 0; i < nl.getLength(); i++) {
            Node node = nl.item(i);
            if (node instanceof Element) {
                Element e = (Element) node;
                if (isBlueprintNamespace(node.getNamespaceURI())) {               
                    if (nodeNameEquals(node, ARGUMENT_ELEMENT)) {
                        metadata.addArgument(parseBeanArgument(metadata, e));
                    } else if (nodeNameEquals(node, PROPERTY_ELEMENT)) {
                        metadata.addProperty(parseBeanProperty(metadata, e));
                    }
                }
            }
        }

        MetadataUtil.validateBeanArguments(metadata.getArguments());
       
        ComponentMetadata m = metadata;
       
        // Parse custom scopes
        m = handleCustomScope(element.getAttributeNode(SCOPE_ATTRIBUTE), element, m);
View Full Code Here

        }
        return metadata;
    }

    private ComponentMetadata parseBeanMetadata(Element element, boolean topElement) {
        BeanMetadataImpl metadata = new BeanMetadataImpl();
        if (topElement) {
            metadata.setId(getId(element));
            if (element.hasAttribute(SCOPE_ATTRIBUTE)) {
                metadata.setScope(element.getAttribute(SCOPE_ATTRIBUTE));
                if (metadata.getScope().equals(BeanMetadata.SCOPE_PROTOTYPE)) {
                    if (element.hasAttribute(ACTIVATION_ATTRIBUTE)) {
                        if (element.getAttribute(ACTIVATION_ATTRIBUTE).equals(ACTIVATION_EAGER)) {
                            throw new ComponentDefinitionException("A <bean> with a prototype scope can not have an eager activation");
                        }
                    }
                    metadata.setActivation(ComponentMetadata.ACTIVATION_LAZY);
                } else {
                    metadata.setActivation(parseActivation(element));
                }
            } else {
                metadata.setActivation(parseActivation(element));
            }
        } else {
            metadata.setActivation(ComponentMetadata.ACTIVATION_LAZY);
        }
        if (element.hasAttribute(CLASS_ATTRIBUTE)) {
            metadata.setClassName(element.getAttribute(CLASS_ATTRIBUTE));
        }
        if (element.hasAttribute(DEPENDS_ON_ATTRIBUTE)) {
            metadata.setDependsOn(parseList(element.getAttribute(DEPENDS_ON_ATTRIBUTE)));
        }
        if (element.hasAttribute(INIT_METHOD_ATTRIBUTE)) {
            metadata.setInitMethod(element.getAttribute(INIT_METHOD_ATTRIBUTE));
        }
        if (element.hasAttribute(DESTROY_METHOD_ATTRIBUTE)) {
            metadata.setDestroyMethod(element.getAttribute(DESTROY_METHOD_ATTRIBUTE));
        }
        if (element.hasAttribute(FACTORY_REF_ATTRIBUTE)) {
            metadata.setFactoryComponent(new RefMetadataImpl(element.getAttribute(FACTORY_REF_ATTRIBUTE)));
        }
        if (element.hasAttribute(FACTORY_METHOD_ATTRIBUTE)) {
            String factoryMethod = element.getAttribute(FACTORY_METHOD_ATTRIBUTE);
            metadata.setFactoryMethod(factoryMethod);
        }

        // Do some validation
        if (metadata.getClassName() == null && metadata.getFactoryComponent() == null) {
            throw new ComponentDefinitionException("Bean class or factory-ref must be specified");
        }
        if (metadata.getFactoryComponent() != null && metadata.getFactoryMethod() == null) {
            throw new ComponentDefinitionException("factory-method is required when factory-component is set");
        }
        if (MetadataUtil.isPrototypeScope(metadata) && metadata.getDestroyMethod() != null) {
            throw new ComponentDefinitionException("destroy-method must not be set for a <bean> with a prototype scope");
        }

        // Parse elements
        NodeList nl = element.getChildNodes();
        for (int i = 0; i < nl.getLength(); i++) {
            Node node = nl.item(i);
            if (node instanceof Element) {
                Element e = (Element) node;
                if (isBlueprintNamespace(node.getNamespaceURI())) {               
                    if (nodeNameEquals(node, ARGUMENT_ELEMENT)) {
                        metadata.addArgument(parseBeanArgument(metadata, e));
                    } else if (nodeNameEquals(node, PROPERTY_ELEMENT)) {
                        metadata.addProperty(parseBeanProperty(metadata, e));
                    }
                }
            }
        }

        MetadataUtil.validateBeanArguments(metadata.getArguments());
       
        ComponentMetadata m = metadata;
       
        // Parse custom scopes
        m = handleCustomScope(element.getAttributeNode(SCOPE_ATTRIBUTE), element, m);
View Full Code Here

      if (clazz.isAssignableFrom(ReferenceMetadata.class))
        return clazz.cast(new ReferenceMetadataImpl());
      else if (clazz.isAssignableFrom(RefMetadata.class))
        return clazz.cast(new RefMetadataImpl());
      else
        return clazz.cast(new BeanMetadataImpl());
    }
View Full Code Here

 
  @Test
  public void testUnit() {
    Element e = getTestElement("unit");
    BeanMetadata bean =
      (BeanMetadata) sut.decorate(e, new BeanMetadataImpl(), parserCtx);
    BeanProperty property = (BeanProperty) bean.getProperties().get(0);
    ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
   
    assertEquals("emf", property.getName());
    assertEquals(EntityManagerFactory.class.getName(), reference.getInterface());
View Full Code Here

 
  @Test
  public void testUnitNoName() {
    Element e = getTestElement("unitNoName");
    BeanMetadata bean =
      (BeanMetadata) sut.decorate(e, new BeanMetadataImpl(), parserCtx);
    BeanProperty property = (BeanProperty) bean.getProperties().get(0);
    ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
   
    assertEquals("emf2", property.getName());
    assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
View Full Code Here

 
  @Test
  public void testEmptyUnitName() {
    Element e = getTestElement("emptyUnitName");
    BeanMetadata bean =
      (BeanMetadata) sut.decorate(e, new BeanMetadataImpl(), parserCtx);
    BeanProperty property = (BeanProperty) bean.getProperties().get(0);
    ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
   
    assertEquals("emf3", property.getName());
    assertEquals("(&(!(org.apache.aries.jpa.proxy.factory=*))"+NSHandler.EMPTY_UNIT_NAME_FILTER+")",
 
View Full Code Here

TOP

Related Classes of org.apache.aries.blueprint.reflect.BeanMetadataImpl

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.