You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2017/03/01 10:06:33 UTC

svn commit: r1784896 [2/2] - in /aries/trunk/cdi: ./ cdi-executable/ cdi-extender/ cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/ cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/ cdi-extender/src/main/jav...

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>