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