Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/Constants.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/Constants.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/Constants.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/Constants.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,32 @@ +package org.apache.aries.cdi.container.internal.model; + +import java.util.Set; + +import org.apache.aries.cdi.container.internal.util.Sets; + +public class Constants { + + private Constants() { + // no instances + } + + public static final String CDI10_URI = "http://www.osgi.org/xmlns/cdi/v1.0.0"; + public static final Set<String> CDI_URIS = Sets.immutableHashSet(CDI10_URI); + + public static final String BEAN_CLASS_ATTRIBUTE = "beanClass"; + public static final String BEAN_ELEMENT = "bean"; + public static final String BEANS_ELEMENT = "beans"; + public static final String CLASS_ATTRIBUTE = "class"; + public static final String CONFIGURATION_ELEMENT = "configuration"; + public static final String INTERFACE_ATTRIBUTE = "interface"; + public static final String NAME_ATTRIBUTE = "name"; + public static final String PID_ATTRIBUTE = "pid"; + public static final String PROPERTY_ELEMENT = "property"; + public static final String PROVIDE_ELEMENT = "provide"; + public static final String REFERENCE_ELEMENT = "reference"; + public static final String SERVICE_ELEMENT = "service"; + public static final String TARGET_ATTRIBUTE = "target"; + public static final String TYPE_ATTRIBUTE = "type"; + public static final String VALUE_ATTRIBUTE = "value"; + +}
Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/OSGiBeansHandler.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/OSGiBeansHandler.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/OSGiBeansHandler.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/OSGiBeansHandler.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,114 @@ +package org.apache.aries.cdi.container.internal.model; + +import static org.apache.aries.cdi.container.internal.model.Constants.BEAN_ELEMENT; +import static org.apache.aries.cdi.container.internal.model.Constants.CDI_URIS; +import static org.apache.aries.cdi.container.internal.model.Constants.CLASS_ATTRIBUTE; +import static org.apache.aries.cdi.container.internal.model.Constants.CONFIGURATION_ELEMENT; +import static org.apache.aries.cdi.container.internal.model.Constants.INTERFACE_ATTRIBUTE; +import static org.apache.aries.cdi.container.internal.model.Constants.PROPERTY_ELEMENT; +import static org.apache.aries.cdi.container.internal.model.Constants.PROVIDE_ELEMENT; +import static org.apache.aries.cdi.container.internal.model.Constants.REFERENCE_ELEMENT; +import static org.apache.aries.cdi.container.internal.model.Constants.SERVICE_ELEMENT; + +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +import org.apache.aries.cdi.container.internal.literal.ServicePropertyLiteral; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +public class OSGiBeansHandler extends DefaultHandler { + + public OSGiBeansHandler(List<URL> beanDescriptorURLs) { + _beanDescriptorURLs = beanDescriptorURLs; + } + + public BeansModel createBeansModel() { + return new BeansModel( + _beanClasses, _configurationModels, _referenceModels, _serviceModels, _beanDescriptorURLs); + } + + @Override + public void characters(char[] c, int start, int length) { + if (_propertyModel == null) { + return; + } + + StringBuilder sb = new StringBuilder(); + + sb.append(c, start, length); + + _propertyModel.appendValue(sb.toString()); + } + + @Override + public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + if (matches(BEAN_ELEMENT, uri, localName)) { + _beanClass = attributes.getValue(uri, CLASS_ATTRIBUTE).trim(); + _beanClasses.add(_beanClass); + } + if (matches(CONFIGURATION_ELEMENT, uri, localName)) { + _configurationModel = new ConfigurationModel(attributes); + } + if (matches(PROPERTY_ELEMENT, uri, localName)) { + _propertyModel = new PropertyModel(attributes); + } + if (matches(PROVIDE_ELEMENT, uri, localName)) { + String value = attributes.getValue(uri, INTERFACE_ATTRIBUTE).trim(); + _serviceModel.addProvide(value); } + if (matches(REFERENCE_ELEMENT, uri, localName)) { + _referenceModel = new ReferenceModel(attributes); + } + if (matches(SERVICE_ELEMENT, uri, localName)) { + _serviceModel = new ServiceModel(_beanClass); + } + } + + @Override + public void endElement(String uri, String localName, String qName) throws SAXException { + if (matches(CONFIGURATION_ELEMENT, uri, localName)) { + _configurationModels.add(_configurationModel); + _configurationModel = null; + } + if (matches(PROPERTY_ELEMENT, uri, localName)) { + ServicePropertyLiteral servicePropertyLiteral = ServicePropertyLiteral.from( + _propertyModel.getName(), _propertyModel.getValue(), _propertyModel.getType()); + _serviceModel.addProperty(servicePropertyLiteral); + _propertyModel = null; + } + if (matches(REFERENCE_ELEMENT, uri, localName)) { + _referenceModels.add(_referenceModel); + _referenceModel = null; + } + if (matches(SERVICE_ELEMENT, uri, localName)) { + _serviceModels.add(_serviceModel); + _serviceModel = null; + _beanClass = null; + } + } + + private boolean matches(String elementName, String uri, String localName) { + if (localName.equals(elementName) && ("".equals(uri) || CDI_URIS.contains(uri))) { + return true; + } + return false; + } + + private static final Logger _log = LoggerFactory.getLogger(OSGiBeansHandler.class); + + private String _beanClass; + private final List<String> _beanClasses = new ArrayList<String>(); + private final List<URL> _beanDescriptorURLs; + private ConfigurationModel _configurationModel; + private final List<ConfigurationModel> _configurationModels = new ArrayList<>(); + private PropertyModel _propertyModel; + private ReferenceModel _referenceModel; + private final List<ReferenceModel> _referenceModels = new ArrayList<>(); + private ServiceModel _serviceModel; + private final List<ServiceModel> _serviceModels = new ArrayList<>(); + +} Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/PropertyModel.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/PropertyModel.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/PropertyModel.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/PropertyModel.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,51 @@ +package org.apache.aries.cdi.container.internal.model; + +import static org.apache.aries.cdi.container.internal.model.Constants.CDI10_URI; +import static org.apache.aries.cdi.container.internal.model.Constants.NAME_ATTRIBUTE; +import static org.apache.aries.cdi.container.internal.model.Constants.TYPE_ATTRIBUTE; +import static org.apache.aries.cdi.container.internal.model.Constants.VALUE_ATTRIBUTE; + +import org.osgi.service.cdi.annotations.PropertyType; +import org.xml.sax.Attributes; + +public class PropertyModel extends AbstractModel { + + public PropertyModel(Attributes attributes) { + _name = getValue(CDI10_URI, NAME_ATTRIBUTE, attributes); + _typeString = getValue(CDI10_URI, TYPE_ATTRIBUTE, attributes); + _type = PropertyType.valueOf(_typeString); + _value = new String[] {getValue(CDI10_URI, VALUE_ATTRIBUTE, attributes)}; + } + + public String getName() { + return _name; + } + + public PropertyType getType() { + return _type; + } + + public String[] getValue() { + if (_extraValue != null) { + return _extraValue.toString().trim().split("\\s*\\n\\s*"); + } + + return _value; + } + + public void appendValue(String value) { + if (_extraValue == null) { + _extraValue = new StringBuilder(); + _type = PropertyType.valueOf(_typeString + "_Array"); + } + + _extraValue.append(value); + } + + private final String _name; + private PropertyType _type; + private final String _typeString; + private String[] _value; + private StringBuilder _extraValue; + +} Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceInjectionPoint.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceInjectionPoint.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceInjectionPoint.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceInjectionPoint.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,62 @@ +package org.apache.aries.cdi.container.internal.model; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Member; +import java.lang.reflect.Type; +import java.util.Set; + +import javax.enterprise.inject.spi.Annotated; +import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.InjectionPoint; + +import org.apache.aries.cdi.container.internal.literal.AnyLiteral; +import org.apache.aries.cdi.container.internal.literal.DefaultLiteral; +import org.apache.aries.cdi.container.internal.literal.ReferenceLiteral; +import org.apache.aries.cdi.container.internal.util.Sets; + +public class ReferenceInjectionPoint implements InjectionPoint { + + public ReferenceInjectionPoint(Class<?> beanClass, String target) { + _beanClass = beanClass; + _qualifiers = Sets.hashSet(DefaultLiteral.INSTANCE, AnyLiteral.INSTANCE, ReferenceLiteral.fromTarget(target)); + } + + @Override + public Type getType() { + return _beanClass; + } + + @Override + public Set<Annotation> getQualifiers() { + return _qualifiers; + } + + @Override + public Bean<?> getBean() { + return null; + } + + @Override + public Member getMember() { + return null; + } + + @Override + public Annotated getAnnotated() { + return null; + } + + @Override + public boolean isDelegate() { + return false; + } + + @Override + public boolean isTransient() { + return false; + } + + private final Class<?> _beanClass; + private final Set<Annotation> _qualifiers; + +} \ No newline at end of file Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceModel.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceModel.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceModel.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceModel.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,27 @@ +package org.apache.aries.cdi.container.internal.model; + +import static org.apache.aries.cdi.container.internal.model.Constants.BEAN_CLASS_ATTRIBUTE; +import static org.apache.aries.cdi.container.internal.model.Constants.CDI10_URI; +import static org.apache.aries.cdi.container.internal.model.Constants.TARGET_ATTRIBUTE; + +import org.xml.sax.Attributes; + +public class ReferenceModel extends AbstractModel { + + public ReferenceModel(Attributes attributes) { + _beanClass = getValue(CDI10_URI, BEAN_CLASS_ATTRIBUTE, attributes); + _target = getValue(CDI10_URI, TARGET_ATTRIBUTE, attributes); + } + + public String getBeanClass() { + return _beanClass; + } + + public String getTarget() { + return _target; + } + + private final String _beanClass; + private final String _target; + +} Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ServiceModel.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ServiceModel.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ServiceModel.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ServiceModel.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,37 @@ +package org.apache.aries.cdi.container.internal.model; + +import java.util.ArrayList; +import java.util.List; + +import org.osgi.service.cdi.annotations.ServiceProperty; + +public class ServiceModel { + + public ServiceModel(String beanClass) { + _beanClass = beanClass; + } + + public void addProvide(String className) { + _provides.add(className); + } + + public void addProperty(ServiceProperty serviceProperty) { + _properties.add(serviceProperty); + } + + public String getBeanClass() { + return _beanClass; + } + + public ServiceProperty[] getProperties() { + return _properties.toArray(new ServiceProperty[0]); + } + + public List<String> getProvides() { + return _provides; + } + + private final String _beanClass; + private List<ServiceProperty> _properties = new ArrayList<>(); + private List<String> _provides = new ArrayList<>(); +} Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/XmlSchema.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/XmlSchema.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/XmlSchema.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/XmlSchema.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,17 @@ +package org.apache.aries.cdi.container.internal.model; + +public enum XmlSchema { + + CDI10("META-INF/cdi.xsd"); + + private final String _fileName; + + private XmlSchema(String fileName) { + _fileName = fileName; + } + + public String getFileName() { + return _fileName; + } + +} Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Maps.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Maps.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Maps.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Maps.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,26 @@ +package org.apache.aries.cdi.container.internal.util; + +import java.util.Map; + +public class Maps { + + private Maps() { + // no instances + } + + public static void appendFilter(StringBuilder sb, Map<String, String> map) { + if (map.isEmpty()) { + return; + } + + for (Map.Entry<String, String> entry : map.entrySet()) { + sb.append("("); + sb.append(entry.getKey()); + sb.append("="); + sb.append(entry.getValue()); + sb.append(")"); + } + + } + +} Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Reflection.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Reflection.java?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Reflection.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Reflection.java Wed Mar 1 10:06:32 2017 @@ -2,9 +2,13 @@ package org.apache.aries.cdi.container.i public class Reflection { - @SuppressWarnings("unchecked") - public static <T> T cast(Object obj) { - return (T) obj; - } + private Reflection() { + // no instances + } + + @SuppressWarnings("unchecked") + public static <T> T cast(Object obj) { + return (T) obj; + } } Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Sets.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Sets.java?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Sets.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Sets.java Wed Mar 1 10:06:32 2017 @@ -6,6 +6,10 @@ import java.util.Set; public class Sets { + private Sets() { + // no instances + } + @SafeVarargs public static <T> Set<T> hashSet(T ... elements) { return hashSet0(new HashSet<>(), elements); Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java Wed Mar 1 10:06:32 2017 @@ -16,7 +16,9 @@ package org.apache.aries.cdi.container.i public class Throw { - private Throw() {} + private Throw() { + // no instances + } public static <T> T exception(Throwable throwable) { return Throw.<T, RuntimeException>_exception(throwable); Added: aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd (added) +++ aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd Wed Mar 1 10:06:32 2017 @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/* + * Copyright (c) OSGi Alliance (2017). All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +--> +<schema xmlns="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://www.osgi.org/xmlns/cdi/v1.0.0" + xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + + <complexType name="Tbean"> + <sequence> + <element name="service" maxOccurs="1" minOccurs="0" + type="cdi:Tservice" /> + <any namespace="##other" minOccurs="0" maxOccurs="unbounded" + processContents="lax" /> + </sequence> + <attribute name="class" type="token" use="required" /> + <anyAttribute processContents="lax" /> + </complexType> + + <complexType name="Tbeans"> + <sequence> + <element name="bean" maxOccurs="unbounded" minOccurs="0" + type="cdi:Tbean" /> + <element name="configuration" type="cdi:Tconfiguration" + maxOccurs="unbounded" minOccurs="0" /> + <element name="reference" maxOccurs="unbounded" minOccurs="0" + type="cdi:Treference" /> + <any namespace="##other" maxOccurs="unbounded" minOccurs="0" + processContents="lax" /> + </sequence> + <anyAttribute processContents="lax" /> + </complexType> + + <complexType name="Tconfiguration"> + <sequence> + <any namespace="##other" minOccurs="0" maxOccurs="unbounded" + processContents="lax" /> + </sequence> + <attribute name="pid" type="token" use="required" /> + <anyAttribute processContents="lax" /> + </complexType> + + <complexType name="Tproperty"> + <simpleContent> + <extension base="string"> + <attribute name="name" type="token" use="required" /> + <attribute name="value" type="token" use="optional" /> + <attribute default="String" name="type" + type="cdi:Tproperty_type" use="optional" /> + <anyAttribute processContents="lax" /> + </extension> + </simpleContent> + </complexType> + + <complexType name="Tprovide"> + <sequence> + <any namespace="##any" processContents="lax" + minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <attribute name="interface" type="token" use="required" /> + <anyAttribute processContents="lax" /> + </complexType> + + <complexType name="Treference"> + <sequence> + <any namespace="##any" processContents="lax" + minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <attribute name="beanClass" type="token" /> + <attribute name="target" type="token" use="required" /> + <anyAttribute processContents="lax" /> + </complexType> + + <complexType name="Tservice"> + <sequence> + <element name="property" type="cdi:Tproperty" + maxOccurs="unbounded" minOccurs="0" /> + <element name="provide" type="cdi:Tprovide" + minOccurs="1" maxOccurs="unbounded" /> + <any namespace="##other" processContents="lax" + minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <anyAttribute processContents="lax" /> + </complexType> + + <simpleType name="Tproperty_type"> + <restriction base="string"> + <enumeration value="String" /> + <enumeration value="Long" /> + <enumeration value="Double" /> + <enumeration value="Float" /> + <enumeration value="Integer" /> + <enumeration value="Byte" /> + <enumeration value="Character" /> + <enumeration value="Boolean" /> + <enumeration value="Short" /> + </restriction> + </simpleType> + + <element name="beans" type="cdi:Tbeans"></element> +</schema> Added: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/ModelTest.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/ModelTest.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/ModelTest.java (added) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/ModelTest.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,187 @@ +package org.apache.aries.cdi.container.internal.model; + +import java.lang.reflect.Type; +import java.net.URL; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.osgi.service.cdi.CdiExtenderConstants; +import org.osgi.service.cdi.annotations.PropertyType; +import org.osgi.service.cdi.annotations.ServiceProperty; +import org.osgi.util.converter.Converter; +import org.osgi.util.converter.StandardConverter; + +import junit.framework.TestCase; + +public class ModelTest extends TestCase { + + public void testModelWithBeansOnly() throws Exception { + AbstractModelBuilder builder = getBuilder("OSGI-INF/cdi/beans-only.xml"); + BeansModel beansModel = builder.build(); + assertNotNull(beansModel); + + Collection<String> beanClassNames = beansModel.getBeanClassNames(); + assertEquals(2, beanClassNames.size()); + assertEquals("com.foo.FooImpl", beanClassNames.iterator().next()); + } + + public void testModelWithConfiguration() throws Exception { + AbstractModelBuilder builder = getBuilder("OSGI-INF/cdi/beans-configuration.xml"); + BeansModel beansModel = builder.build(); + assertNotNull(beansModel); + + Collection<String> beanClassNames = beansModel.getBeanClassNames(); + assertEquals(2, beanClassNames.size()); + assertEquals("com.foo.FooImpl", beanClassNames.iterator().next()); + + Collection<ConfigurationModel> configurationModels = beansModel.getConfigurationModels(); + assertEquals(2, configurationModels.size()); + ConfigurationModel configurationModel = configurationModels.iterator().next(); + assertEquals("com.foo.FooImpl", configurationModel.getPid()); + } + + public void testModelWithReferences() throws Exception { + AbstractModelBuilder builder = getBuilder("OSGI-INF/cdi/beans-references.xml"); + BeansModel beansModel = builder.build(); + assertNotNull(beansModel); + + Collection<String> beanClassNames = beansModel.getBeanClassNames(); + assertEquals(2, beanClassNames.size()); + assertEquals("com.foo.FooImpl", beanClassNames.iterator().next()); + + Collection<ReferenceModel> referenceModels = beansModel.getReferenceModels(); + assertEquals(2, referenceModels.size()); + ReferenceModel referenceModel = referenceModels.iterator().next(); + assertEquals("java.util.concurrent.Callable", referenceModel.getBeanClass()); + assertEquals("(objectClass=java.util.concurrent.Callable)", referenceModel.getTarget()); + } + + public void testModelWithServices() throws Exception { + AbstractModelBuilder builder = getBuilder("OSGI-INF/cdi/beans-services.xml"); + BeansModel beansModel = builder.build(); + assertNotNull(beansModel); + + Collection<String> beanClassNames = beansModel.getBeanClassNames(); + assertEquals(2, beanClassNames.size()); + assertEquals("com.foo.FooImpl", beanClassNames.iterator().next()); + + Collection<ServiceModel> serviceModels = beansModel.getServiceModels(); + assertEquals(1, serviceModels.size()); + ServiceModel serviceModel = serviceModels.iterator().next(); + List<String> provides = serviceModel.getProvides(); + assertEquals(2, provides.size()); + assertEquals("com.foo.Foo", provides.get(0)); + ServiceProperty[] serviceProperties = serviceModel.getProperties(); + assertEquals(18, serviceProperties.length); + + assertEquals("foo", serviceProperties[0].key()); + assertEquals(PropertyType.String, serviceProperties[0].type()); + assertEquals("fum", getValue(serviceProperties[0])); + + assertEquals("foo2", serviceProperties[1].key()); + assertEquals(PropertyType.Long, serviceProperties[1].type()); + assertEquals(345987643L, getValue(serviceProperties[1])); + + assertEquals("foo3", serviceProperties[2].key()); + assertEquals(PropertyType.Double, serviceProperties[2].type()); + assertEquals(3459.87643D, getValue(serviceProperties[2])); + + assertEquals("foo4", serviceProperties[3].key()); + assertEquals(PropertyType.Float, serviceProperties[3].type()); + assertEquals(3459.87F, getValue(serviceProperties[3])); + + assertEquals("foo5", serviceProperties[4].key()); + assertEquals(PropertyType.Integer, serviceProperties[4].type()); + assertEquals(724559, getValue(serviceProperties[4])); + + assertEquals("foo6", serviceProperties[5].key()); + assertEquals(PropertyType.Byte, serviceProperties[5].type()); + assertEquals(new Byte("127"), getValue(serviceProperties[5])); + + assertEquals("foo7", serviceProperties[6].key()); + assertEquals(PropertyType.Character, serviceProperties[6].type()); + assertEquals(new Character('X'), getValue(serviceProperties[6])); + + assertEquals("foo8", serviceProperties[7].key()); + assertEquals(PropertyType.Boolean, serviceProperties[7].type()); + assertEquals(true, getValue(serviceProperties[7])); + + assertEquals("foo9", serviceProperties[8].key()); + assertEquals(PropertyType.Short, serviceProperties[8].type()); + assertEquals(new Short("32767"), getValue(serviceProperties[8])); + + assertEquals("foo11", serviceProperties[9].key()); + assertEquals(PropertyType.String_Array, serviceProperties[9].type()); + assertTrue(Arrays.equals(new String[] {"frog", "drum"}, (String[])getValue(serviceProperties[9]))); + + assertEquals("foo12", serviceProperties[10].key()); + assertEquals(PropertyType.Long_Array, serviceProperties[10].type()); + assertTrue(Arrays.equals(new Long[] {345987643L, 34L}, (Long[])getValue(serviceProperties[10]))); + + assertEquals("foo13", serviceProperties[11].key()); + assertEquals(PropertyType.Double_Array, serviceProperties[11].type()); + assertTrue(Arrays.equals(new Double[] {3459.87643D, 34.3456D}, (Double[])getValue(serviceProperties[11]))); + + assertEquals("foo14", serviceProperties[12].key()); + assertEquals(PropertyType.Float_Array, serviceProperties[12].type()); + assertTrue(Arrays.equals(new Float[] {3459.87F, 35.23F}, (Float[])getValue(serviceProperties[12]))); + + assertEquals("foo15", serviceProperties[13].key()); + assertEquals(PropertyType.Integer_Array, serviceProperties[13].type()); + assertTrue(Arrays.equals(new Integer[] {724559, 345}, (Integer[])getValue(serviceProperties[13]))); + + assertEquals("foo16", serviceProperties[14].key()); + assertEquals(PropertyType.Byte_Array, serviceProperties[14].type()); + assertTrue(Arrays.equals(new Byte[] {127, 23}, (Byte[])getValue(serviceProperties[14]))); + + assertEquals("foo17", serviceProperties[15].key()); + assertEquals(PropertyType.Character_Array, serviceProperties[15].type()); + assertTrue(Arrays.equals(new Character[] {'X', 't'}, (Character[])getValue(serviceProperties[15]))); + + assertEquals("foo18", serviceProperties[16].key()); + assertEquals(PropertyType.Boolean_Array, serviceProperties[16].type()); + assertTrue(Arrays.equals(new Boolean[] {true, false}, (Boolean[])getValue(serviceProperties[16]))); + + assertEquals("foo19", serviceProperties[17].key()); + assertEquals(PropertyType.Short_Array, serviceProperties[17].type()); + assertTrue(Arrays.equals(new Short[] {32767, 2345}, (Short[])getValue(serviceProperties[17]))); + } + + AbstractModelBuilder getBuilder(final String osgiBeansFile) { + return new AbstractModelBuilder() { + + @Override + Collection<String> getResources(String descriptorString) { + return null; + } + + @Override + URL getResource(String resource) { + return getClassLoader().getResource(resource); + } + + @Override + ClassLoader getClassLoader() { + return getClass().getClassLoader(); + } + + @Override + Map<String, Object> getAttributes() { + return Collections.singletonMap( + CdiExtenderConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE, osgiBeansFile); + } + }; + } + + Object getValue(ServiceProperty serviceProperty) { + Type type = serviceProperty.type().getType(); + String[] value = serviceProperty.value(); + return _converter.convert(value).to(type); + } + + private static final Converter _converter = new StandardConverter(); + +} Added: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml (added) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml Wed Mar 1 10:06:32 2017 @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="com.foo.FooImpl" /> + <bean class="com.foo.BarImpl" /> + <configuration pid="com.foo.FooImpl" /> + <configuration pid="com.foo.other" /> +</cdi:beans> \ No newline at end of file Added: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml (added) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml Wed Mar 1 10:06:32 2017 @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="com.foo.FooImpl" /> + <bean class="com.foo.BarImpl" /> +</cdi:beans> \ No newline at end of file Added: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml (added) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml Wed Mar 1 10:06:32 2017 @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="com.foo.FooImpl" /> + <bean class="com.foo.BarImpl" /> + <reference beanClass="java.util.concurrent.Callable" target="(objectClass=java.util.concurrent.Callable)" /> + <reference beanClass="java.util.Map" target="(objectClass=java.util.Map)" /> +</cdi:beans> \ No newline at end of file Added: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml (added) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml Wed Mar 1 10:06:32 2017 @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="com.foo.FooImpl"> + <service> + <provide interface="com.foo.Foo" /> + <provide interface="java.lang.Clonable" /> + <property name="foo" type="String" value="fum" /> + <property name="foo2" type="Long" value="345987643" /> + <property name="foo3" type="Double" value="3459.87643" /> + <property name="foo4" type="Float" value="3459.87" /> + <property name="foo5" type="Integer" value="724559" /> + <property name="foo6" type="Byte" value="127" /> + <property name="foo7" type="Character" value="X" /> + <property name="foo8" type="Boolean" value="true" /> + <property name="foo9" type="Short" value="32767" /> + <property name="foo11" type="String"> + frog + drum + </property> + <property name="foo12" type="Long"> + 345987643 + 34 + </property> + <property name="foo13" type="Double"> + 3459.87643 + 34.3456 + </property> + <property name="foo14" type="Float"> + 3459.87 + 35.23 + </property> + <property name="foo15" type="Integer"> + 724559 + 345 + </property> + <property name="foo16" type="Byte"> + 127 + 23 + </property> + <property name="foo17" type="Character"> + X + t + </property> + <property name="foo18" type="Boolean"> + true + false + </property> + <property name="foo19" type="Short"> + 32767 + 2345 + </property> + </service> + </bean> + <bean class="com.foo.BarImpl" /> +</cdi:beans> \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/bnd.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd.bnd?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd.bnd (original) +++ aries/trunk/cdi/cdi-itests/bnd.bnd Wed Mar 1 10:06:32 2017 @@ -23,7 +23,8 @@ p = org.apache.aries.cdi.test basic-beans.jar,\ services-one.jar,\ tb1.jar,\ - tb2.jar + tb2.jar,\ + tb3.jar # Don't forget that we had to coax the `maven-jar-plugin` NOT to include the `sub-bundle` packages in # the root bundle: Modified: aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd (original) +++ aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd Wed Mar 1 10:06:32 2017 @@ -2,4 +2,4 @@ Export-Package: ${p}.beans.* Require-Capability:\ osgi.extender;filter:='(&(osgi.extender=osgi.cdi)(version>=0.0.1)(!(version>=1.0.0)))',\ osgi.cdi.extension;filter:='(&(osgi.cdi.extension=jndi)(version>=0.0.1)(!(version>=1.0.0)))' --includeresource: META-INF/beans.xml=bnd/basic-beans.xml \ No newline at end of file +-includeresource: OSGI-INF/cdi/osgi-beans.xml=bnd/basic-beans.xml \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/bnd/basic-beans.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/basic-beans.xml?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/basic-beans.xml (original) +++ aries/trunk/cdi/cdi-itests/bnd/basic-beans.xml Wed Mar 1 10:06:32 2017 @@ -1,8 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> -<beans - version="1.1" bean-discovery-mode="annotated" - xmlns="http://xmlns.jcp.org/xml/ns/javaee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" -> -</beans> \ No newline at end of file + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="org.apache.aries.cdi.test.beans.BeanWithReference" /> + <bean class="org.apache.aries.cdi.test.beans.BundleContextBean" /> + <bean class="org.apache.aries.cdi.test.beans.CdiEventObserver" /> + <bean class="org.apache.aries.cdi.test.beans.ConstructorInjectedService" /> + <bean class="org.apache.aries.cdi.test.beans.FieldInjectedBundleScopedImpl" /> + <bean class="org.apache.aries.cdi.test.beans.FieldInjectedPrototypeScopedImpl" /> + <bean class="org.apache.aries.cdi.test.beans.FieldInjectedService" /> + <bean class="org.apache.aries.cdi.test.beans.InstanceBean" /> + <bean class="org.apache.aries.cdi.test.beans.InstanceCardinality0Bean" /> + <bean class="org.apache.aries.cdi.test.beans.InstanceOrderBean" /> + <bean class="org.apache.aries.cdi.test.beans.InstancePropertiesBean" /> + <bean class="org.apache.aries.cdi.test.beans.InstanceServiceReferenceBean" /> + <bean class="org.apache.aries.cdi.test.beans.MethodInjectedService" /> + <bean class="org.apache.aries.cdi.test.beans.PojoImpl" /> + <bean class="org.apache.aries.cdi.test.beans.ServiceWithProperties" /> +</cdi:beans> \ No newline at end of file Added: aries/trunk/cdi/cdi-itests/bnd/tb1-beans.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb1-beans.xml?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/tb1-beans.xml (added) +++ aries/trunk/cdi/cdi-itests/bnd/tb1-beans.xml Wed Mar 1 10:06:32 2017 @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="org.apache.aries.cdi.test.tb1.BeanImpl" /> + <reference + beanClass="org.apache.aries.cdi.test.interfaces.Pojo" + target="(objectClass=org.apache.aries.cdi.test.interfaces.Pojo)" /> +</cdi:beans> \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/bnd/tb1.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb1.bnd?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/tb1.bnd (original) +++ aries/trunk/cdi/cdi-itests/bnd/tb1.bnd Wed Mar 1 10:06:32 2017 @@ -1,3 +1,3 @@ Export-Package: ${p}.tb1.* -Require-Capability: osgi.extender;filter:='(osgi.extender=osgi.cdi)';references:="org.apache.aries.cdi.test.tb1.BeanImpl" --includeresource: META-INF/beans.xml=bnd/basic-beans.xml \ No newline at end of file +Require-Capability: osgi.extender;filter:='(osgi.extender=osgi.cdi)' +-includeresource: OSGI-INF/cdi/osgi-beans.xml=bnd/tb1-beans.xml \ No newline at end of file Added: aries/trunk/cdi/cdi-itests/bnd/tb2-beans.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb2-beans.xml?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/tb2-beans.xml (added) +++ aries/trunk/cdi/cdi-itests/bnd/tb2-beans.xml Wed Mar 1 10:06:32 2017 @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="org.apache.aries.cdi.test.tb2.PojoImpl"> + <service> + <provide interface="org.apache.aries.cdi.test.interfaces.Pojo" /> + </service> + </bean> +</cdi:beans> \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/bnd/tb2.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb2.bnd?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/tb2.bnd (original) +++ aries/trunk/cdi/cdi-itests/bnd/tb2.bnd Wed Mar 1 10:06:32 2017 @@ -1,3 +1,3 @@ Export-Package: ${p}.tb2.* -Require-Capability: osgi.extender;filter:='(osgi.extender=osgi.cdi)';services:="org.apache.aries.cdi.test.tb2.PojoImpl" --includeresource: META-INF/beans.xml=bnd/basic-beans.xml \ No newline at end of file +Require-Capability: osgi.extender;filter:='(osgi.extender=osgi.cdi)' +-includeresource: OSGI-INF/cdi/osgi-beans.xml=bnd/tb2-beans.xml \ No newline at end of file Added: aries/trunk/cdi/cdi-itests/bnd/tb3-beans.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb3-beans.xml?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/tb3-beans.xml (added) +++ aries/trunk/cdi/cdi-itests/bnd/tb3-beans.xml Wed Mar 1 10:06:32 2017 @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<cdi:beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> + <bean class="org.apache.aries.cdi.test.tb3.ConfigurationBeanA" /> +</cdi:beans> \ No newline at end of file Added: aries/trunk/cdi/cdi-itests/bnd/tb3.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb3.bnd?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/bnd/tb3.bnd (added) +++ aries/trunk/cdi/cdi-itests/bnd/tb3.bnd Wed Mar 1 10:06:32 2017 @@ -0,0 +1,3 @@ +Export-Package: ${p}.tb3.* +Require-Capability: osgi.extender;filter:='(osgi.extender=osgi.cdi)' +-includeresource: OSGI-INF/cdi/osgi-beans.xml=bnd/tb3-beans.xml \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/itest.bndrun URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/itest.bndrun?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/itest.bndrun (original) +++ aries/trunk/cdi/cdi-itests/itest.bndrun Wed Mar 1 10:06:32 2017 @@ -9,7 +9,6 @@ osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extender)',\ osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extension.jndi)',\ osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.itests)',\ - osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.log4j.configuration.fragment)',\ osgi.identity;filter:='(osgi.identity=org.apache.aries.jndi.core)',\ osgi.identity;filter:='(osgi.identity=org.apache.felix.configadmin)',\ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\ @@ -17,34 +16,33 @@ osgi.identity;filter:='(osgi.identity=slf4j.log4j12)' -runbundles: \ - javax.enterprise.cdi-api; version='[1.2.0,1.2.1)',\ - jboss-classfilewriter; version='[1.1.2,1.1.3)',\ - log4j; version='[1.2.17,1.2.18)',\ - org.apache.aries.cdi.api.provider.fragment; version='[0.0.1,0.0.2)',\ - org.apache.aries.cdi.extender; version='[0.0.1,0.0.2)',\ - org.apache.aries.cdi.extension.jndi; version='[0.0.1,0.0.2)',\ - org.apache.aries.cdi.itests; version='[0.0.1,0.0.2)',\ - org.apache.aries.cdi.log4j.configuration.fragment; version='[0.0.1,0.0.2)',\ - org.apache.aries.cdi.osgi.api; version='[0.0.1,0.0.2)',\ - org.apache.aries.jndi.api; version='[1.1.0,1.1.1)',\ - org.apache.aries.jndi.core; version='[1.0.2,1.0.3)',\ - org.apache.aries.util; version='[1.0.0,1.0.1)',\ - org.apache.felix.configadmin; version='[1.8.12,1.8.13)',\ - org.apache.felix.gogo.command; version='[1.0.2,1.0.3)',\ - org.apache.felix.gogo.runtime; version='[1.0.2,1.0.3)',\ - org.apache.felix.gogo.shell; version='[1.0.0,1.0.1)',\ - org.apache.felix.scr; version='[2.0.6,2.0.7)',\ - org.apache.logging.log4j.api; version='[2.7.0,2.7.1)',\ - org.glassfish.hk2.external.javax.inject; version='[2.5.0,2.5.1)',\ - org.jboss.logging.jboss-logging; version='[3.2.1,3.2.2)',\ - org.jboss.spec.javax.annotation.jboss-annotations-api_1.2_spec; version='[1.0.0,1.0.1)',\ - org.jboss.spec.javax.el.jboss-el-api_3.0_spec; version='[1.0.0,1.0.1)',\ - org.jboss.spec.javax.interceptor.jboss-interceptors-api_1.2_spec; version='[1.0.0,1.0.1)',\ - org.jboss.weld.osgi-bundle; version='[2.4.0,2.4.1)',\ - osgi.enroute.hamcrest.wrapper; version='[1.3.0,1.3.1)',\ - osgi.enroute.junit.wrapper; version='[4.12.0,4.12.1)',\ - slf4j.api; version='[1.7.21,1.7.22)',\ - slf4j.log4j12; version='[1.6.1,1.6.2)' + javax.enterprise.cdi-api;version='[1.2.0,1.2.1)',\ + jboss-classfilewriter;version='[1.1.2,1.1.3)',\ + log4j;version='[1.2.17,1.2.18)',\ + org.apache.aries.cdi.api.provider.fragment;version='[0.0.1,0.0.2)',\ + org.apache.aries.cdi.extender;version='[0.0.1,0.0.2)',\ + org.apache.aries.cdi.extension.jndi;version='[0.0.1,0.0.2)',\ + org.apache.aries.cdi.itests;version='[0.0.1,0.0.2)',\ + org.apache.aries.jndi.api;version='[1.1.0,1.1.1)',\ + org.apache.aries.jndi.core;version='[1.0.2,1.0.3)',\ + org.apache.aries.util;version='[1.0.0,1.0.1)',\ + org.apache.felix.configadmin;version='[1.8.12,1.8.13)',\ + org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\ + org.apache.felix.gogo.runtime;version='[1.0.2,1.0.3)',\ + org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\ + org.apache.felix.scr;version='[2.0.6,2.0.7)',\ + org.apache.logging.log4j.api;version='[2.7.0,2.7.1)',\ + org.glassfish.hk2.external.javax.inject;version='[2.5.0,2.5.1)',\ + org.jboss.logging.jboss-logging;version='[3.2.1,3.2.2)',\ + org.jboss.spec.javax.annotation.jboss-annotations-api_1.2_spec;version='[1.0.0,1.0.1)',\ + org.jboss.spec.javax.el.jboss-el-api_3.0_spec;version='[1.0.0,1.0.1)',\ + org.jboss.spec.javax.interceptor.jboss-interceptors-api_1.2_spec;version='[1.0.0,1.0.1)',\ + org.jboss.weld.osgi-bundle;version='[2.4.0,2.4.1)',\ + org.osgi.service.cdi;version='[1.0.0,1.0.1)',\ + osgi.enroute.hamcrest.wrapper;version='[1.3.0,1.3.1)',\ + osgi.enroute.junit.wrapper;version='[4.12.0,4.12.1)',\ + slf4j.api;version='[1.7.21,1.7.22)',\ + slf4j.log4j12;version='[1.6.1,1.6.2)' -resolve.effective: resolve, active -runee: JavaSE-1.8 @@ -54,5 +52,6 @@ osgi.console.enable.builtin=false, \ osgi.console=, \ org.osgi.service.http.port=8080,\ - org.jboss.logging.provider=slf4j + org.jboss.logging.provider=slf4j,\ + log4j.configuration=file:${.}/log4j.properties -runsystempackages: javax.script Copied: aries/trunk/cdi/cdi-itests/log4j.properties (from r1784895, aries/trunk/cdi/cdi-log4j-configuration-fragment/src/main/resources/log4j.properties) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/log4j.properties?p2=aries/trunk/cdi/cdi-itests/log4j.properties&p1=aries/trunk/cdi/cdi-log4j-configuration-fragment/src/main/resources/log4j.properties&r1=1784895&r2=1784896&rev=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-log4j-configuration-fragment/src/main/resources/log4j.properties (original) +++ aries/trunk/cdi/cdi-itests/log4j.properties Wed Mar 1 10:06:32 2017 @@ -9,4 +9,4 @@ log4j.appender.CONSOLE=org.apache.log4j. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[%t] %-5p %c:%L | %m%n -log4j.logger.org.apache.aries.cdi=DEBUG +log4j.logger.org.apache.aries.cdi.container.internal.container=DEBUG Modified: aries/trunk/cdi/cdi-itests/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/pom.xml?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/pom.xml (original) +++ aries/trunk/cdi/cdi-itests/pom.xml Wed Mar 1 10:06:32 2017 @@ -44,6 +44,16 @@ </plugin> <plugin> <groupId>biz.aQute.bnd</groupId> + <artifactId>bnd-resolver-maven-plugin</artifactId> + <configuration> + <failOnChanges>false</failOnChanges> + <bndruns> + <bndrun>itest.bndrun</bndrun> + </bndruns> + </configuration> + </plugin> + <plugin> + <groupId>biz.aQute.bnd</groupId> <artifactId>bnd-testing-maven-plugin</artifactId> <configuration> <failOnChanges>false</failOnChanges> @@ -51,7 +61,6 @@ <bndruns> <bndrun>itest.bndrun</bndrun> </bndruns> - <targetDir>.</targetDir> </configuration> </plugin> </plugins> Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java Wed Mar 1 10:06:32 2017 @@ -10,29 +10,29 @@ import javax.inject.Qualifier; import org.apache.aries.cdi.test.interfaces.BundleScoped; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceFilterQualifier; +import org.osgi.service.cdi.annotations.ReferenceFilter; public class BeanWithReference { @Qualifier - @ReferenceFilterQualifier + @ReferenceFilter @Retention(value = RetentionPolicy.RUNTIME) @Target(value = { ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR }) public @interface ComplexEnoughKey { - String value(); + String complex_enough_key(); } @Qualifier - @ReferenceFilterQualifier + @ReferenceFilter @Retention(value = RetentionPolicy.RUNTIME) @Target(value = { ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR }) public @interface ComplexAnnotation { - String feeFi(); - int foFum(); + String fee_fi(); + int fo_fum(); } - @ComplexEnoughKey("fum") - @ComplexAnnotation(feeFi = "fee", foFum = 23) + @ComplexEnoughKey(complex_enough_key= "fum") + @ComplexAnnotation(fee_fi = "fee", fo_fum = 23) @Inject @Reference BundleScoped bundleScoped; Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java Wed Mar 1 10:06:32 2017 @@ -15,7 +15,6 @@ import org.apache.aries.cdi.test.interfa import org.osgi.service.cdi.annotations.PropertyType; import org.osgi.service.cdi.annotations.Service; import org.osgi.service.cdi.annotations.ServiceProperty; -import org.osgi.service.cdi.annotations.ServicePropertyQualifier; @Service( properties = { @@ -23,55 +22,54 @@ import org.osgi.service.cdi.annotations. @ServiceProperty(key = "test.key.b2", value = "test.value.b2"), @ServiceProperty(key = "p.Boolean", value = "true", type = PropertyType.Boolean), - @ServiceProperty(key = "p.Boolean.array", value = "true,false", type = PropertyType.Boolean_Array), - @ServiceProperty(key = "p.Boolean.list", value = "false,true", type = PropertyType.Boolean_List), - @ServiceProperty(key = "p.Boolean.set", value = "true, true, false", type = PropertyType.Boolean_Set), + @ServiceProperty(key = "p.Boolean.array", value = {"true","false"}, type = PropertyType.Boolean_Array), + @ServiceProperty(key = "p.Boolean.list", value = {"false","true"}, type = PropertyType.Boolean_List), + @ServiceProperty(key = "p.Boolean.set", value = {"true", "true", "false"}, type = PropertyType.Boolean_Set), @ServiceProperty(key = "p.Byte", value = "2", type = PropertyType.Byte), - @ServiceProperty(key = "p.Byte.array", value = "2,34", type = PropertyType.Byte_Array), - @ServiceProperty(key = "p.Byte.list", value = "34,2", type = PropertyType.Byte_List), - @ServiceProperty(key = "p.Byte.set", value = "34,34,2", type = PropertyType.Byte_Set), + @ServiceProperty(key = "p.Byte.array", value = {"2","34"}, type = PropertyType.Byte_Array), + @ServiceProperty(key = "p.Byte.list", value = {"34","2"}, type = PropertyType.Byte_List), + @ServiceProperty(key = "p.Byte.set", value = {"34","34","2"}, type = PropertyType.Byte_Set), @ServiceProperty(key = "p.Character", value = "C", type = PropertyType.Character), - @ServiceProperty(key = "p.Character.array", value = "C,D", type = PropertyType.Character_Array), - @ServiceProperty(key = "p.Character.list", value = "D,C", type = PropertyType.Character_List), - @ServiceProperty(key = "p.Character.set", value = "D,D,C", type = PropertyType.Character_Set), + @ServiceProperty(key = "p.Character.array", value = {"C","D"}, type = PropertyType.Character_Array), + @ServiceProperty(key = "p.Character.list", value = {"D","C"}, type = PropertyType.Character_List), + @ServiceProperty(key = "p.Character.set", value = {"D","D","C"}, type = PropertyType.Character_Set), @ServiceProperty(key = "p.Double", value = "2.5", type = PropertyType.Double), - @ServiceProperty(key = "p.Double.array", value = "2.5,45.678", type = PropertyType.Double_Array), - @ServiceProperty(key = "p.Double.list", value = "45.678,2.5", type = PropertyType.Double_List), - @ServiceProperty(key = "p.Double.set", value = "45.678,45.678,2.5", type = PropertyType.Double_Set), + @ServiceProperty(key = "p.Double.array", value = {"2.5","45.678"}, type = PropertyType.Double_Array), + @ServiceProperty(key = "p.Double.list", value = {"45.678","2.5"}, type = PropertyType.Double_List), + @ServiceProperty(key = "p.Double.set", value = {"45.678","45.678","2.5"}, type = PropertyType.Double_Set), @ServiceProperty(key = "p.Float", value = "3.4", type = PropertyType.Float), - @ServiceProperty(key = "p.Float.array", value = "3.4,78.9", type = PropertyType.Float_Array), - @ServiceProperty(key = "p.Float.list", value = "78.9,3.4", type = PropertyType.Float_List), - @ServiceProperty(key = "p.Float.set", value = "78.9,78.9,3.4", type = PropertyType.Float_Set), + @ServiceProperty(key = "p.Float.array", value = {"3.4","78.9"}, type = PropertyType.Float_Array), + @ServiceProperty(key = "p.Float.list", value = {"78.9","3.4"}, type = PropertyType.Float_List), + @ServiceProperty(key = "p.Float.set", value = {"78.9","78.9","3.4"}, type = PropertyType.Float_Set), @ServiceProperty(key = "p.Integer", value = "5", type = PropertyType.Integer), - @ServiceProperty(key = "p.Integer.array", value = "5,34567", type = PropertyType.Integer_Array), - @ServiceProperty(key = "p.Integer.list", value = "34567,5", type = PropertyType.Integer_List), - @ServiceProperty(key = "p.Integer.set", value = "34567,34567,5", type = PropertyType.Integer_Set), + @ServiceProperty(key = "p.Integer.array", value = {"5","34567"}, type = PropertyType.Integer_Array), + @ServiceProperty(key = "p.Integer.list", value = {"34567","5"}, type = PropertyType.Integer_List), + @ServiceProperty(key = "p.Integer.set", value = {"34567","34567","5"}, type = PropertyType.Integer_Set), @ServiceProperty(key = "p.Long", value = "7", type = PropertyType.Long), - @ServiceProperty(key = "p.Long.array", value = "7,7789654", type = PropertyType.Long_Array), - @ServiceProperty(key = "p.Long.list", value = "7789654,7", type = PropertyType.Long_List), - @ServiceProperty(key = "p.Long.set", value = "7789654,7789654,7", type = PropertyType.Long_Set), + @ServiceProperty(key = "p.Long.array", value = {"7","7789654"}, type = PropertyType.Long_Array), + @ServiceProperty(key = "p.Long.list", value = {"7789654","7"}, type = PropertyType.Long_List), + @ServiceProperty(key = "p.Long.set", value = {"7789654","7789654","7"}, type = PropertyType.Long_Set), @ServiceProperty(key = "p.Short", value = "25", type = PropertyType.Short), - @ServiceProperty(key = "p.Short.array", value = "25,196", type = PropertyType.Short_Array), - @ServiceProperty(key = "p.Short.list", value = "196,25", type = PropertyType.Short_List), - @ServiceProperty(key = "p.Short.set", value = "196,196,25", type = PropertyType.Short_Set), + @ServiceProperty(key = "p.Short.array", value = {"25","196"}, type = PropertyType.Short_Array), + @ServiceProperty(key = "p.Short.list", value = {"196","25"}, type = PropertyType.Short_List), + @ServiceProperty(key = "p.Short.set", value = {"196","196","25"}, type = PropertyType.Short_Set), @ServiceProperty(key = "p.String", value = "black", type = PropertyType.String), - @ServiceProperty(key = "p.String.array", value = "black,green", type = PropertyType.String_Array), - @ServiceProperty(key = "p.String.list", value = "green,black", type = PropertyType.String_List), - @ServiceProperty(key = "p.String.set", value = "green,green,black", type = PropertyType.String_Set) + @ServiceProperty(key = "p.String.array", value = {"black","green"}, type = PropertyType.String_Array), + @ServiceProperty(key = "p.String.list", value = {"green","black"}, type = PropertyType.String_List), + @ServiceProperty(key = "p.String.set", value = {"green","green","black"}, type = PropertyType.String_Set) }, type = {ServiceWithProperties.class, BeanService.class} ) @Singleton -@MoreProperties(glubInteger = 45, gooString = "green") +@MoreProperties(glub_integer = 45, goo_string = "green") public class ServiceWithProperties implements BeanService<Pojo> { @Qualifier - @ServicePropertyQualifier @Retention(value = RetentionPolicy.RUNTIME) @Target(value = { ElementType.TYPE }) public @interface MoreProperties { - String gooString(); - int glubInteger(); + String goo_string(); + int glub_integer(); } @Override Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java Wed Mar 1 10:06:32 2017 @@ -87,7 +87,7 @@ public class AbstractTestCase extends Te ServiceTracker<CdiContainer, CdiContainer> getServiceTracker(long bundleId) throws InvalidSyntaxException { Filter filter = bundleContext.createFilter( "(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + bundleId + ")(" + - CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE + "=" + CdiEvent.State.CREATED + "))"); + CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE + "=" + CdiEvent.Type.CREATED + "))"); ServiceTracker<CdiContainer, CdiContainer> serviceTracker = new ServiceTracker<>(bundleContext, filter, null); @@ -124,7 +124,7 @@ public class AbstractTestCase extends Te static final Bundle bundle = FrameworkUtil.getBundle(CdiBeanTests.class); static final BundleContext bundleContext = bundle.getBundleContext(); - static final long timeout = 10000; + static final long timeout = 5000; Bundle cdiBundle; Bundle servicesBundle; Added: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java (added) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,30 @@ +package org.apache.aries.cdi.test.cases; + +public class ConfigurationTests extends AbstractTestCase { + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void testConfiguration() throws Exception { +// Bundle tb3Bundle = installBundle("tb3.jar"); +// +// ServiceTracker<BeanService, BeanService> st = new ServiceTracker<BeanService, BeanService>( +// bundleContext, BeanService.class, null); +// st.open(true); +// +// try { +// BeanService<Callable<int[]>> beanService = st.waitForService(timeout); +// assertNotNull(beanService); +// } +// finally { +// tb3Bundle.uninstall(); +// } + } + + @Override + protected void setUp() throws Exception { + } + + @Override + protected void tearDown() throws Exception { + } + +} Copied: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java (from r1784895, aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTestCase.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java?p2=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java&p1=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTestCase.java&r1=1784895&r2=1784896&rev=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTestCase.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java Wed Mar 1 10:06:32 2017 @@ -12,7 +12,7 @@ import org.apache.aries.cdi.test.interfa import org.apache.aries.cdi.test.interfaces.CdiEventObserverQualifier; import org.osgi.service.cdi.CdiEvent; -public class EventsTestCase extends AbstractTestCase { +public class EventsTests extends AbstractTestCase { @Override protected void setUp() throws Exception { Copied: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java (from r1784895, aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiJndiExtensionTests.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java?p2=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java&p1=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiJndiExtensionTests.java&r1=1784895&r2=1784896&rev=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiJndiExtensionTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java Wed Mar 1 10:06:32 2017 @@ -20,7 +20,7 @@ import org.osgi.service.jndi.JNDIConstan import org.osgi.util.tracker.BundleTracker; import org.osgi.util.tracker.BundleTrackerCustomizer; -public class CdiJndiExtensionTests extends AbstractTestCase { +public class JndiExtensionTests extends AbstractTestCase { @Override protected void setUp() throws Exception { @@ -86,24 +86,24 @@ public class CdiJndiExtensionTests exten ServiceReference<CdiContainer> serviceReference = serviceReferences.iterator().next(); - CdiEvent.State state = (CdiEvent.State)serviceReference.getProperty( + CdiEvent.Type state = (CdiEvent.Type)serviceReference.getProperty( CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE); - assertEquals(CdiEvent.State.CREATED, state); + assertEquals(CdiEvent.Type.CREATED, state); extensionBundle.stop(); - state = (CdiEvent.State)serviceReference.getProperty( + state = (CdiEvent.Type)serviceReference.getProperty( CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE); - assertEquals(CdiEvent.State.WAITING_FOR_EXTENSIONS, state); + assertEquals(CdiEvent.Type.WAITING_FOR_EXTENSIONS, state); extensionBundle.start(); - state = (CdiEvent.State)serviceReference.getProperty( + state = (CdiEvent.Type)serviceReference.getProperty( CdiExtenderConstants.CDI_EXTENDER_CONTAINER_STATE); - assertEquals(CdiEvent.State.CREATED, state); + assertEquals(CdiEvent.Type.CREATED, state); } } \ No newline at end of file Copied: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java (from r1784895, aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ManifestReferencesAndServicesTestCase.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java?p2=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java&p1=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ManifestReferencesAndServicesTestCase.java&r1=1784895&r2=1784896&rev=1784896&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ManifestReferencesAndServicesTestCase.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java Wed Mar 1 10:06:32 2017 @@ -13,9 +13,9 @@ import org.osgi.framework.Bundle; import org.osgi.service.cdi.CdiContainer; import org.osgi.util.tracker.ServiceTracker; -public class ManifestReferencesAndServicesTestCase extends AbstractTestCase { +public class OSGiBeanDescriptorTests extends AbstractTestCase { - public void testServicesFromManifest() throws Exception { + public void testServices() throws Exception { Bundle tb2Bundle = installBundle("tb2.jar"); ServiceTracker<Pojo, Pojo> st = new ServiceTracker<Pojo, Pojo>( @@ -23,7 +23,7 @@ public class ManifestReferencesAndServic st.open(true); try { - Pojo pojo = st.waitForService(30000); + Pojo pojo = st.waitForService(timeout); assertNotNull(pojo); } finally { @@ -31,7 +31,8 @@ public class ManifestReferencesAndServic } } - public void testReferencesFromManifest() throws Exception { + @SuppressWarnings("serial") + public void testReferences() throws Exception { Bundle tb1Bundle = installBundle("tb1.jar"); Bundle tb2Bundle = installBundle("tb2.jar"); @@ -42,7 +43,8 @@ public class ManifestReferencesAndServic Set<Bean<?>> beans = beanManager.getBeans("beanimpl"); Bean<?> bean = beanManager.resolve(beans); CreationalContext<?> ctx = beanManager.createCreationalContext(bean); - BeanService<?> beanService = (BeanService<?>)beanManager.getReference(bean, new TypeLiteral<BeanService<?>>() {}.getType(), ctx); + BeanService<?> beanService = (BeanService<?>)beanManager.getReference( + bean, new TypeLiteral<BeanService<?>>() {}.getType(), ctx); assertNotNull(beanService); assertEquals("POJO-IMPLBEAN-IMPL", beanService.doSomething()); Added: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java?rev=1784896&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java (added) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java Wed Mar 1 10:06:32 2017 @@ -0,0 +1,41 @@ +package org.apache.aries.cdi.test.tb3; + +import java.util.concurrent.Callable; + +import javax.inject.Inject; + +import org.apache.aries.cdi.test.interfaces.BeanService; +import org.osgi.service.cdi.annotations.Configuration; +import org.osgi.service.cdi.annotations.Service; + +@Service +public class ConfigurationBeanA implements BeanService<Callable<int[]>> { + + @Override + public String doSomething() { + return config.color(); + } + + @Override + public Callable<int[]> get() { + return new Callable<int[]>() { + @Override + public int[] call() throws Exception { + return config.ports(); + } + }; + } + + @Configuration + @Inject + Config config; + +} + +@interface Config { + + String color() default "blue"; + + int[] ports() default 35777; + +} Modified: aries/trunk/cdi/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/pom.xml?rev=1784896&r1=1784895&r2=1784896&view=diff ============================================================================== --- aries/trunk/cdi/pom.xml (original) +++ aries/trunk/cdi/pom.xml Wed Mar 1 10:06:32 2017 @@ -24,12 +24,11 @@ </licenses> <modules> - <module>cdi-log4j-configuration-fragment</module> <module>cdi-api-provider-fragment</module> <module>cdi-extender</module> <module>cdi-extension-jndi</module> <module>cdi-itests</module> - <!-- <module>cdi-executable</module> --> + <module>cdi-executable</module> </modules> <build> @@ -65,7 +64,7 @@ </execution> </executions> </plugin> - <plugin> + <plugin> <groupId>biz.aQute.bnd</groupId> <artifactId>bnd-indexer-maven-plugin</artifactId> <version>${bnd.version}</version> @@ -228,6 +227,7 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> + <scope>test</scope> </dependency> </dependencies>
