You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2008/01/27 13:01:52 UTC

svn commit: r615583 [2/2] - in /tomcat/trunk: bin/ java/javax/servlet/jsp/resources/ java/javax/servlet/resources/ java/org/apache/catalina/core/ java/org/apache/catalina/ha/deploy/ java/org/apache/catalina/ha/jmx/ java/org/apache/catalina/loader/ java...

Modified: tomcat/trunk/test/org/apache/catalina/tribes/test/interceptors/TestOrderInterceptor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/tribes/test/interceptors/TestOrderInterceptor.java?rev=615583&r1=615582&r2=615583&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/tribes/test/interceptors/TestOrderInterceptor.java (original)
+++ tomcat/trunk/test/org/apache/catalina/tribes/test/interceptors/TestOrderInterceptor.java Sun Jan 27 04:01:49 2008
@@ -1,186 +1,186 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.catalina.tribes.test.interceptors;
-
-import org.apache.catalina.tribes.Channel;
-import org.apache.catalina.tribes.Member;
-import org.apache.catalina.tribes.group.GroupChannel;
-import org.apache.catalina.tribes.group.interceptors.NonBlockingCoordinator;
-import org.apache.catalina.tribes.group.interceptors.TcpFailureDetector;
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-import org.apache.catalina.tribes.ChannelListener;
-import java.io.Serializable;
-import org.apache.catalina.tribes.group.interceptors.OrderInterceptor;
-import org.apache.catalina.tribes.group.ChannelInterceptorBase;
-import org.apache.catalina.tribes.ChannelMessage;
-import org.apache.catalina.tribes.group.InterceptorPayload;
-import org.apache.catalina.tribes.ChannelException;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class TestOrderInterceptor extends TestCase {
-
-    GroupChannel[] channels = null;
-    OrderInterceptor[] orderitcs = null;
-    MangleOrderInterceptor[] mangleitcs = null;
-    TestListener[] test = null;
-    int channelCount = 2;
-    Thread[] threads = null;
-    protected void setUp() throws Exception {
-        System.out.println("Setup");
-        super.setUp();
-        channels = new GroupChannel[channelCount];
-        orderitcs = new OrderInterceptor[channelCount];
-        mangleitcs = new MangleOrderInterceptor[channelCount];
-        test = new TestListener[channelCount];
-        threads = new Thread[channelCount];
-        for ( int i=0; i<channelCount; i++ ) {
-            channels[i] = new GroupChannel();
-            
-            orderitcs[i] = new OrderInterceptor();
-            mangleitcs[i] = new MangleOrderInterceptor();
-            orderitcs[i].setExpire(Long.MAX_VALUE);
-            channels[i].addInterceptor(orderitcs[i]);
-            channels[i].addInterceptor(mangleitcs[i]);
-            test[i] = new TestListener(i);
-            channels[i].addChannelListener(test[i]);
-            final int j = i;
-            threads[i] = new Thread() {
-                public void run() {
-                    try {
-                        channels[j].start(Channel.DEFAULT);
-                        Thread.sleep(50);
-                    } catch (Exception x) {
-                        x.printStackTrace();
-                    }
-                }
-            };
-        }
-        for ( int i=0; i<channelCount; i++ ) threads[i].start();
-        for ( int i=0; i<channelCount; i++ ) threads[i].join();
-        Thread.sleep(1000);
-    }
-    
-    public void testOrder1() throws Exception {
-        Member[] dest = channels[0].getMembers();
-        final AtomicInteger value = new AtomicInteger(0);
-        for ( int i=0; i<100; i++ ) {
-            channels[0].send(dest,new Integer(value.getAndAdd(1)),0);
-        }
-        Thread.sleep(5000);
-        for ( int i=0; i<test.length; i++ ) {
-            super.assertEquals(false,test[i].fail);
-        }
-    }
-    
-    public void testOrder2() throws Exception {
-        final Member[] dest = channels[0].getMembers();
-        final AtomicInteger value = new AtomicInteger(0);
-        Runnable run = new Runnable() {
-            public void run() {
-                for (int i = 0; i < 100; i++) {
-                    try {
-                        synchronized (channels[0]) {
-                            channels[0].send(dest, new Integer(value.getAndAdd(1)), 0);
-                        }
-                    }catch ( Exception x ) {
-                        x.printStackTrace();
-                        assertEquals(true,false);
-                    }
-                }
-            }
-        };
-        Thread[] threads = new Thread[5];
-        for (int i=0;i<threads.length;i++) {
-            threads[i] = new Thread(run);
-        }
-        for (int i=0;i<threads.length;i++) {
-            threads[i].start();
-        }
-        for (int i=0;i<threads.length;i++) {
-            threads[i].join();
-        }
-        Thread.sleep(5000);
-        for ( int i=0; i<test.length; i++ ) {
-            super.assertEquals(false,test[i].fail);
-        }
-    }
-
-
-    protected void tearDown() throws Exception {
-        System.out.println("tearDown");
-        super.tearDown();
-        for ( int i=0; i<channelCount; i++ ) {
-            channels[i].stop(Channel.DEFAULT);
-        }
-    }
-    
-    public static void main(String[] args) throws Exception {
-        TestSuite suite = new TestSuite();
-        suite.addTestSuite(TestOrderInterceptor.class);
-        suite.run(new TestResult());
-    }
-    
-    public static class TestListener implements ChannelListener {
-        int id = -1;
-        public TestListener(int id) {
-            this.id = id;
-        }
-        int cnt = 0;
-        int total = 0;
-        boolean fail = false;
-        public synchronized void messageReceived(Serializable msg, Member sender) {
-            total++;
-            Integer i = (Integer)msg;
-            if ( i.intValue() != cnt ) fail = true;
-            else cnt++;
-            System.out.println("Listener["+id+"] Message received:"+i+" Count:"+total+" Fail:"+fail);
-
-        }
-
-        public boolean accept(Serializable msg, Member sender) {
-            return (msg instanceof Integer);
-        }
-    }
-    
-    public static class MangleOrderInterceptor extends ChannelInterceptorBase {
-        int cnt = 1;
-        ChannelMessage hold = null;
-        Member[] dest = null;
-        public synchronized void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException {
-            if ( hold == null ) {
-                //System.out.println("Skipping message:"+msg);
-                hold = (ChannelMessage)msg.deepclone();
-                dest = new Member[destination.length];
-                System.arraycopy(destination,0,dest,0,dest.length);
-            } else {
-                //System.out.println("Sending message:"+msg);
-                super.sendMessage(destination,msg,payload);
-                //System.out.println("Sending message:"+hold);
-                super.sendMessage(dest,hold,null);
-                hold = null;
-                dest = null;
-            }
-        }
-    }
-    
-    
-    
-    
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.tribes.test.interceptors;
+
+import org.apache.catalina.tribes.Channel;
+import org.apache.catalina.tribes.Member;
+import org.apache.catalina.tribes.group.GroupChannel;
+import org.apache.catalina.tribes.group.interceptors.NonBlockingCoordinator;
+import org.apache.catalina.tribes.group.interceptors.TcpFailureDetector;
+import junit.framework.TestCase;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+import org.apache.catalina.tribes.ChannelListener;
+import java.io.Serializable;
+import org.apache.catalina.tribes.group.interceptors.OrderInterceptor;
+import org.apache.catalina.tribes.group.ChannelInterceptorBase;
+import org.apache.catalina.tribes.ChannelMessage;
+import org.apache.catalina.tribes.group.InterceptorPayload;
+import org.apache.catalina.tribes.ChannelException;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class TestOrderInterceptor extends TestCase {
+
+    GroupChannel[] channels = null;
+    OrderInterceptor[] orderitcs = null;
+    MangleOrderInterceptor[] mangleitcs = null;
+    TestListener[] test = null;
+    int channelCount = 2;
+    Thread[] threads = null;
+    protected void setUp() throws Exception {
+        System.out.println("Setup");
+        super.setUp();
+        channels = new GroupChannel[channelCount];
+        orderitcs = new OrderInterceptor[channelCount];
+        mangleitcs = new MangleOrderInterceptor[channelCount];
+        test = new TestListener[channelCount];
+        threads = new Thread[channelCount];
+        for ( int i=0; i<channelCount; i++ ) {
+            channels[i] = new GroupChannel();
+            
+            orderitcs[i] = new OrderInterceptor();
+            mangleitcs[i] = new MangleOrderInterceptor();
+            orderitcs[i].setExpire(Long.MAX_VALUE);
+            channels[i].addInterceptor(orderitcs[i]);
+            channels[i].addInterceptor(mangleitcs[i]);
+            test[i] = new TestListener(i);
+            channels[i].addChannelListener(test[i]);
+            final int j = i;
+            threads[i] = new Thread() {
+                public void run() {
+                    try {
+                        channels[j].start(Channel.DEFAULT);
+                        Thread.sleep(50);
+                    } catch (Exception x) {
+                        x.printStackTrace();
+                    }
+                }
+            };
+        }
+        for ( int i=0; i<channelCount; i++ ) threads[i].start();
+        for ( int i=0; i<channelCount; i++ ) threads[i].join();
+        Thread.sleep(1000);
+    }
+    
+    public void testOrder1() throws Exception {
+        Member[] dest = channels[0].getMembers();
+        final AtomicInteger value = new AtomicInteger(0);
+        for ( int i=0; i<100; i++ ) {
+            channels[0].send(dest,new Integer(value.getAndAdd(1)),0);
+        }
+        Thread.sleep(5000);
+        for ( int i=0; i<test.length; i++ ) {
+            super.assertEquals(false,test[i].fail);
+        }
+    }
+    
+    public void testOrder2() throws Exception {
+        final Member[] dest = channels[0].getMembers();
+        final AtomicInteger value = new AtomicInteger(0);
+        Runnable run = new Runnable() {
+            public void run() {
+                for (int i = 0; i < 100; i++) {
+                    try {
+                        synchronized (channels[0]) {
+                            channels[0].send(dest, new Integer(value.getAndAdd(1)), 0);
+                        }
+                    }catch ( Exception x ) {
+                        x.printStackTrace();
+                        assertEquals(true,false);
+                    }
+                }
+            }
+        };
+        Thread[] threads = new Thread[5];
+        for (int i=0;i<threads.length;i++) {
+            threads[i] = new Thread(run);
+        }
+        for (int i=0;i<threads.length;i++) {
+            threads[i].start();
+        }
+        for (int i=0;i<threads.length;i++) {
+            threads[i].join();
+        }
+        Thread.sleep(5000);
+        for ( int i=0; i<test.length; i++ ) {
+            super.assertEquals(false,test[i].fail);
+        }
+    }
+
+
+    protected void tearDown() throws Exception {
+        System.out.println("tearDown");
+        super.tearDown();
+        for ( int i=0; i<channelCount; i++ ) {
+            channels[i].stop(Channel.DEFAULT);
+        }
+    }
+    
+    public static void main(String[] args) throws Exception {
+        TestSuite suite = new TestSuite();
+        suite.addTestSuite(TestOrderInterceptor.class);
+        suite.run(new TestResult());
+    }
+    
+    public static class TestListener implements ChannelListener {
+        int id = -1;
+        public TestListener(int id) {
+            this.id = id;
+        }
+        int cnt = 0;
+        int total = 0;
+        boolean fail = false;
+        public synchronized void messageReceived(Serializable msg, Member sender) {
+            total++;
+            Integer i = (Integer)msg;
+            if ( i.intValue() != cnt ) fail = true;
+            else cnt++;
+            System.out.println("Listener["+id+"] Message received:"+i+" Count:"+total+" Fail:"+fail);
+
+        }
+
+        public boolean accept(Serializable msg, Member sender) {
+            return (msg instanceof Integer);
+        }
+    }
+    
+    public static class MangleOrderInterceptor extends ChannelInterceptorBase {
+        int cnt = 1;
+        ChannelMessage hold = null;
+        Member[] dest = null;
+        public synchronized void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException {
+            if ( hold == null ) {
+                //System.out.println("Skipping message:"+msg);
+                hold = (ChannelMessage)msg.deepclone();
+                dest = new Member[destination.length];
+                System.arraycopy(destination,0,dest,0,dest.length);
+            } else {
+                //System.out.println("Sending message:"+msg);
+                super.sendMessage(destination,msg,payload);
+                //System.out.println("Sending message:"+hold);
+                super.sendMessage(dest,hold,null);
+                hold = null;
+                dest = null;
+            }
+        }
+    }
+    
+    
+    
+    
+
+}

Propchange: tomcat/trunk/test/org/apache/catalina/tribes/test/interceptors/TestOrderInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tomcat/trunk/webapps/docs/tribes/leader-election-initiate-election.jpg
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Sun Jan 27 04:01:49 2008
@@ -1 +1 @@
-application/octet-stream
+image/jpeg

Propchange: tomcat/trunk/webapps/docs/tribes/leader-election-message-arrives.jpg
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Sun Jan 27 04:01:49 2008
@@ -1 +1 @@
-application/octet-stream
+image/jpeg

Propchange: tomcat/trunk/webapps/examples/WEB-INF/lib/jstl.jar
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Sun Jan 27 04:01:49 2008
@@ -1 +1 @@
-application/octet-stream
+application/java-archive

Propchange: tomcat/trunk/webapps/examples/WEB-INF/lib/standard.jar
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Sun Jan 27 04:01:49 2008
@@ -1 +1 @@
-application/octet-stream
+application/java-archive

Propchange: tomcat/trunk/webapps/manager/401.jsp
            ('svn:executable' removed)



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org