You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by st...@apache.org on 2005/09/09 23:08:35 UTC
svn commit: r279878 -
/beehive/trunk/docs/forrest/release/src/documentation/content/xdocs/controls/programming.xml
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;
+
+@ControlImplementation
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;
+@ControlImplementation
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;
+
+@ControlImplementation
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;
+@ControlImplementation
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
+@ControlImplementation
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;
+@ControlImplementation
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;
+@ControlImplementation
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;
+@ControlImplementation
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;
+@ControlImplementation
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
+@ControlImplementation
+public class JmsMessageControlImpl implements JmsMessageControl
{
<strong>@Context ResourceContext resourceContext;