Author: steveh
Date: Fri Sep 9 14:08:34 2005
New Revision: 279878
URL: http://svn.apache.org/viewcvs?rev=279878&view=rev
Log:
Fix for BEEHIVE-917: Controls Programming leaves off @ControlImplementation
Modified:
beehive/trunk/docs/forrest/release/src/documentation/content/xdocs/controls/programming.xml
Modified:
beehive/trunk/docs/forrest/release/src/documentation/content/xdocs/controls/programming.xml
URL:
http://svn.apache.org/viewcvs/beehive/trunk/docs/forrest/release/src/documentation/content/xdocs/controls/programming.xml?rev=279878&r1=279877&r2=279878&view=diff
==============================================================================
---
beehive/trunk/docs/forrest/release/src/documentation/content/xdocs/controls/programming.xml
(original)
+++
beehive/trunk/docs/forrest/release/src/documentation/content/xdocs/controls/programming.xml
Fri Sep 9 14:08:34 2005
@@ -123,11 +123,14 @@
<p><strong>Class Declaration (Control Implementation Class)</strong></p>
<source>package org.apache.beehive.controls.examples;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+
[EMAIL PROTECTED]
public class JmsMessageControlImpl implements JmsMessageControl
{
...
}</source>
-<p>The only basic rule for a Control Implementation Class is that it must
always implement the associated Control Public Interface.</p>
+<p>The basic rules for a Control Implementation Class are that it must be
annotated with org.apache.beehive.controls.api.bean.ControlImplementation and
it must implement its associated Control Public Interface. </p>
<p>From these two source files, the Control compiler will create a third
artifact, the ControlBean Generated Class. This class need not necessarily
ever appear within an application in source code form; but for the purposes of
explaining the overall architecture and client model, we will present source
examples of the derived ControlBean Generated Class. </p>
<p>A Controls standard would focus only on the conventions for the external
attributes of ControlBean Generated Classes, not upon the internal
implementation. </p>
<p>The ControlBean Generated Class for the JmsMessageControl would look
like:</p>
@@ -151,8 +154,10 @@
<p>The client model for Controls supports a declarative model for
instantiating a Control instance, when running in containers that support this
model. In this model, the client class can annotate fields on the class
using a special marker annotation
(org.apache.beehive.controls.api.bean.Control) that indicates that the fields
should be initialized to a ControlBean instance of the requested type.</p>
<p>Here is an example of declarative instantiation:</p>
<p><strong>Declarative Instantiation (Client Code)</strong></p>
-<source>Import org.apache.beehive.controls.api.bean.Control;
+<source>import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
[EMAIL PROTECTED]
public class PublisherControlImpl extends PublisherControl
{
<strong>@Control
@@ -169,7 +174,8 @@
<p>It is also possible to parameterize the attributes of a Control at
construction time, again using metadata attributes. These attributes can be
placed on the field declaration (in addition to the @Control annotation) and
will be used to do construction-time initialization.</p>
<p>The second example below shows initialization of the myJmsBean field again.
In this case, an initial value of the @Destination "name" attribute is also
provided using JSR-175 metadata:</p>
<p><strong>Declarative Instantiation with Properties (Client Code)</strong></p>
-<source>public class PublisherControlImpl extends PublisherControl
+<source>@ControlImplementation
+public class PublisherControlImpl extends PublisherControl
{
<strong>@Control @Destination(name="InvoiceQueue") </strong>
public JmsMessageControlBean myJmsBean;</source>
@@ -222,6 +228,9 @@
<p><strong>Implementing Operations (Control Implementation Class)</strong></p>
<source>package org.apache.beehive.controls.examples;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+
[EMAIL PROTECTED]
public class JmsMessageControlImpl implements JmsMessageControl
{
<strong>public void sendTextMessage(String text)
@@ -336,8 +345,10 @@
<p><strong>Firing Events (Control Implementation Class)</strong></p>
<source>package org.apache.beehive.controls.examples;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
import org.apache.beehive.controls.api.events.Client;
[EMAIL PROTECTED]
public class JmsMessageControlImpl implements JmsMessageControl
{
<strong>@Client Callback client;</strong>
@@ -362,9 +373,10 @@
<p>The previous example could be rewritten using the declarative event
handling style as:</p>
<p><strong>Declarative Handling of Events (Client Code)</strong></p>
-<source>
+<source>import org.apache.beehive.controls.api.bean.ControlImplementation;
import org.apache.beehive.controls.api.events.EventHandler
[EMAIL PROTECTED]
public class PublisherControlImpl extends PublisherControl
{
@Control
@@ -419,9 +431,11 @@
<p><strong>Declarative Access to Context Services (Control Implementation
Class)</strong></p>
<source>package org.apache.beehive.controls.examples;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
import org.apache.beehive.controls.api.context.Context;
-import org.apache.beehive.controls.api.context.ControlBeanContext;
+import org.apache.beehive.controls.api.context.ControlBeanContext;
[EMAIL PROTECTED]
public class JmsMessageControlImpl implements JmsMessageControl
{
<strong>@Context ControlBeanContext context;</strong>
@@ -445,9 +459,11 @@
<source>package org.apache.beehive.controls.examples;
import javax.servlet.ServletContext;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
import org.apache.beehive.controls.api.context.Context;
import org.apache.beehive.controls.api.context.ControlBeanContext;
[EMAIL PROTECTED]
public class JmsMessageControlImpl implements JmsMessageControl
{
<strong>@Context ControlBeanContext context;</strong>
@@ -602,9 +618,11 @@
<p><strong>Acccessing Control Properties (Client Implementation
Class)</strong></p>
<source>package org.apache.beehive.controls.examples;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
import org.apache.beehive.controls.api.context.Context;
import org.apache.beehive.controls.api.context.ControlBeanContext;
[EMAIL PROTECTED]
public class JmsMessageControlImpl implements JmsMessageControl
{
<strong>@Context ControlBeanContext context;</strong>
@@ -802,10 +820,12 @@
<p><strong>Implementing Extended Operations (Control Implementation
Class)</strong></p>
<source>package org.apache.beehive.controls.examples;
-import org.apache.beehive.controls.api.context/.Context;
-import org.apache.beehive.controls.api.context.ControlBeanContext;
-import org.apache.beehive.controls.api.bean.Extensible;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.context.Context;
+import org.apache.beehive.controls.api.context.ControlBeanContext;
+import org.apache.beehive.controls.api.bean.Extensible;
[EMAIL PROTECTED]
public class JmsMessageControlImpl implements JmsMessageControl, Extensible
{
@Context ControlBeanContext context;
@@ -1101,11 +1121,13 @@
<p><strong>Declarative Handling of Life Cycle Events (Control Implementation
Class)</strong></p>
<source>package org.apache.beehive.controls.examples;
+import org.apache.beehive.controls.api.bean.ControlImplementation;
import org.apache.beehive.controls.api.context.Context;
import org.apache.beehive.controls.api.context.ResourceContext;
import org.apache.beehive.controls.api.events.EventHandler;
-Public class JmsMessageControlImpl implements JmsMessageControl
[EMAIL PROTECTED]
+public class JmsMessageControlImpl implements JmsMessageControl
{
<strong>@Context ResourceContext resourceContext;