You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by an...@apache.org on 2007/02/15 12:45:43 UTC
svn commit: r507904 - in /incubator/cxf/trunk/rt/core/src:
main/java/org/apache/cxf/phase/PhaseManagerImpl.java
main/resources/META-INF/cxf/cxf.xml
test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java
Author: andreasmyth
Date: Thu Feb 15 03:45:43 2007
New Revision: 507904
URL: http://svn.apache.org/viewvc?view=rev&rev=507904
Log:
Made phases configurable.
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/phase/PhaseManagerImpl.java
incubator/cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml
incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/phase/PhaseManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/phase/PhaseManagerImpl.java?view=diff&rev=507904&r1=507903&r2=507904
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/phase/PhaseManagerImpl.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/phase/PhaseManagerImpl.java Thu Feb 15 03:45:43 2007
@@ -22,32 +22,25 @@
import java.util.ArrayList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
+import org.apache.cxf.extension.BusExtension;
-import org.apache.cxf.Bus;
-
-public class PhaseManagerImpl implements PhaseManager {
+public class PhaseManagerImpl implements PhaseManager, BusExtension {
- private Bus bus;
private List<Phase> inPhases;
private List<Phase> outPhases;
-
+
public PhaseManagerImpl() {
createInPhases();
createOutPhases();
- }
-
- @Resource
- public void setBus(Bus b) {
- bus = b;
}
-
- @PostConstruct
- public void register() {
- if (null != bus) {
- bus.setExtension(this, PhaseManager.class);
- }
+
+ public PhaseManagerImpl(List<Phase> in, List<Phase> out) {
+ inPhases = in;
+ outPhases = out;
+ }
+
+ public Class getRegistrationType() {
+ return PhaseManager.class;
}
public List<Phase> getInPhases() {
@@ -59,11 +52,8 @@
}
final void createInPhases() {
+
inPhases = new ArrayList<Phase>();
-
- // TODO: get from configuration instead
- // bus.getConfiguration();
-
int i = 0;
inPhases = new ArrayList<Phase>();
@@ -82,13 +72,9 @@
inPhases.add(new Phase(Phase.PRE_INVOKE, ++i * 1000));
inPhases.add(new Phase(Phase.INVOKE, ++i * 1000));
inPhases.add(new Phase(Phase.POST_INVOKE, ++i * 1000));
- // Collections.sort(inPhases);
}
final void createOutPhases() {
- outPhases = new ArrayList<Phase>();
-
- // TODO: get from configuration instead
outPhases = new ArrayList<Phase>();
int i = 0;
@@ -115,7 +101,6 @@
outPhases.add(new Phase(Phase.SEND, ++i * 1000));
- // Collections.sort(outPhases);
}
}
Modified: incubator/cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml?view=diff&rev=507904&r1=507903&r2=507904
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml (original)
+++ incubator/cxf/trunk/rt/core/src/main/resources/META-INF/cxf/cxf.xml Thu Feb 15 03:45:43 2007
@@ -73,7 +73,130 @@
</bean>
<bean id="org.apache.cxf.phase.PhaseManager" class="org.apache.cxf.phase.PhaseManagerImpl">
- <property name="bus" ref="cxf"/>
+ <constructor-arg>
+ <list>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="receive"/>
+ <property name="priority" value="1000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="pre-stream"/>
+ <property name="priority" value="2000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="user-stream"/>
+ <property name="priority" value="3000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="post-stream"/>
+ <property name="priority" value="4000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="read"/>
+ <property name="priority" value="5000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="pre-protocol"/>
+ <property name="priority" value="6000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="user-protocol"/>
+ <property name="priority" value="7000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="post-protocol"/>
+ <property name="priority" value="8000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="unmarshal"/>
+ <property name="priority" value="9000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="pre-logical"/>
+ <property name="priority" value="10000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="user-logical"/>
+ <property name="priority" value="11000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="post-logical"/>
+ <property name="priority" value="12000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="pre-invoke"/>
+ <property name="priority" value="13000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="invoke"/>
+ <property name="priority" value="14000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="post-invoke"/>
+ <property name="priority" value="15000"/>
+ </bean>
+ </list>
+ </constructor-arg>
+ <constructor-arg>
+ <list>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="setup"/>
+ <property name="priority" value="1000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="pre-logical"/>
+ <property name="priority" value="2000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="user-logical"/>
+ <property name="priority" value="3000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="post-logical"/>
+ <property name="priority" value="4000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="prepare-send"/>
+ <property name="priority" value="5000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="pre-stream"/>
+ <property name="priority" value="6000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="pre-protocol"/>
+ <property name="priority" value="7000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="user-protocol"/>
+ <property name="priority" value="8000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="post-protocol"/>
+ <property name="priority" value="9000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="write"/>
+ <property name="priority" value="10000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="marshal"/>
+ <property name="priority" value="11000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="user-stream"/>
+ <property name="priority" value="12000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="post-stream"/>
+ <property name="priority" value="13000"/>
+ </bean>
+ <bean class="org.apache.cxf.phase.Phase">
+ <property name="name" value="send"/>
+ <property name="priority" value="14000"/>
+ </bean>
+ </list>
+ </constructor-arg>
</bean>
<bean id="org.apache.cxf.workqueue.WorkQueueManager" class="org.apache.cxf.workqueue.WorkQueueManagerImpl">
Modified: incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java?view=diff&rev=507904&r1=507903&r2=507904
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java Thu Feb 15 03:45:43 2007
@@ -34,7 +34,9 @@
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.interceptor.Interceptor;
import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.Phase;
import org.apache.cxf.phase.PhaseManager;
+import org.apache.cxf.phase.PhaseManagerImpl;
import org.apache.cxf.resource.ResourceManager;
import org.apache.cxf.transport.ConduitInitiatorManager;
import org.apache.cxf.transport.DestinationFactoryManager;
@@ -70,7 +72,7 @@
assertEquals("Unexpected interceptors", 0, bus.getInFaultInterceptors().size());
assertEquals("Unexpected interceptors", 0, bus.getOutInterceptors().size());
assertEquals("Unexpected interceptors", 0, bus.getOutFaultInterceptors().size());
-
+
}
public void testCustomFileName() {
@@ -124,6 +126,24 @@
bus.shutdown(true);
EasyMock.verify(bl);
+ }
+
+ public void testPhases() {
+ Bus bus = new SpringBusFactory().createBus();
+ PhaseManager cxfPM = bus.getExtension(PhaseManager.class);
+ PhaseManager defaultPM = new PhaseManagerImpl();
+ List<Phase> cxfPhases = cxfPM.getInPhases();
+ List<Phase> defaultPhases = defaultPM.getInPhases();
+ assertEquals(defaultPhases.size(), cxfPhases.size());
+ for (int i = 0; i < cxfPhases.size(); i++) {
+ assertEquals(0, cxfPhases.get(i).compareTo(defaultPhases.get(i)));
+ }
+ cxfPhases = cxfPM.getOutPhases();
+ defaultPhases = defaultPM.getOutPhases();
+ assertEquals(defaultPhases.size(), cxfPhases.size());
+ for (int i = 0; i < cxfPhases.size(); i++) {
+ assertEquals(0, cxfPhases.get(i).compareTo(defaultPhases.get(i)));
+ }
}
static class TestInterceptor implements Interceptor {