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;