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;
+ }
+ }
+}