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