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/06 20:58:05 UTC
svn commit: r383641 - 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: Mon Mar 6 11:58:02 2006
New Revision: 383641
URL: http://svn.apache.org/viewcvs?rev=383641&view=rev
Log:
Fix for BEEHIVE-960, added qualified class names for event support as necessary to control bean velocity template.
Added new controls unit tests for this fix.
Added:
beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/
beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBase.java (with props)
beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBaseImpl.java (with props)
beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastExt.java (with props)
beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBase.java (with props)
beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBaseImpl.java (with props)
beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastExt.java (with props)
beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java (with props)
Modified:
beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptEventSet.java
beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/ControlBean.vm
Modified: beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptEventSet.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptEventSet.java?rev=383641&r1=383640&r2=383641&view=diff
==============================================================================
--- beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptEventSet.java (original)
+++ beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/generator/AptEventSet.java Mon Mar 6 11:58:02 2006
@@ -268,6 +268,29 @@
}
/**
+ * Returns the short name for this notifier's base class.
+ */
+ public String getNotifierExtendsShortName() {
+
+ if (_superEventSet == null)
+ {
+ if (_unicast)
+ return "UnicastEventNotifier";
+ else
+ return "EventNotifier";
+ }
+
+ return _superEventSet.getNotifierClass();
+ }
+
+ /**
+ * Return true if this notifier extends the UnicastEventNotifier or EventNotifier base class.
+ */
+ public boolean isExtendsNotifierBase() {
+ return _superEventSet == null;
+ }
+
+ /**
* Returns the name of the method used to register a new EventSet listener
*/
public String getAddListenerMethod()
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=383641&r1=383640&r2=383641&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 Mon Mar 6 11:58:02 2006
@@ -318,10 +318,10 @@
$returnType __bc_retval = ${event.defaultReturnValue};
#end
- $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.shortName}.class);
+ $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.className}.class);
#if ($event.eventSet.unicast)
- $event.eventSet.formalShortName __bc_listener = ($event.eventSet.formalShortName)__bc_notifier.getListener();
+ $event.eventSet.formalClassName __bc_listener = ($event.eventSet.formalClassName)__bc_notifier.getListener();
//
// If an event listener has been registered, then deliver the event
@@ -399,7 +399,7 @@
#end
while (__bc_listenerIter.hasNext())
{
- $event.eventSet.formalShortName __bc_listener = ($eventSet.formalShortName)__bc_listenerIter.next();
+ $event.eventSet.formalClassName __bc_listener = ($eventSet.formalClassName)__bc_listenerIter.next();
__bc_listener.${event.name}($event.argList);
}
}
@@ -485,8 +485,12 @@
* back to a register listener.
*/
protected class $eventSet.notifierClass
+ #if ($eventSet.extendsNotifierBase)
extends $eventSet.notifierExtends
- implements ${eventSet.formalShortName}, java.io.Serializable
+ #else
+ extends ${bean.superClass.className}.${eventSet.notifierExtendsShortName}
+ #end
+ implements ${eventSet.formalClassName}, java.io.Serializable
{
private static final long serialVersionUID = 1L;
@@ -511,21 +515,21 @@
/**
* Registers a new listener for ${eventSet.shortName} events on the bean.
*/
- public synchronized void ${eventSet.addListenerMethod}($eventSet.formalShortName listener)
+ public synchronized void ${eventSet.addListenerMethod}($eventSet.formalClassName listener)
#if ($eventSet.unicast)
throws java.util.TooManyListenersException
#end
{
- $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.shortName}.class);
+ $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.className}.class);
__bc_notifier.addListener(listener);
}
/**
* Unregisters an existing listener for ${eventSet.shortName} events on the bean.
*/
- public synchronized void ${eventSet.removeListenerMethod}($eventSet.formalShortName listener)
+ public synchronized void ${eventSet.removeListenerMethod}($eventSet.formalClassName listener)
{
- $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.shortName}.class);
+ $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.className}.class);
__bc_notifier.removeListener(listener);
}
@@ -533,10 +537,10 @@
* Returns the array of registered listeners for ${eventSet.shortName} events on the bean, or
* an empty array if no listener has been registered
*/
- public synchronized $eventSet.formalShortName [] ${eventSet.getListenersMethod}()
+ public synchronized $eventSet.formalClassName [] ${eventSet.getListenersMethod}()
{
- $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.shortName}.class);
- $eventSet.formalShortName [] __bc_listeners = new ${eventSet.shortName}[__bc_notifier.getListenerCount()];
+ $eventSet.notifierClass __bc_notifier = ($eventSet.notifierClass)getEventNotifier(${eventSet.className}.class);
+ $eventSet.formalClassName [] __bc_listeners = new ${eventSet.className}[__bc_notifier.getListenerCount()];
__bc_notifier.getListeners(__bc_listeners);
return __bc_listeners;
}
Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBase.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBase.java?rev=383641&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBase.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBase.java Mon Mar 6 11:58:02 2006
@@ -0,0 +1,35 @@
+/*
+ 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;
+
+/**
+ * Base control interface for testing eventsets with same name (multicast).
+ */
+@ControlInterface
+public interface MulticastBase {
+
+ @EventSet()
+ public interface Callback {
+ void method1();
+ }
+}
+
+
Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBase.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBaseImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBaseImpl.java?rev=383641&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBaseImpl.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBaseImpl.java Mon Mar 6 11:58:02 2006
@@ -0,0 +1,34 @@
+/*
+ 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;
+
+/**
+ * Base control for testing inherited eventsets with same name (multicast).
+ */
+@ControlImplementation(isTransient=true)
+public class MulticastBaseImpl implements MulticastBase, Extensible {
+
+ public Object invoke(Method m, Object[] args) throws Throwable
+ {
+ return null;
+ }
+}
Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastBaseImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastExt.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastExt.java?rev=383641&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastExt.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastExt.java Mon Mar 6 11:58:02 2006
@@ -0,0 +1,33 @@
+/*
+ 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;
+
+/**
+ * Control for testing apt compilation of inherited eventsets with same name (multicast).
+ */
+@ControlExtension
+public interface MulticastExt extends MulticastBase {
+
+ @EventSet()
+ public interface Callback extends MulticastBase.Callback {
+ void method2();
+ }
+}
Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/MulticastExt.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBase.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBase.java?rev=383641&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBase.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBase.java Mon Mar 6 11:58:02 2006
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2006 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;
+
+/**
+ * Control interface for testing inherited eventset's with same name (unicast).
+ */
+@ControlInterface
+public interface UnicastBase {
+
+ @EventSet(unicast=true)
+ public interface Callback {
+ void method1();
+ }
+}
Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBase.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBaseImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBaseImpl.java?rev=383641&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBaseImpl.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBaseImpl.java Mon Mar 6 11:58:02 2006
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2006 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;
+
+/**
+ * Base class for testing inherited eventset's with same name (unicast case).
+ */
+@ControlImplementation(isTransient=true)
+public class UnicastBaseImpl implements UnicastBase, Extensible {
+
+ public Object invoke(Method m, Object[] args) throws Throwable
+ {
+ return null;
+ }
+}
Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastBaseImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastExt.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastExt.java?rev=383641&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastExt.java (added)
+++ beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastExt.java Mon Mar 6 11:58:02 2006
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2006 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;
+
+/**
+ * Extension of base control with eventset of same name (unicast case).
+ */
+@ControlExtension
+public interface UnicastExt extends UnicastBase {
+
+ @EventSet(unicast=true)
+ public interface Callback extends UnicastBase.Callback {
+ String method2();
+ }
+}
Propchange: beehive/trunk/controls/test/src/junit-controls/org/apache/beehive/controls/test/controls/eventsetApt/UnicastExt.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: 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=383641&view=auto
==============================================================================
--- beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java (added)
+++ beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java Mon Mar 6 11:58:02 2006
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2006 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.junit;
+
+import org.apache.beehive.controls.api.bean.Control;
+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 java.util.List;
+
+/**
+ * Junit tests for making sure that APT can generate controls with eventsets when
+ * the extended controls event set has the same name as the base control's event set.
+ *
+ * If this doesn't work compilation will fail, all thats really necessary here is
+ * to verify the controls can be initialized.
+ */
+public class EventsetAptTest
+ extends ControlTestCase {
+
+ @Control
+ private MulticastExt _multicastEvts;
+
+ @Control
+ private UnicastExt _unicastEvts;
+
+ public void testMulticastEvtApt() {
+ assertNotNull(_multicastEvts);
+ }
+
+ public void testUnicastEvtApt() {
+ assertNotNull(_unicastEvts);
+ }
+}
Propchange: beehive/trunk/controls/test/src/junit-tests/org/apache/beehive/controls/test/junit/EventsetAptTest.java
------------------------------------------------------------------------------
svn:eol-style = native