You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2009/06/16 21:14:57 UTC

svn commit: r785345 - in /activemq/sandbox/activemq-flow: ./ activemq-all/src/test/resources/ activemq-broker/ activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/ activemq-broker/src/main/java/org/apache/activemq/apollo/transport/vm/ activem...

Author: chirino
Date: Tue Jun 16 19:14:56 2009
New Revision: 785345

URL: http://svn.apache.org/viewvc?rev=785345&view=rev
Log:
More VMTransport fixes.  Eliminated a timeing issue with the test.  It also now properly sets up the transport server to use the same wireformat that the
client transport is using.


Added:
    activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormatFactory.java
      - copied, changed from r785273, activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/TestWireFormatFactory.java
Removed:
    activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/TestWireFormatFactory.java
Modified:
    activemq/sandbox/activemq-flow/activemq-all/src/test/resources/activemq.xml
    activemq/sandbox/activemq-flow/activemq-broker/pom.xml
    activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java
    activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java
    activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java
    activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java
    activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/transport/vm/VMTransportFactory.java
    activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java
    activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/transport/vm/VMTransportTest.java
    activemq/sandbox/activemq-flow/activemq-broker/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml
    activemq/sandbox/activemq-flow/activemq-openwire/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java
    activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/Proto2WireFormatFactory.java
    activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/ProtoWireFormatFactory.java
    activemq/sandbox/activemq-flow/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/StompWireFormat.java
    activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/MultiWireFormatFactory.java
    activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormat.java
    activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/WireFormat.java
    activemq/sandbox/activemq-flow/activemq-transport/src/test/java/org/apache/activemq/wireformat/mock/MockWireFormatFactory.java
    activemq/sandbox/activemq-flow/pom.xml

Modified: activemq/sandbox/activemq-flow/activemq-all/src/test/resources/activemq.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-all/src/test/resources/activemq.xml?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-all/src/test/resources/activemq.xml (original)
+++ activemq/sandbox/activemq-flow/activemq-all/src/test/resources/activemq.xml Tue Jun 16 19:14:56 2009
@@ -15,7 +15,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<broker>
+<broker xmlns="http://activemq.apache.org/schema/activemq/apollo">
 
   <transport-server>tcp://localhost:61616?wireFormat=openwire</transport-server>
 

