Dear Wiki user,

You have subscribed to a wiki page or wiki category on "James Wiki" for change 
notification.

The following page has been changed by SergeyLubinskiy:
http://wiki.apache.org/james/SummerOfCode2005/SergeyLubinskiyFastFail/ProtocolLet

------------------------------------------------------------------------------
+ === Definition ===
+ 
  Member of [:../: New SMTP Block] 's 
[http://c2.com/cgi/wiki?ChainOfResponsibilityPattern Chain Of Reposiblity].
  
  Processes [http://www.faqs.org/rfcs/rfc2821.html SMTP protocol commands] one 
at a time.
  
  Follows [http://www.picocontainer.org/Setter+Injection Setter Injection] 
pattern for receiving both configuration parameters and 
[http://loom.codehaus.org/Component+layers Phoenix Blocks] it depends on.
  
+ === Implementation Details ===
+ 
- [:../: New SMTP Block] introspects implementation class for each of its 
subordinate ProtocolLet -s and deducts
+ [:../: New SMTP Block] introspects implementation class for each of its 
subordinate ProtocolLet -s and deducts its
-  * XML format to serialize/deserialize its configuration
+  * XML configuration serialization format
-  * 
[http://docs.jboss.org/jbossas/javadoc/3.2.7/jmx/javax/management/openmbean/OpenType.html
 JMX Open Type Descriptor] to serialize/deserialize its configuration
+  * configuration 
[http://docs.jboss.org/jbossas/javadoc/3.2.7/jmx/javax/management/openmbean/OpenType.html
 JMX Open Type Descriptor]
-  * list of [http://loom.codehaus.org/Component+layers Phoenix Blocks] it 
depends on
+  * list of [http://loom.codehaus.org/Component+layers Phoenix Blocks] it 
depends on.
  
  TODO: choose a way to distinguish setters for injecting configuration values 
from those for injecting dependencies. Alternative approaches are:
   * use some naming convention, like {{{injectFoo}}}, {{{setFooDependency}}}
@@ -17, +21 @@

   * use metadata files, like .xinfo
   * consider that every setter coupled with getter is a configuration value 
and every one without is a dependency
  
+ === Lifecycle ===
+ 
+ [:../: New SMTP Block]
+  * reads XML configuration from file
+  * instantiates ProtocolLet
+ 
+ [:../: New SMTP Block] JMX facility
+  * exposes all of the configuration as a single 
[http://docs.jboss.org/jbossas/javadoc/3.2.7/jmx/javax/management/openmbean/OpenType.html
 Open Type] JMX attribute
+  * when administrator alters configuration by specifing a new value for this 
attribute
+   * creates a new instance of the same ProtocolLet
+   * configures it according to the new configuration
+   * decomissions the old instance and replaces it with the new one
+  * upon invocation of a special JMX method saves configuration back to file 
in XML format
+ 

Reply via email to