You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ro...@apache.org on 2017/11/29 14:54:46 UTC

svn commit: r1816631 - in /aries/trunk/cdi/cdi-extender: ./ src/main/java/org/apache/aries/cdi/container/internal/ src/main/java/org/apache/aries/cdi/container/internal/command/ src/main/java/org/apache/aries/cdi/container/internal/component/ src/main/...

Author: rotty3000
Date: Wed Nov 29 14:54:46 2017
New Revision: 1816631

URL: http://svn.apache.org/viewvc?rev=1816631&view=rev
Log:
[CDI] start cleaning up, won't run for a while yet...

Modified:
    aries/trunk/cdi/cdi-extender/pom.xml
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentModel.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/service/ServiceDeclaration.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Conversions.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java

Modified: aries/trunk/cdi/cdi-extender/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/pom.xml?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/pom.xml (original)
+++ aries/trunk/cdi/cdi-extender/pom.xml Wed Nov 29 14:54:46 2017
@@ -50,12 +50,12 @@
 
 	<dependencies>
 		<dependency>
-			<groupId>org.apache.aries.cdi</groupId>
+			<groupId>org.apache.aries.spec</groupId>
 			<artifactId>org.apache.aries.javax.annotation-api</artifactId>
 			<version>${project.version}</version>
 		</dependency>
 		<dependency>
-			<groupId>org.apache.aries.cdi</groupId>
+			<groupId>org.apache.aries.spec</groupId>
 			<artifactId>org.apache.aries.javax.cdi-api</artifactId>
 			<version>${project.version}</version>
 		</dependency>

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java Wed Nov 29 14:54:46 2017
@@ -24,7 +24,6 @@ import org.apache.aries.cdi.container.in
 import org.apache.aries.cdi.container.internal.phase.Phase_Init;
 import org.apache.felix.utils.extender.Extension;
 import org.osgi.framework.Bundle;
