You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by cs...@apache.org on 2006/03/14 18:28:39 UTC

svn commit: r385840 - in /beehive/trunk/controls: src/runtime/org/apache/beehive/controls/runtime/generator/ test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/ test/src/junit-tests/org/apache/beehive/controls/test/junit/

Author: cschoett
Date: Tue Mar 14 09:28:37 2006
New Revision: 385840

URL: http://svn.apache.org/viewcvs?rev=385840&view=rev
Log:
Fix for BEEHIVE-1079, small tweak to the ControlBean.vm template, added unit tests.


Added:
    beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBuffer.java   (with props)
    beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBufferService.java   (with props)
    beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBase.java   (with props)
    beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBaseImpl.java   (with props)
    beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsExt.java   (with props)
Modified:
    beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/ControlBean.vm
    beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java

Modified: beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/ControlBean.vm
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/ControlBean.vm?rev=385840&r1=385839&r2=385840&view=diff
==============================================================================
--- beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/ControlBean.vm (original)
+++ beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/ControlBean.vm Tue Mar 14 09:28:37 2006
@@ -448,7 +448,7 @@
             org.apache.beehive.controls.spi.svc.Interceptor __bc_i = ensureInterceptor( __bc_n );
             try
             {
-	            __bc_i.preEvent( ${bean.shortName}.this, ${eventSet.formalShortName}.class , method, argArray );
+	            __bc_i.preEvent( ${bean.shortName}.this, ${eventSet.formalClassName}.class , method, argArray );
 	        }
 	        catch (org.apache.beehive.controls.spi.svc.InterceptorPivotException __bc_ipe)
 	        {
@@ -471,7 +471,7 @@
 	        {
 	        	pivotedInterceptor = null;
 	            org.apache.beehive.controls.spi.svc.Interceptor __bc_i = ensureInterceptor( __bc_n );
-    	        __bc_i.postEvent( ${bean.shortName}.this, ${eventSet.formalShortName}.class , method, argArray, retval, t );
+    	        __bc_i.postEvent( ${bean.shortName}.this, ${eventSet.formalClassName}.class , method, argArray, retval, t );
     	    }
         }
     }
@@ -637,7 +637,7 @@
        extends ${bean.superClass.className}${bean.superTypeBinding}
        implements ${intf.formalClassName}
 {
-    #if ($intf.operations.size() != 0)
+    #if ($intf.operations.size() != 0 || $intf.eventSetCount != 0)
     #declareMethodStatics()
 
     static

Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBuffer.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBuffer.java?rev=385840&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBuffer.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBuffer.java Tue Mar 14 09:28:37 2006
@@ -0,0 +1,30 @@
+package org.apache.beehive.controls.test.controls.eventsetApt;
+
+import org.apache.beehive.controls.spi.svc.InterceptorAnnotation;
+
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+
+
+/**
+ * Requests that a method or event is delivered asynchronously.
+ * This annotation must be placed in a control interface that
+ * is annotation already with @ControlInterface, @ControlExtension or @EventSet.
+ * This annotation should be placed on methods or events that should be asynchronous.
+ *
+ * <br>NOTE: Message buffering is ONLY currently supported on controls being used within
+ * a web service.
+ */
+@InterceptorAnnotation (service= MessageBufferService.class)
+@Documented
+@Retention (RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface MessageBuffer
+{
+    public boolean enable() default true;
+    public int retryCount() default 0;
+    public String retryDelay() default "0s";
+}

Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBuffer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBufferService.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBufferService.java?rev=385840&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBufferService.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBufferService.java Tue Mar 14 09:28:37 2006
@@ -0,0 +1,15 @@
+package org.apache.beehive.controls.test.controls.eventsetApt;
+
+import org.apache.beehive.controls.spi.svc.Interceptor;
+
+/*
+ * This class defines the MessageBuffer contextual service
+ * This isn't exposed to the user, but is used in the discovery
+ * process via META-INF/services to map an interceptor implementation
+ * to the MessageBuffer service to hook this all into the runtime.
+ *  
+ * @author Copyright (c) 2004 by BEA Systems. All Rights Reserved.
+ */
+
+public interface MessageBufferService extends Interceptor
+{}

Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MessageBufferService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBase.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBase.java?rev=385840&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBase.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBase.java Tue Mar 14 09:28:37 2006
@@ -0,0 +1,32 @@
+/*
+   Copyright 2004-2005 The Apache Software Foundation.
+
+   Licensed 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.
+  
+   $Header:$
+*/
+package org.apache.beehive.controls.test.controls.eventsetApt;
+
+import org.apache.beehive.controls.api.bean.ControlInterface;
+import org.apache.beehive.controls.api.events.EventSet;
+
+@ControlInterface
+public interface NoMethodsBase {
+
+    @EventSet()
+    public interface Callback {
+      void method1();
+    }
+}
+
+

Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBaseImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBaseImpl.java?rev=385840&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBaseImpl.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBaseImpl.java Tue Mar 14 09:28:37 2006
@@ -0,0 +1,31 @@
+/*
+   Copyright 2004-2005 The Apache Software Foundation.
+
+   Licensed 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.
+  
+   $Header:$
+*/
+package org.apache.beehive.controls.test.controls.eventsetApt;
+
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.bean.Extensible;
+import java.lang.reflect.Method;
+
+@ControlImplementation(isTransient=true)
+public class NoMethodsBaseImpl implements NoMethodsBase, Extensible {
+
+    public Object invoke(Method m, Object[] args) throws Throwable
+    {
+	    return "Hello";
+    }
+}

Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsBaseImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsExt.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsExt.java?rev=385840&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsExt.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsExt.java Tue Mar 14 09:28:37 2006
@@ -0,0 +1,31 @@
+/*
+   Copyright 2004-2005 The Apache Software Foundation.
+
+   Licensed 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.
+  
+   $Header:$
+*/
+package org.apache.beehive.controls.test.controls.eventsetApt;
+
+import org.apache.beehive.controls.api.bean.ControlExtension;
+import org.apache.beehive.controls.api.events.EventSet;
+import org.apache.beehive.controls.test.controls.eventsetApt.MessageBuffer;
+
+@ControlExtension
+public interface NoMethodsExt extends NoMethodsBase {
+    @EventSet()
+    public interface Callback extends NoMethodsBase.Callback {
+      @MessageBuffer(retryCount=2, retryDelay="1s")
+      void method2();
+    }
+}

Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/NoMethodsExt.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java?rev=385840&r1=385839&r2=385840&view=diff
==============================================================================
--- beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java (original)
+++ beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java Tue Mar 14 09:28:37 2006
@@ -22,6 +22,7 @@
 import org.apache.beehive.controls.test.controls.lifecycle.ControlLifecycle;
 import org.apache.beehive.controls.test.controls.eventsetApt.MulticastExt;
 import org.apache.beehive.controls.test.controls.eventsetApt.UnicastExt;
+import org.apache.beehive.controls.test.controls.eventsetApt.NoMethodsExt;
 
 import java.util.List;
 
@@ -41,11 +42,23 @@
     @Control
     private UnicastExt _unicastEvts;
 
+    @Control
+    private NoMethodsExt _noMethods;
+
     public void testMulticastEvtApt() {
         assertNotNull(_multicastEvts);
     }
 
     public void testUnicastEvtApt() {
         assertNotNull(_unicastEvts);
+    }
+
+    /**
+     * test case for extended control with no interface methods,
+     * but an event set with an annotated member.  This is
+     * an apt compilation test only.
+     */
+    public void testNoMethodsEvtSet() {
+        assertNotNull(_noMethods);
     }
 }