Modified: activemq/sandbox/activemq-flow/activemq-broker/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/pom.xml?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/pom.xml (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/pom.xml Tue Jun 16 19:14:56 2009
@@ -93,6 +93,23 @@
   </dependencies>
 
   <build>
+  
+    <resources>
+      <resource>
+        <directory>target/schema</directory>
+        <includes>
+          <include>**/*</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+        <includes>
+          <include>**/*</include>
+        </includes>
+        <filtering>true</filtering>
+      </resource>
+    </resources>
+      
     <plugins>
 
       <!-- Generate a test jar for the test cases in this package -->
@@ -107,6 +124,27 @@
         </executions>
       </plugin>
 
+      <plugin>
+        <groupId>com.sun.tools.jxc.maven2</groupId>
+        <artifactId>maven-jaxb-schemagen-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>compile</phase>
+            <configuration>
+              <destdir>${project.build.directory}/schema</destdir>
+              <srcdir>${project.build.directory}/schema-src</srcdir>
+              <schemas>
+                <schema>
+                  <namespace>http://activemq.apache.org/schema/activemq/apollo</namespace>
+                  <file>activemq-apollo.xsd</file>
+                </schema>
+              </schemas>
+              <!--<verbose>false</verbose>-->
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>  
+
     </plugins>
   </build>
   

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java Tue Jun 16 19:14:56 2009
@@ -12,7 +12,7 @@
 
 @XmlRootElement(name="kahadb-store")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class KahaDBStoreXml implements StoreXml {
+public class KahaDBStoreXml extends StoreXml {
 
 	@XmlAttribute(name="checkpoint-interval", required=false)
 	private Long checkpointInterval;

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java Tue Jun 16 19:14:56 2009
@@ -9,7 +9,7 @@
 
 @XmlRootElement(name="memory-store")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class MemoryStoreXml implements StoreXml {
+public class MemoryStoreXml extends StoreXml {
 
 	public Store createStore() {
 		MemoryStore rc = new MemoryStore();

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java Tue Jun 16 19:14:56 2009
@@ -1,12 +1,12 @@
 package org.apache.activemq.apollo.jaxb;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
 
 import org.apache.activemq.broker.store.Store;
 
-@XmlSeeAlso( {MemoryStoreXml.class, KahaDBStoreXml.class} )
-public interface StoreXml {
+@XmlType(name = "storeType")
+public abstract class StoreXml {
 
-	Store createStore();
+	abstract Store createStore();
 
 }

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java Tue Jun 16 19:14:56 2009
@@ -20,9 +20,8 @@
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAnyElement;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
@@ -49,19 +48,21 @@
     @XmlElement(name="host-name", required=true)
     private ArrayList<AsciiBuffer> hostNames = new ArrayList<AsciiBuffer>();
 
-    @XmlElementWrapper(name="store", required=false)
-    @XmlAnyElement
-    private ArrayList<StoreXml> store = new ArrayList<StoreXml>();
+    @XmlElementRef    
+    private StoreXml store;
     
 	public VirtualHost createVirtualHost(BrokerXml brokerXml) throws Exception {
 		VirtualHost rc = new VirtualHost();
 		rc.setHostNames(hostNames);
 		
-		if( !store.isEmpty() ) {
-			if( store.size() > 1 )  {
-				throw new Exception("Only one store is allowed.");
-			}
-			rc.setStore(store.get(0).createStore());
+//		if( !store.isEmpty() ) {
+//			if( store.size() > 1 )  {
+//				throw new Exception("Only one store is allowed.");
+//			}
+//			rc.setStore(store.get(0).createStore());
+//		}
+		if( store!=null ) {
+			rc.setStore(store.createStore());
 		}
 		return rc;
 	}

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/transport/vm/VMTransportFactory.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/transport/vm/VMTransportFactory.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/transport/vm/VMTransportFactory.java (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/main/java/org/apache/activemq/apollo/transport/vm/VMTransportFactory.java Tue Jun 16 19:14:56 2009
@@ -21,6 +21,7 @@
 import java.net.URISyntaxException;
 import java.net.UnknownHostException;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.activemq.apollo.broker.Broker;
@@ -57,18 +58,23 @@
 		private Broker broker;
 
 		@Override
-		protected PipeTransport cerateServerTransport(Pipe<Object> pipe) {
-			return new PipeTransport(pipe.connect()) {
+		protected PipeTransport createClientTransport(Pipe<Object> pipe) {
+			return new PipeTransport(pipe) {
+				AtomicBoolean started = new AtomicBoolean();
 				@Override
 				public void start() throws Exception {
-					refs.incrementAndGet();
-					super.start();
+					if( started.compareAndSet(false, true) ) { 
+						refs.incrementAndGet();
+						super.start();
+					}
 				}
 				@Override
 				public void stop() throws Exception {
-					super.stop();
-					if( refs.decrementAndGet() == 0 ) {
-						stopBroker();
+					if( started.compareAndSet(true, false) ) { 
+						super.stop();
+						if( refs.decrementAndGet() == 0 ) {
+							stopBroker();
+						}
 					}
 				}
 			};
@@ -93,6 +99,15 @@
 	private static final String DEFAULT_PIPE_NAME = Broker.DEFAULT_VIRTUAL_HOST_NAME.toString();
 
 	@Override
+	public Transport compositeConfigure(Transport transport, WireFormat format, Map options) {
+		// Wishing right now the options would have been passed to the createTransport(URI location, WireFormat wf) method so we did don't
+		// need to remove these here.
+		options.remove("create");
+		options.remove("broker");
+		return super.compositeConfigure(transport, format, options);
+	}
+	
+	@Override
     protected Transport createTransport(URI location, WireFormat wf) throws UnknownHostException, IOException {
 		try {
 			
@@ -135,8 +150,9 @@
 				}
 				
 				// We want to use a vm transport server impl.
-				VmTransportServer vmTransportServer = (VmTransportServer) TransportFactory.bind(new URI("vm://" + name));
+				VmTransportServer vmTransportServer = (VmTransportServer) TransportFactory.bind(new URI("vm://" + name+"?wireFormat=mock"));
 				vmTransportServer.setBroker(broker);
+				vmTransportServer.setWireFormatFactory(wf.getWireFormatFactory());
 				broker.addTransportServer(vmTransportServer);
 				broker.start();
 				

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java Tue Jun 16 19:14:56 2009
@@ -51,7 +51,7 @@
 		
 		assertEquals(2, broker.getVirtualHosts().size());
 		
-		// assertNotNull(broker.getDefaultVirtualHost().getDatabase());
+//		 assertNotNull(broker.getDefaultVirtualHost().getDatabase());
 		
 	}
 

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/transport/vm/VMTransportTest.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/transport/vm/VMTransportTest.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/transport/vm/VMTransportTest.java (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/test/java/org/apache/activemq/apollo/transport/vm/VMTransportTest.java Tue Jun 16 19:14:56 2009
@@ -36,9 +36,9 @@
 	
 	public void testAutoCreateBroker() throws Exception {
 		Transport connect = TransportFactory.compositeConnect(new URI("vm://test?wireFormat=mock"));
+		connect.start();
 		assertNotNull(connect);
 		connect.stop();
-		System.out.println("done");
 	}
 	
 	public void testNoAutoCreateBroker() throws Exception {

Modified: activemq/sandbox/activemq-flow/activemq-broker/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-broker/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-broker/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml (original)
+++ activemq/sandbox/activemq-flow/activemq-broker/src/test/resources/org/apache/activemq/apollo/jaxb/testSimpleConfig.xml Tue Jun 16 19:14:56 2009
@@ -27,9 +27,7 @@
     <host-name>localhost</host-name>
     <host-name>test.localhost</host-name>
     
-    <store>
-      <memory-store/>
-    </store>
+    <memory-store/>
   </virtual-host>
   
 </broker>
\ No newline at end of file

Modified: activemq/sandbox/activemq-flow/activemq-openwire/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-openwire/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-openwire/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java (original)
+++ activemq/sandbox/activemq-flow/activemq-openwire/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java Tue Jun 16 19:14:56 2009
@@ -27,15 +27,16 @@
 import org.apache.activemq.command.CommandTypes;
 import org.apache.activemq.command.DataStructure;
 import org.apache.activemq.command.WireFormatInfo;
+import org.apache.activemq.transport.InactivityMonitor;
 import org.apache.activemq.transport.ResponseCorrelator;
 import org.apache.activemq.transport.Transport;
-import org.apache.activemq.transport.InactivityMonitor;
 import org.apache.activemq.transport.WireFormatNegotiator;
 import org.apache.activemq.util.ByteSequence;
 import org.apache.activemq.util.ByteSequenceData;
 import org.apache.activemq.util.DataByteArrayInputStream;
 import org.apache.activemq.util.DataByteArrayOutputStream;
 import org.apache.activemq.wireformat.WireFormat;
+import org.apache.activemq.wireformat.WireFormatFactory;
 
 /**
  * 
@@ -661,4 +662,8 @@
         transport = new ResponseCorrelator(transport);
         return transport;
     }
+
+	public WireFormatFactory getWireFormatFactory() {
+		return new OpenWireFormatFactory();
+	}
 }

Modified: activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/Proto2WireFormatFactory.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/Proto2WireFormatFactory.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/Proto2WireFormatFactory.java (original)
+++ activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/Proto2WireFormatFactory.java Tue Jun 16 19:14:56 2009
@@ -279,6 +279,10 @@
         public Transport createTransportFilters(Transport transport, Map options) {
            return transport;
         }
+
+		public WireFormatFactory getWireFormatFactory() {
+			return new Proto2WireFormatFactory();
+		}
     }
 
 	public WireFormat createWireFormat() {

Modified: activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/ProtoWireFormatFactory.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/ProtoWireFormatFactory.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/ProtoWireFormatFactory.java (original)
+++ activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/ProtoWireFormatFactory.java Tue Jun 16 19:14:56 2009
@@ -249,6 +249,10 @@
         public String getName() {
             return WIREFORMAT_NAME;
         }
+
+		public WireFormatFactory getWireFormatFactory() {
+			return new ProtoWireFormatFactory();
+		}
     }
 
 	public WireFormat createWireFormat() {

Modified: activemq/sandbox/activemq-flow/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/StompWireFormat.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/StompWireFormat.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/StompWireFormat.java (original)
+++ activemq/sandbox/activemq-flow/activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/StompWireFormat.java Tue Jun 16 19:14:56 2009
@@ -31,6 +31,7 @@
 import org.apache.activemq.util.ByteArrayOutputStream;
 import org.apache.activemq.util.ByteSequence;
 import org.apache.activemq.wireformat.WireFormat;
+import org.apache.activemq.wireformat.WireFormatFactory;
 
 /**
  * Implements marshalling and unmarsalling the <a
@@ -221,4 +222,8 @@
         return transport;
     }
 
+	public WireFormatFactory getWireFormatFactory() {
+		return new StompWireFormatFactory();
+	}
+
 }

Modified: activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/MultiWireFormatFactory.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/MultiWireFormatFactory.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/MultiWireFormatFactory.java (original)
+++ activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/MultiWireFormatFactory.java Tue Jun 16 19:14:56 2009
@@ -23,6 +23,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.activemq.transport.Transport;
@@ -127,7 +128,11 @@
         }
 
         public Transport createTransportFilters(Transport transport, Map options) {
-            return transport;
+        	if( wireFormat==null ) {
+        		return transport;
+        	} else {
+        		return wireFormat.createTransportFilters(transport, options);
+        	}
         }
 
         public String getName() {
@@ -137,9 +142,20 @@
                 return wireFormat.getName();
             }
         }
+
+		public WireFormatFactory getWireFormatFactory() {
+			return new MultiWireFormatFactory(wireFormatFactories);
+		}
+    }
+
+    public MultiWireFormatFactory() {
     }
+    
+    public MultiWireFormatFactory(List<WireFormatFactory> factories) {
+    	setWireFormatFactories(factories);
+	}
 
-    public WireFormat createWireFormat() {
+	public WireFormat createWireFormat() {
         MultiWireFormat rc = new MultiWireFormat();
         if (wireFormatFactories == null) {
             wireFormatFactories = new ArrayList<WireFormatFactory>();
@@ -199,6 +215,12 @@
     public int maxWireformatHeaderLength() {
         throw new UnsupportedOperationException();
     }
+	public List<WireFormatFactory> getWireFormatFactories() {
+		return new ArrayList<WireFormatFactory>(wireFormatFactories);
+	}
+	public void setWireFormatFactories(List<WireFormatFactory> wireFormatFactories) {
+		this.wireFormatFactories = new ArrayList<WireFormatFactory>(wireFormatFactories);
+	}
 
 
 }

Modified: activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormat.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormat.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormat.java (original)
+++ activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormat.java Tue Jun 16 19:14:56 2009
@@ -90,4 +90,8 @@
     public Transport createTransportFilters(Transport transport, Map options) {
         return transport;
     }
+
+	public WireFormatFactory getWireFormatFactory() {
+		return new ObjectStreamWireFormatFactory();
+	}
 }

Copied: activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormatFactory.java (from r785273, activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/TestWireFormatFactory.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormatFactory.java?p2=activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormatFactory.java&p1=activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/TestWireFormatFactory.java&r1=785273&r2=785345&rev=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-queue/src/test/java/org/apache/activemq/queue/perf/TestWireFormatFactory.java (original)
+++ activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/ObjectStreamWireFormatFactory.java Tue Jun 16 19:14:56 2009
@@ -1,11 +1,8 @@
-package org.apache.activemq.queue.perf;
+package org.apache.activemq.wireformat;
 
 import org.apache.activemq.util.ByteSequence;
-import org.apache.activemq.wireformat.ObjectStreamWireFormat;
-import org.apache.activemq.wireformat.WireFormat;
-import org.apache.activemq.wireformat.WireFormatFactory;
 
-public class TestWireFormatFactory implements WireFormatFactory {
+public class ObjectStreamWireFormatFactory implements WireFormatFactory {
 
 	public WireFormat createWireFormat() {
 		return new ObjectStreamWireFormat();

Modified: activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/WireFormat.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/WireFormat.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/WireFormat.java (original)
+++ activemq/sandbox/activemq-flow/activemq-transport/src/main/java/org/apache/activemq/wireformat/WireFormat.java Tue Jun 16 19:14:56 2009
@@ -22,7 +22,6 @@
 import java.util.Map;
 
 import org.apache.activemq.transport.Transport;
-import org.apache.activemq.transport.TransportFilter;
 import org.apache.activemq.util.ByteSequence;
 
 
@@ -82,5 +81,10 @@
      * @return Either the given transport or a Transport filter wrapping the onw provided. 
      */
     Transport createTransportFilters(Transport transport, Map options);
-    
+
+    /**
+     * Returns a WireFormatFactory which can create WireFormat of this type.
+     * @return
+     */
+    WireFormatFactory getWireFormatFactory();
 }

Modified: activemq/sandbox/activemq-flow/activemq-transport/src/test/java/org/apache/activemq/wireformat/mock/MockWireFormatFactory.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/activemq-transport/src/test/java/org/apache/activemq/wireformat/mock/MockWireFormatFactory.java?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/activemq-transport/src/test/java/org/apache/activemq/wireformat/mock/MockWireFormatFactory.java (original)
+++ activemq/sandbox/activemq-flow/activemq-transport/src/test/java/org/apache/activemq/wireformat/mock/MockWireFormatFactory.java Tue Jun 16 19:14:56 2009
@@ -47,6 +47,10 @@
 		public Object unmarshal(DataInput in) throws IOException {
 	        throw new UnsupportedOperationException();
 		}
+
+		public WireFormatFactory getWireFormatFactory() {
+			return new MockWireFormatFactory();
+		}
     }
 
 	public WireFormat createWireFormat() {

Modified: activemq/sandbox/activemq-flow/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-flow/pom.xml?rev=785345&r1=785344&r2=785345&view=diff
==============================================================================
--- activemq/sandbox/activemq-flow/pom.xml (original)
+++ activemq/sandbox/activemq-flow/pom.xml Tue Jun 16 19:14:56 2009
@@ -811,6 +811,11 @@
     <pluginManagement>
       <plugins>
         <plugin>
+          <groupId>com.sun.tools.jxc.maven2</groupId>
+          <artifactId>maven-jaxb-schemagen-plugin</artifactId>
+          <version>1.3-dev</version>
+        </plugin>
+        <plugin>
           <groupId>ch.elca.el4j.maven.plugins</groupId>
           <artifactId>maven-depgraph-plugin</artifactId>
           <version>1.7</version>