-import org.osgi.service.cdi.CdiEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,15 +60,11 @@ public class CdiBundle implements Extens
 			_command.add(_bundle, _containerState);
 
 			try {
-				_containerState.fire(CdiEvent.Type.CREATING);
-
 				_nextPhase = new Phase_Init(_bundle, _containerState);
 
 				_nextPhase.open();
 			}
 			catch (Throwable t) {
-				_containerState.fire(CdiEvent.Type.FAILURE, t);
-
 				if (_nextPhase != null) {
 					_nextPhase.close();
 				}
@@ -106,14 +101,10 @@ public class CdiBundle implements Extens
 
 			_command.remove(_bundle);
 
-			_containerState.fire(CdiEvent.Type.DESTROYING);
-
 			_nextPhase.close();
 
 			_nextPhase = null;
 
-			_containerState.fire(CdiEvent.Type.DESTROYED);
-
 			_containerState.close();
 
 			_containerState = null;

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java Wed Nov 29 14:54:46 2017
@@ -40,7 +40,7 @@ public class CdiCommand {
 	public String list() {
 		try (Formatter f = new Formatter()) {
 			for (ContainerState cdiContainerState : _states.values()) {
-				f.format("[%s] %s%n", cdiContainerState.id(), cdiContainerState.lastState());
+				f.format("[%s]%n", cdiContainerState.id());
 			}
 			return f.toString();
 		}
@@ -56,7 +56,7 @@ public class CdiCommand {
 				return f.toString();
 			}
 
-			f.format("[%s] %s%n", containerState.id(), containerState.lastState());
+			f.format("[%s]%n", containerState.id());
 
 			List<ExtensionDependency> extensionDependencies = containerState.extensionDependencies();
 

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentModel.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentModel.java?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentModel.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentModel.java Wed Nov 29 14:54:46 2017
@@ -169,8 +169,8 @@ public class ComponentModel {
 		return _references;
 	}
 
-	public ServiceScope getServiceScope() {
-		return _scope;
+	public boolean isService() {
+		return false;
 	}
 
 	@Override
@@ -196,7 +196,6 @@ public class ComponentModel {
 	private final List<String> _provides;
 	private final List<ConfigurationModel> _configurations;
 	private final List<ReferenceModel> _references;
-	private ServiceScope _scope;
 	private volatile String _string;
 
 }

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java Wed Nov 29 14:54:46 2017
@@ -15,7 +15,6 @@
 package org.apache.aries.cdi.container.internal.container;
 
 import java.util.Dictionary;
-import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -45,19 +44,14 @@ import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceObjects;
 import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.wiring.BundleWiring;
-import org.osgi.service.cdi.CdiConstants;
-import org.osgi.service.cdi.CdiContainer;
-import org.osgi.service.cdi.CdiEvent;
-import org.osgi.service.cdi.CdiEvent.Type;
-import org.osgi.service.cdi.annotations.ServiceEvent;
+import org.osgi.service.cdi.reference.ReferenceEvent;
 import org.osgi.service.cm.ManagedService;
 import org.osgi.util.tracker.ServiceTracker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ContainerState implements CdiContainer {
+public class ContainerState {
 
 	public static final AnnotationLiteral<Any> ANY = new AnnotationLiteral<Any>() {
 		private static final long serialVersionUID = 1L;
@@ -69,15 +63,10 @@ public class ContainerState implements C
 		_bundle = Optional.ofNullable(bundle);
 		_extenderBundle = extenderBundle;
 
-		Hashtable<String, Object> properties = new Hashtable<>();
-
-		properties.put(CdiConstants.CDI_CONTAINER_STATE, CdiEvent.Type.CREATING);
-
 		_bundle.ifPresent(
 			b -> {
 				_classLoader = new BundleClassLoader(
 					BundleResourcesLoader.getBundles(bundle, extenderBundle));
-				_registration = b.getBundleContext().registerService(CdiContainer.class, this, properties);
 			}
 		);
 
@@ -170,16 +159,7 @@ public class ContainerState implements C
 	}
 
 	public synchronized void close() {
-		try {
-			if (_registration != null) {
-				_registration.unregister();
-			}
-		}
-		catch (Exception e) {
-			if (_log.isTraceEnabled()) {
-				_log.trace("Service already unregistered {}", _registration);
-			}
-		}
+		// no op
 	}
 
 	public Map<ComponentModel, Map<String, ConfigurationCallback>> configurationCallbacks() {
@@ -198,56 +178,10 @@ public class ContainerState implements C
 		return _extensionDependencies;
 	}
 
-	public synchronized void fire(CdiEvent event) {
-		Type type = event.getType();
-
-		if ((_lastState == CdiEvent.Type.DESTROYING) &&
-			((type == CdiEvent.Type.WAITING_FOR_CONFIGURATIONS) ||
-			(type == CdiEvent.Type.WAITING_FOR_EXTENSIONS) ||
-			(type == CdiEvent.Type.WAITING_FOR_SERVICES))) {
-
-			return;
-		}
-
-		if (_log.isErrorEnabled() && (event.getCause() != null)) {
-			_log.error("CDIe - Event {}", event, event.getCause());
-		}
-		else if (_log.isDebugEnabled()) {
-			_log.debug("CDIe - Event {}", event);
-		}
-
-		updateState(event);
-
-		if (_beanManager != null) {
-			_beanManager.fireEvent(event);
-		}
-	}
-
-	public void fire(CdiEvent.Type state) {
-		fire(new CdiEvent(state, _bundle.orElse(null), _extenderBundle));
-	}
-
-	public void fire(CdiEvent.Type state, String payload) {
-		fire(new CdiEvent(state, _bundle.orElse(null), _extenderBundle, payload, null));
-	}
-
-	public void fire(CdiEvent.Type state, Throwable cause) {
-		fire(new CdiEvent(state, _bundle.orElse(null), _extenderBundle, null, cause));
-	}
-
-	@Override
-	public BeanManager getBeanManager() {
-		return _beanManager;
-	}
-
 	public String id() {
 		return _bundle.map(b -> b.getSymbolicName() + ":" + b.getBundleId()).orElse("null");
 	}
 
-	public CdiEvent.Type lastState() {
-		return _lastState;
-	}
-
 	@SuppressWarnings("unchecked")
 	public <T extends ResourceLoader & ProxyServices> T loader() {
 		return (T)_bundle.map(b -> new BundleResourcesLoader(b, _extenderBundle)).orElse(null);
@@ -261,7 +195,7 @@ public class ContainerState implements C
 		return _referenceCallbacksMap;
 	}
 
-	public Map<ComponentModel, Map<String, ObserverMethod<ServiceEvent<?>>>> referenceObservers() {
+	public Map<ComponentModel, Map<String, ObserverMethod<ReferenceEvent<?>>>> referenceObservers() {
 		return _referenceObserversMap;
 	}
 
@@ -273,10 +207,6 @@ public class ContainerState implements C
 		return _serviceRegistrator;
 	}
 
-	public void setBeanManager(BeanManager beanManager) {
-		_beanManager = beanManager;
-	}
-
 	public void setBeansModel(BeansModel beansModel) {
 		_beansModel = beansModel;
 	}
@@ -289,35 +219,8 @@ public class ContainerState implements C
 		return _tracker;
 	}
 
-	private synchronized void updateState(CdiEvent event) {
-		Type type = event.getType();
-
-		_lastState = type;
-
-		if (_registration == null) {
-			return;
-		}
-
-		ServiceReference<CdiContainer> reference = _registration.getReference();
-
-		if (type == reference.getProperty(CdiConstants.CDI_CONTAINER_STATE)) {
-			return;
-		}
-
-		Hashtable<String, Object> properties = new Hashtable<>();
-
-		for (String key : reference.getPropertyKeys()) {
-			properties.put(key, reference.getProperty(key));
-		}
-
-		properties.put(CdiConstants.CDI_CONTAINER_STATE, type);
-
-		_registration.setProperties(properties);
-	}
-
 	private static final Logger _log = LoggerFactory.getLogger(ContainerState.class);
 
-	private volatile BeanManager _beanManager;
 	private BeansModel _beansModel;
 	private final Registrator<BeanManager> _bmRegistrator;
 	private final Optional<Bundle> _bundle;
@@ -326,11 +229,9 @@ public class ContainerState implements C
 	private final Context _context;
 	private final Bundle _extenderBundle;
 	private List<ExtensionDependency> _extensionDependencies;
-	private CdiEvent.Type _lastState = CdiEvent.Type.CREATING;
 	private final Registrator<ManagedService> _msRegistrator;
 	private final Map<ComponentModel, Map<String, ReferenceCallback>> _referenceCallbacksMap = new ConcurrentHashMap<>();
-	private final Map<ComponentModel, Map<String, ObserverMethod<ServiceEvent<?>>>> _referenceObserversMap = new ConcurrentHashMap<>();
-	private ServiceRegistration<CdiContainer> _registration;
+	private final Map<ComponentModel, Map<String, ObserverMethod<ReferenceEvent<?>>>> _referenceObserversMap = new ConcurrentHashMap<>();
 	private final Map<ComponentModel, ServiceDeclaration> _serviceComponents = new ConcurrentHashMap<>();
 	private final Registrator<Object> _serviceRegistrator;
 	private final Tracker _tracker;

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/service/ServiceDeclaration.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/service/ServiceDeclaration.java?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/service/ServiceDeclaration.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/service/ServiceDeclaration.java Wed Nov 29 14:54:46 2017
@@ -31,7 +31,6 @@ import org.osgi.framework.Bundle;
 import org.osgi.framework.PrototypeServiceFactory;
 import org.osgi.framework.ServiceFactory;
 import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.cdi.annotations.ServiceScope;
 
 public class ServiceDeclaration {
 

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Conversions.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Conversions.java?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Conversions.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Conversions.java Wed Nov 29 14:54:46 2017
@@ -18,8 +18,8 @@ import java.util.Arrays;
 
 import org.osgi.util.converter.Converter;
 import org.osgi.util.converter.ConverterBuilder;
+import org.osgi.util.converter.Converters;
 import org.osgi.util.converter.Converting;
-import org.osgi.util.converter.StandardConverter;
 import org.osgi.util.converter.TypeRule;
 
 public class Conversions {
@@ -33,7 +33,7 @@ public class Conversions {
 	}
 
 	private Conversions() {
-		ConverterBuilder builder = new StandardConverter().newConverterBuilder();
+		ConverterBuilder builder = Converters.newConverterBuilder();
 
 		builder
 			.rule(new TypeRule<>(String[].class, String.class, i -> Arrays.toString((String[])i)))

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java?rev=1816631&r1=1816630&r2=1816631&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java Wed Nov 29 14:54:46 2017
@@ -23,7 +23,6 @@ import java.util.List;
 import javax.enterprise.inject.spi.InjectionPoint;
 
 import org.apache.aries.cdi.container.internal.component.ComponentModel;
-import org.osgi.service.cdi.annotations.ServiceScope;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -94,9 +93,7 @@ public class Types {
 
 		List<Class<?>> classes = new ArrayList<>();
 
-		if ((componentModel.getServiceScope() == ServiceScope.DEFAULT) ||
-			(componentModel.getServiceScope() == ServiceScope.NONE)) {
-
+		if (!componentModel.isService()) {
 			return new Class<?>[0];
 		}
 		else if (!componentModel.getProvides().isEmpty()) {