Author: jsong
Date: Sun May  8 16:58:52 2005
New Revision: 169194

URL: http://svn.apache.org/viewcvs?rev=169194&view=rev
Log:
Add more tests to controls threading.

Added:
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControl.java
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControlImpl.jcs.inactive
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControl.java
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControlImpl.jcs
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControl.java
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControlImpl.jcs

Added: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControl.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControl.java?rev=169194&view=auto
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControl.java
 (added)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControl.java
 Sun May  8 16:58:52 2005
@@ -0,0 +1,17 @@
+package org.apache.beehive.controls.test.controls.threading.nested;
+
+import org.apache.beehive.controls.api.bean.ControlInterface;
+
+/**
+ * A control interface
+ */
[EMAIL PROTECTED]
+public interface CompositeMThreadControl
+{
+
+       public int startSingleThreadNestedControl();
+       public int stopSingleThreadNestedControl();
+       public int startMultiThreadNestedControl();
+       public int stopMultiThreadNestedControl();
+
+}

Added: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControlImpl.jcs.inactive
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControlImpl.jcs.inactive?rev=169194&view=auto
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControlImpl.jcs.inactive
 (added)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/CompositeMThreadControlImpl.jcs.inactive
 Sun May  8 16:58:52 2005
@@ -0,0 +1,34 @@
+package org.apache.beehive.controls.test.controls.threading.nested;
+
+import java.io.Serializable;
+import java.lang.Thread;
+import java.lang.InterruptedException;
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.bean.Threading;
+import org.apache.beehive.controls.api.bean.ThreadingPolicy;
+
+/**
+ * A multi-threaded impl of CompositeMThreadControl.
+ * Exposes method to invoke the nested controls
+ */
[EMAIL PROTECTED]
[EMAIL PROTECTED](ThreadingPolicy.MULTI_THREADED)
+public class CompositeMThreadControlImpl implements CompositeMThreadControl, 
Serializable
+{
+    
+    @Control
+    NestedSThreadControlBean nestedS;
+
+    @Control
+    NestedMThreadControlBean nestedM;
+
+       public int startSingleThreadNestedControl(){
+               return nestedS.doSlowIncrement(fasle);}
+       public int stopSingleThreadNestedControl(){
+               return nestedS.doSlowIncrement(true);}
+       public int startMultiThreadNestedControl(){
+               return nestedM.doSlowIncrement(false);}
+       public int stopMultiThreadNestedControl(){
+               return nestedM.doSlowIncrement(true);}
+}

Added: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControl.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControl.java?rev=169194&view=auto
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControl.java
 (added)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControl.java
 Sun May  8 16:58:52 2005
@@ -0,0 +1,15 @@
+package org.apache.beehive.controls.test.controls.threading.nested;
+
+import org.apache.beehive.controls.api.bean.ControlInterface;
+
+/**
+ * A control interface with two methods declared.
+ * This control interface is designed to a nested control and
+ * test control threading.
+ */
+
[EMAIL PROTECTED]
+public interface NestedMThreadControl
+{
+       public int doSlowIncrement(boolean isStopper);
+}

Added: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControlImpl.jcs
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControlImpl.jcs?rev=169194&view=auto
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControlImpl.jcs
 (added)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedMThreadControlImpl.jcs
 Sun May  8 16:58:52 2005
@@ -0,0 +1,37 @@
+package org.apache.beehive.controls.test.controls.threading.nested;
+
+import java.util.Date;
+import java.lang.Thread;
+import java.lang.InterruptedException;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.bean.Threading;
+import org.apache.beehive.controls.api.bean.ThreadingPolicy;
+
+/**
+ * An impl of NestedMThreadControl.
+ * Is this impl is multi-threaded, a thread could stop the loop started by 
another thread.
+ */
[EMAIL PROTECTED]
[EMAIL PROTECTED](ThreadingPolicy.MULTI_THREADED)
+public class NestedMThreadControlImpl implements NestedMThreadControl, 
java.io.Serializable
+{
+       private boolean marker=false;
+       private int counter=0;
+       
+       public int doSlowIncrement(boolean isStopper){
+               if(isStopper){
+                       marker=false;
+                       return counter;                 
+               }
+               else{
+                       marker=true;
+                       while(marker){
+                               counter++;
+                               try{Thread.currentThread().sleep(200);}
+                               catch(InterruptedException 
e){e.printStackTrace();}
+                       }
+                       return counter;
+               }
+       }
+
+}

Added: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControl.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControl.java?rev=169194&view=auto
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControl.java
 (added)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControl.java
 Sun May  8 16:58:52 2005
@@ -0,0 +1,12 @@
+package org.apache.beehive.controls.test.controls.threading.nested;
+
+import org.apache.beehive.controls.api.bean.ControlInterface;
+
+/**
+ * A control interface with one methods declared.
+ */
[EMAIL PROTECTED]
+public interface NestedSThreadControl
+{
+       public int doSlowIncrement(boolean isStopper);
+}

Added: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControlImpl.jcs
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControlImpl.jcs?rev=169194&view=auto
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControlImpl.jcs
 (added)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/threading/nested/NestedSThreadControlImpl.jcs
 Sun May  8 16:58:52 2005
@@ -0,0 +1,41 @@
+package org.apache.beehive.controls.test.controls.threading.nested;
+
+import java.util.Date;
+import java.lang.Thread;
+import java.lang.InterruptedException;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.bean.Threading;
+import org.apache.beehive.controls.api.bean.ThreadingPolicy;
+
+/**
+ * An impl of NestedSThreadControl.
+ * Is this impl is single-threaded, a thread could never stop the loop started 
by another thread.
+ */
[EMAIL PROTECTED]
[EMAIL PROTECTED](ThreadingPolicy.SINGLE_THREADED)
+public class NestedSThreadControlImpl implements NestedSThreadControl, 
java.io.Serializable
+{
+       private boolean marker=false;
+       private int counter=0;
+       /*
+        * This line causes a java.lang.ClassCastException: 
com.sun.tools.javac.code.Symbol$ClassSymbol
+        * private int count=0;
+        */
+       
+       public int doSlowIncrement(boolean isStopper){
+       
+               if(isStopper){
+                       marker=false;
+                       return counter;                 
+               }
+               else{
+                       marker=true;
+                       while(marker){
+                               counter++;
+                               try{Thread.currentThread().sleep(200);}
+                               catch(InterruptedException 
e){e.printStackTrace();}
+                       }
+                       return counter;
+               }
+       }
+}


Reply via email to