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/09/08 19:23:05 UTC

svn commit: r1807807 - in /aries/trunk/cdi: cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/ cdi-extender/src/test/resources/ cdi-itests/

Author: rotty3000
Date: Fri Sep  8 19:23:05 2017
New Revision: 1807807

URL: http://svn.apache.org/viewvc?rev=1807807&view=rev
Log:
[CDI] minimize bouncing

Signed-off-by: Raymond Augé <ro...@apache.org>

Modified:
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Configuration.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java
    aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Reference.java
    aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml
    aries/trunk/cdi/cdi-itests/logback.xml

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Configuration.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Configuration.java?rev=1807807&r1=1807806&r2=1807807&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Configuration.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Configuration.java Fri Sep  8 19:23:05 2017
@@ -77,7 +77,10 @@ public class Phase_Configuration impleme
 
 			openConfigurations();
 
-			callbacksInit();
+			if (callbacksResolved()) {
+				_nextPhase = new Phase_Reference(_containerState, _extensions);
+				_nextPhase.open();
+			}
 		}
 		finally {
 			_lock.unlock();
@@ -90,14 +93,6 @@ public class Phase_Configuration impleme
 		).findFirst().isPresent();
 	}
 
-	void callbacksInit() {
-		_containerState.configurationCallbacks().values().stream().flatMap(
-			valueMap -> valueMap.values().stream()
-		).forEach(
-			cc -> cc.init()
-		);
-	}
-
 	boolean callbacksResolved() {
 		return !_containerState.configurationCallbacks().values().stream().flatMap(
 			valueMap -> valueMap.values().stream()
@@ -126,31 +121,18 @@ public class Phase_Configuration impleme
 				_lock.unlock();
 			}
 		},
-		onUpdate = cc -> {
+		onUpdateOrRemove = cc -> {
 			_lock.lock();
 			try {
 				_nextPhase.close();
-				_nextPhase = new Phase_Reference(_containerState, _extensions);
-				_nextPhase.open();
-			}
-			finally {
-				_lock.unlock();
-			}
-		},
-		onRemove = cc -> {
-			_lock.lock();
-			try {
-				if (_nextPhase != null) {
-					_nextPhase.close();
-				}
-				if (!callbacksResolved()) {
-					_nextPhase = null;
-					_containerState.fire(CdiEvent.Type.WAITING_FOR_CONFIGURATIONS);
-				}
-				else {
+				_nextPhase = null;
+				if (callbacksResolved()) {
 					_nextPhase = new Phase_Reference(_containerState, _extensions);
 					_nextPhase.open();
 				}
+				else {
+					_containerState.fire(CdiEvent.Type.WAITING_FOR_CONFIGURATIONS);
+				}
 			}
 			finally {
 				_lock.unlock();
@@ -158,7 +140,7 @@ public class Phase_Configuration impleme
 		};
 
 		_componentModels.stream().forEach(
-			componentModel -> openConfigurations(componentModel, onAdd, onUpdate, onRemove)
+			componentModel -> openConfigurations(componentModel, onAdd, onUpdateOrRemove, onUpdateOrRemove)
 		);
 	}
 

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java?rev=1807807&r1=1807806&r2=1807807&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java Fri Sep  8 19:23:05 2017
@@ -42,7 +42,9 @@ public class Phase_Publish implements Ph
 		_containerState.serviceRegistrator().close();
 		_containerState.beanManagerRegistrator().close();
 		_containerState.serviceComponents().clear();
-		_cb.shutdown();
+		if (_cb != null) {
+			_cb.shutdown();
+		}
 	}
 
 	@Override

Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Reference.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Reference.java?rev=1807807&r1=1807806&r2=1807807&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Reference.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Reference.java Fri Sep  8 19:23:05 2017
@@ -79,11 +79,7 @@ public class Phase_Reference implements
 
 			_containerState.tracker().open();
 
-			if (referencesResolved()) {
-				if (_log.isDebugEnabled()) {
-					_log.debug("CDIe - There are no service dependencies. Moving on!");
-				}
-
+			if (callbacksResolved()) {
 				_nextPhase = new Phase_Publish(_containerState, _extensions);
 
 				_nextPhase.open();
@@ -96,7 +92,7 @@ public class Phase_Reference implements
 
 	void openReferences() {
 		Consumer<ReferenceCallback> onAdd = r -> {
-			if ((_nextPhase == null) && referencesResolved()) {
+			if ((_nextPhase == null) && callbacksResolved()) {
 				_nextPhase = new Phase_Publish(_containerState, _extensions);
 				_nextPhase.open();
 			}
@@ -105,7 +101,7 @@ public class Phase_Reference implements
 			// TODO we may need to handle static greedy references by hard reset of _nextPhase
 		},
 		onRemove = r -> {
-			if ((_nextPhase != null) && !referencesResolved()) {
+			if ((_nextPhase != null) && !callbacksResolved()) {
 				_nextPhase.close();
 				_nextPhase = null;
 				_containerState.fire(CdiEvent.Type.WAITING_FOR_SERVICES);
@@ -174,7 +170,7 @@ public class Phase_Reference implements
 		).findFirst().isPresent();
 	}
 
-	boolean referencesResolved() {
+	boolean callbacksResolved() {
 		return !_containerState.referenceCallbacks().values().stream().flatMap(
 			valueMap -> valueMap.values().stream()
 		).filter(

Modified: aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml?rev=1807807&r1=1807806&r2=1807807&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml (original)
+++ aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml Fri Sep  8 19:23:05 2017
@@ -9,9 +9,9 @@
 		</encoder>
 	</appender>
 
-	<logger name="org.apache.aries.cdi.container" level="DEBUG"/>
+	<logger name="org.apache.aries.cdi.container" level="ERROR"/>
 
-	<root level="info">
+	<root level="ERROR">
 		<appender-ref ref="STDOUT" />
 	</root>
 </configuration>
\ No newline at end of file

Modified: aries/trunk/cdi/cdi-itests/logback.xml
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/logback.xml?rev=1807807&r1=1807806&r2=1807807&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/logback.xml (original)
+++ aries/trunk/cdi/cdi-itests/logback.xml Fri Sep  8 19:23:05 2017
@@ -9,9 +9,9 @@
 		</encoder>
 	</appender>
 
-	<logger name="org.apache.aries.cdi.container" level="DEBUG"/>
+	<logger name="org.apache.aries.cdi.container" level="ERROR"/>
 
-	<root level="info">
+	<root level="ERROR">
 		<appender-ref ref="STDOUT" />
 	</root>
 </configuration>
\ No newline at end of file