You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@excalibur.apache.org by rd...@apache.org on 2009/06/16 19:55:28 UTC

svn commit: r785324 [15/28] - in /excalibur/site: ./ css/ developing/ event/ fortress/ framework/ images/logos/ instrument/ lifecycle/ sourceresolve/ store/ xmlutil/

Modified: excalibur/site/framework/guide-patterns-avalon.html
URL: http://svn.apache.org/viewvc/excalibur/site/framework/guide-patterns-avalon.html?rev=785324&r1=785323&r2=785324&view=diff
==============================================================================
--- excalibur/site/framework/guide-patterns-avalon.html (original)
+++ excalibur/site/framework/guide-patterns-avalon.html Tue Jun 16 17:55:25 2009
@@ -1,31 +1,455 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Apache Excalibur - </title><style type="text/css" media="all">
-          @import url("../style/maven-base.css");
-          
-			    @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://excalibur.apache.org/" id="projectLogo"><img alt="Apache Excalibur" src="http://excalibur.apache.org/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright">
-        
-        <a href="../index.html">Home</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../fortress/index.html">Fortress</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../component-list.html">Components</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../containerkit.html">Containerkit</a>
-      </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuEssentials"><h5>Essentials</h5><ul><li class="none"><a href="../index.html">Overview</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../svn.html">Subversion</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink" title="External Link">FAQ</a></li><li class="none"><a href="http://excalibur.apache.org/apidocs/" class="externalLink" title="External Link">Javadocs</a></li><li class="none"><a href="http://excalibur.apache.org/download.cgi" class="externalLink" title="External Link">Download</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="collapsed"><a href="../misc.html">Miscellaneous</a></li></ul></div><div
  id="menuFortress"><h5>Fortress</h5><ul><li class="none"><a href="../fortress/index.html">Overview</a></li><li class="none"><a href="../fortress/features.html">Features Oriented</a></li><li class="none"><a href="../fortress/getting-started.html">Getting Started</a></li><li class="none"><a href="../fortress/using-meta-info.html">Using Meta Info</a></li><li class="none"><a href="../fortress/cli.html">CLI</a></li><li class="none"><a href="../fortress/swing.html">Swing</a></li><li class="none"><a href="../fortress/servlet.html">Servlet</a></li><li class="none"><a href="../lifecycle/index.html">Lifecycle Extensions</a></li><li class="none"><a href="../fortress/design-notes.html">Design Notes</a></li></ul></div><div id="menuFramework"><h5>Framework</h5><ul><li class="expanded"><a href="../framework/index.html">Documentation</a><ul><li class="none"><a href="../framework/lifecycle.html">Lifecycle</a></li><li class="none"><a href="../framework/guide-cop-in-avalon.html">COP in Avalon<
 /a></li><li class="none"><strong><a href="../framework/guide-patterns-avalon.html">Patterns in Avalon</a></strong></li><li class="none"><a href="../framework/guide-patterns-ioc.html">IOC Patterns</a></li><li class="none"><a href="../framework/guide-patterns-ioc-security.html">IOC Security</a></li><li class="none"><a href="../framework/guide-patterns-soc.html">Seperation of Concerns</a></li><li class="none"><a href="../framework/guide-patterns-soii.html">Interface and Implementation</a></li><li class="none"><a href="../framework/component-design.html">Designing Components</a></li><li class="none"><a href="../framework/best-practices.html">Best Practices</a></li></ul></li><li class="collapsed"><a href="../developing/index.html">Developing</a></li></ul></div><div id="menuComponents"><h5>Components</h5><ul><li class="none"><a href="../component-list.html">Overview</a></li><li class="collapsed"><a href="../sourceresolve/index.html">Sourceresolver</a></li><li class="collapsed"><a 
 href="../store/index.html">Store</a></li><li class="none"><a href="../thread.html">Thread</a></li><li class="collapsed"><a href="../xmlutil/index.html">XMLUtil</a></li></ul></div><div id="menuContainerkit"><h5>Containerkit</h5><ul><li class="none"><a href="../containerkit.html">Overview</a></li><li class="collapsed"><a href="../instrument/index.html">Instrument</a></li><li class="collapsed"><a href="../lifecycle/index.html">Lifecycle</a></li><li class="none"><a href="../logger.html">Logger</a></li></ul></div><div id="menuDeprecated_Materials"><h5>Deprecated Materials</h5><ul><li class="none"><a href="../deprecation.html">Overview</a></li><li class="expanded"><a href="../deprecation.html">Old Documentation</a><ul><li class="none"><a href="../component.html">ECM</a></li><li class="collapsed"><a href="../event/index.html">Event</a></li><li class="none"><a href="../configuration.html">Configuration</a></li></ul></li></ul></div><div id="menuThanks"><h5>Thanks</h5><ul><li class="n
 one"><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="External Link">to our sponsors!</a></li><li class="none"><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="External Link">Sponsor the ASF</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><a href="../index.html">About Apache Excalibur</a></li><li class="collapsed"><a href="../project-info.html">Project Info</a></li><li class="collapsed"><a href="../maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process</a></li></ul></div></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Getting_Started_with_Patterns"></a><h2>Getting Started with Patterns</h2><p>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <title>Excalibur - </title>
+    <style type="text/css" media="all">
+      @import url("../css/maven-base.css");
+      @import url("../css/maven-theme.css");
+      @import url("../css/site.css");
+    </style>
+    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+          </head>
+  <body class="composite">
+    <div id="banner">
+                    <span id="bannerLeft">
+    
+            Excalibur
+    
+            </span>
+                    <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="breadcrumbs">
+          
+  
+
+  
+    
+  
+  
+    
+            <div class="xleft">
+        Last Published: 2009-06-16
+                      </div>
+            <div class="xright">            <a href="../index.html">Home</a>
+            |
+                <a href="../fortress/index.html">Fortress</a>
+            |
+                <a href="../component-list.html">Components</a>
+            |
+                <a href="../containerkit.html">Containerkit</a>
+            
+  
+
+  
+    
+  
+  
+    
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="leftColumn">
+      <div id="navcolumn">
+           
+  
+
+  
+    
+  
+  
+    
+                   <h5>Essentials</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../index.html">Overview</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../mail-lists.html">Mailing Lists</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../svn.html">Subversion</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://wiki.apache.org/excalibur/" class="externalLink">Wiki</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink">FAQ</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://excalibur.apache.org/apidocs/" class="externalLink">Javadocs</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://excalibur.apache.org/download.cgi" class="externalLink">Download</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../issue-tracking.html">Issue Tracking</a>
+          </li>
+              
+                
+              
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../misc.html">Miscellaneous</a>
+                </li>
+          </ul>
+              <h5>Fortress</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../fortress/index.html">Overview</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/features.html">Features Oriented</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/getting-started.html">Getting Started</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/using-meta-info.html">Using Meta Info</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/cli.html">CLI</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/swing.html">Swing</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/servlet.html">Servlet</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../lifecycle/index.html">Lifecycle Extensions</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/design-notes.html">Design Notes</a>
+          </li>
+          </ul>
+              <h5>Framework</h5>
+            <ul>
+              
+                
+              
+      
+            
+      
+            
+            
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+            <li class="expanded">
+                    <a href="../framework/index.html">Documentation</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../framework/lifecycle.html">Lifecycle</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-cop-in-avalon.html">COP in Avalon</a>
+          </li>
+                  
+    <li class="none">
+              <strong>Patterns in Avalon</strong>
+        </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-ioc.html">IOC Patterns</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-ioc-security.html">IOC Security</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-soc.html">Seperation of Concerns</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-soii.html">Interface and Implementation</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/component-design.html">Designing Components</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/best-practices.html">Best Practices</a>
+          </li>
+              </ul>
+        </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../developing/index.html">Developing</a>
+                </li>
+          </ul>
+              <h5>Components</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../component-list.html">Overview</a>
+          </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../sourceresolve/index.html">Sourceresolver</a>
+                </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../store/index.html">Store</a>
+                </li>
+              
+    <li class="none">
+                    <a href="../thread.html">Thread</a>
+          </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../xmlutil/index.html">XMLUtil</a>
+                </li>
+          </ul>
+              <h5>Containerkit</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../containerkit.html">Overview</a>
+          </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+                  
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../instrument/index.html">Instrument</a>
+                </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../lifecycle/index.html">Lifecycle</a>
+                </li>
+              
+    <li class="none">
+                    <a href="../logger.html">Logger</a>
+          </li>
+          </ul>
+              <h5>Deprecated Materials</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../deprecation.html">Overview</a>
+          </li>
+              
+          
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+                  
+      
+              
+        <li class="expanded">
+                    <a href="../deprecation.html">Old Documentation</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../component.html">ECM</a>
+          </li>
+                  
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../event/index.html">Event</a>
+                </li>
+                  
+    <li class="none">
+                    <a href="../configuration.html">Configuration</a>
+          </li>
+              </ul>
+        </li>
+          </ul>
+              <h5>Thanks</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../../foundation/thanks.html">to our sponsors!</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../../foundation/sponsorship.html">Sponsor the ASF</a>
+          </li>
+          </ul>
+                                           <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+            <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+          </a>
+                       
+  
+
+  
+    
+  
+  
+    
+        </div>
+    </div>
+    <div id="bodyColumn">
+      <div id="contentBox">
+        <header>Patterns in Avalon<authors><person name="Avalon Documentation Team" email="dev@avalon.apache.org"></authors></header><div class="section"><h2><a name="Getting_Started_with_Patterns"></a>Getting Started with Patterns</h2>
+<p>
         Avalon takes many design patterns and architectural mindsets, and
         implements the best ones for servers.  There are different kinds of
         patterns that represent different aspects of Avalon. Avalon uses four
@@ -33,39 +457,74 @@
         Implementation, Inversion of Control, Multi-Dimensional Separation
         of Concerns, and Aspect Oriented Programming.  Avalon also uses several
         architectural patterns like the Singleton and the Factory.
-      </p></div><div class="section"><a name="The_Avalon_Patterns_in_short"></a><h2>The Avalon Patterns in short</h2><p>
+      </p>
+</div>
+<div class="section"><h2><a name="The_Avalon_Patterns_in_short"></a>The Avalon Patterns in short</h2>
+<p>
         We provide you with a short description of the patterns first, with a
         detailed description of each pattern on a separate page.
-      </p><div class="subsection"><a name="Separation_of_Interface_and_Implementation"></a><h3>Separation of Interface and Implementation</h3><p>
-<strong>Summary:</strong> The Separation of Interface and Implementation is
+      </p>
+<div class="section"><h3><a name="Separation_of_Interface_and_Implementation"></a>Separation of Interface and Implementation</h3>
+<p><strong>Summary:</strong> The Separation of Interface and Implementation is
         a core feature of the Java language. However, it is often misused so we
         list it as one of the Avalon patterns, and our use of it is extensive.
-        </p><p>
-<a href="guide-patterns-soii.html">
+        </p>
+<p><a href="guide-patterns-soii.html">
           More Information...
-        </a>
-</p></div><div class="subsection"><a name="Inversion_of_Control"></a><h3>Inversion of Control</h3><p>
-<strong>Summary:</strong> Avalon not only has an inheritance hierarchy, but also a
+        </a></p>
+</div>
+<div class="section"><h3><a name="Inversion_of_Control"></a>Inversion of Control</h3>
+<p><strong>Summary:</strong> Avalon not only has an inheritance hierarchy, but also a
         component hierarchy. In this hierarchy, the control of program flow is
         completely in the hands of the parent component(s), as soldiers in the
         military take orders from their officers.
-        </p><p>
-<link href="guide-patterns-ioc.html">
+        </p>
+<p><link href="guide-patterns-ioc.html">
           More Information...
-        </link>
-</p></div><div class="subsection"><a name="Multi-Dimensional_Separation_of_Concerns"></a><h3>Multi-Dimensional Separation of Concerns</h3><p>
-<strong>Summary:</strong> You just read the introduction about patterns before
+        </link></p>
+</div>
+<div class="section"><h3><a name="Multi-Dimensional_Separation_of_Concerns"></a>Multi-Dimensional Separation of Concerns</h3>
+<p><strong>Summary:</strong> You just read the introduction about patterns before
         reading about Avalon's patterns because that enables you to reuse the
         knowledge you gained about patterns in a context other than that of
         Avalon. We do this with software as well.
-        </p><p>
-<link href="guide-patterns-soc.html">
+        </p>
+<p><link href="guide-patterns-soc.html">
           More Information...
-        </link>
-</p></div><div class="subsection"><a name="Aspect-Oriented_Programming"></a><h3>Aspect-Oriented Programming</h3><p>
-<strong>Summary:</strong> this is the next logical step ofter Separation of
+        </link></p>
+</div>
+<div class="section"><h3><a name="Aspect-Oriented_Programming"></a>Aspect-Oriented Programming</h3>
+<p><strong>Summary:</strong> this is the next logical step ofter Separation of
         Concerns. Many concerns cannot be centrally addressed using the standard
         OOP mechanisms. Using AOP (which is an extension to OOP), we would be
         able to do so in a simple fashion. As there is no good AOP facility
-        in Java, we use "aspect marker interfaces" and COP instead.
-        </p></div></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 1997-2007, The Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+        in Java, we use &quot;aspect marker interfaces&quot; and COP instead.
+        </p>
+</div>
+</div>
+
+      </div>
+    </div>
+    <div class="clear">
+      <hr/>
+    </div>
+    <div id="footer">
+      <div class="xright">&#169;  
+          2009
+    
+          The Apache Software Foundation
+          
+  
+
+  
+    
+  
+  
+    
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>

Modified: excalibur/site/framework/guide-patterns-ioc-security.html
URL: http://svn.apache.org/viewvc/excalibur/site/framework/guide-patterns-ioc-security.html?rev=785324&r1=785323&r2=785324&view=diff
==============================================================================
--- excalibur/site/framework/guide-patterns-ioc-security.html (original)
+++ excalibur/site/framework/guide-patterns-ioc-security.html Tue Jun 16 17:55:25 2009
@@ -1,38 +1,463 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Apache Excalibur - </title><style type="text/css" media="all">
-          @import url("../style/maven-base.css");
-          
-			    @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://excalibur.apache.org/" id="projectLogo"><img alt="Apache Excalibur" src="http://excalibur.apache.org/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright">
-        
-        <a href="../index.html">Home</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../fortress/index.html">Fortress</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../component-list.html">Components</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../containerkit.html">Containerkit</a>
-      </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuEssentials"><h5>Essentials</h5><ul><li class="none"><a href="../index.html">Overview</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../svn.html">Subversion</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink" title="External Link">FAQ</a></li><li class="none"><a href="http://excalibur.apache.org/apidocs/" class="externalLink" title="External Link">Javadocs</a></li><li class="none"><a href="http://excalibur.apache.org/download.cgi" class="externalLink" title="External Link">Download</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="collapsed"><a href="../misc.html">Miscellaneous</a></li></ul></div><div
  id="menuFortress"><h5>Fortress</h5><ul><li class="none"><a href="../fortress/index.html">Overview</a></li><li class="none"><a href="../fortress/features.html">Features Oriented</a></li><li class="none"><a href="../fortress/getting-started.html">Getting Started</a></li><li class="none"><a href="../fortress/using-meta-info.html">Using Meta Info</a></li><li class="none"><a href="../fortress/cli.html">CLI</a></li><li class="none"><a href="../fortress/swing.html">Swing</a></li><li class="none"><a href="../fortress/servlet.html">Servlet</a></li><li class="none"><a href="../lifecycle/index.html">Lifecycle Extensions</a></li><li class="none"><a href="../fortress/design-notes.html">Design Notes</a></li></ul></div><div id="menuFramework"><h5>Framework</h5><ul><li class="expanded"><a href="../framework/index.html">Documentation</a><ul><li class="none"><a href="../framework/lifecycle.html">Lifecycle</a></li><li class="none"><a href="../framework/guide-cop-in-avalon.html">COP in Avalon<
 /a></li><li class="none"><a href="../framework/guide-patterns-avalon.html">Patterns in Avalon</a></li><li class="none"><a href="../framework/guide-patterns-ioc.html">IOC Patterns</a></li><li class="none"><strong><a href="../framework/guide-patterns-ioc-security.html">IOC Security</a></strong></li><li class="none"><a href="../framework/guide-patterns-soc.html">Seperation of Concerns</a></li><li class="none"><a href="../framework/guide-patterns-soii.html">Interface and Implementation</a></li><li class="none"><a href="../framework/component-design.html">Designing Components</a></li><li class="none"><a href="../framework/best-practices.html">Best Practices</a></li></ul></li><li class="collapsed"><a href="../developing/index.html">Developing</a></li></ul></div><div id="menuComponents"><h5>Components</h5><ul><li class="none"><a href="../component-list.html">Overview</a></li><li class="collapsed"><a href="../sourceresolve/index.html">Sourceresolver</a></li><li class="collapsed"><a 
 href="../store/index.html">Store</a></li><li class="none"><a href="../thread.html">Thread</a></li><li class="collapsed"><a href="../xmlutil/index.html">XMLUtil</a></li></ul></div><div id="menuContainerkit"><h5>Containerkit</h5><ul><li class="none"><a href="../containerkit.html">Overview</a></li><li class="collapsed"><a href="../instrument/index.html">Instrument</a></li><li class="collapsed"><a href="../lifecycle/index.html">Lifecycle</a></li><li class="none"><a href="../logger.html">Logger</a></li></ul></div><div id="menuDeprecated_Materials"><h5>Deprecated Materials</h5><ul><li class="none"><a href="../deprecation.html">Overview</a></li><li class="expanded"><a href="../deprecation.html">Old Documentation</a><ul><li class="none"><a href="../component.html">ECM</a></li><li class="collapsed"><a href="../event/index.html">Event</a></li><li class="none"><a href="../configuration.html">Configuration</a></li></ul></li></ul></div><div id="menuThanks"><h5>Thanks</h5><ul><li class="n
 one"><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="External Link">to our sponsors!</a></li><li class="none"><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="External Link">Sponsor the ASF</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><a href="../index.html">About Apache Excalibur</a></li><li class="collapsed"><a href="../project-info.html">Project Info</a></li><li class="collapsed"><a href="../maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process</a></li></ul></div></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Introduction"></a><h2>Introduction</h2><p>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <title>Excalibur - </title>
+    <style type="text/css" media="all">
+      @import url("../css/maven-base.css");
+      @import url("../css/maven-theme.css");
+      @import url("../css/site.css");
+    </style>
+    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+          </head>
+  <body class="composite">
+    <div id="banner">
+                    <span id="bannerLeft">
+    
+            Excalibur
+    
+            </span>
+                    <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="breadcrumbs">
+          
+  
+
+  
+    
+  
+  
+    
+            <div class="xleft">
+        Last Published: 2009-06-16
+                      </div>
+            <div class="xright">            <a href="../index.html">Home</a>
+            |
+                <a href="../fortress/index.html">Fortress</a>
+            |
+                <a href="../component-list.html">Components</a>
+            |
+                <a href="../containerkit.html">Containerkit</a>
+            
+  
+
+  
+    
+  
+  
+    
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="leftColumn">
+      <div id="navcolumn">
+           
+  
+
+  
+    
+  
+  
+    
+                   <h5>Essentials</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../index.html">Overview</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../mail-lists.html">Mailing Lists</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../svn.html">Subversion</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://wiki.apache.org/excalibur/" class="externalLink">Wiki</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink">FAQ</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://excalibur.apache.org/apidocs/" class="externalLink">Javadocs</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://excalibur.apache.org/download.cgi" class="externalLink">Download</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../issue-tracking.html">Issue Tracking</a>
+          </li>
+              
+                
+              
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../misc.html">Miscellaneous</a>
+                </li>
+          </ul>
+              <h5>Fortress</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../fortress/index.html">Overview</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/features.html">Features Oriented</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/getting-started.html">Getting Started</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/using-meta-info.html">Using Meta Info</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/cli.html">CLI</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/swing.html">Swing</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/servlet.html">Servlet</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../lifecycle/index.html">Lifecycle Extensions</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/design-notes.html">Design Notes</a>
+          </li>
+          </ul>
+              <h5>Framework</h5>
+            <ul>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+            
+            
+      
+            
+      
+            
+      
+            
+      
+              
+            <li class="expanded">
+                    <a href="../framework/index.html">Documentation</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../framework/lifecycle.html">Lifecycle</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-cop-in-avalon.html">COP in Avalon</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-avalon.html">Patterns in Avalon</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-ioc.html">IOC Patterns</a>
+          </li>
+                  
+    <li class="none">
+              <strong>IOC Security</strong>
+        </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-soc.html">Seperation of Concerns</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-soii.html">Interface and Implementation</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/component-design.html">Designing Components</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/best-practices.html">Best Practices</a>
+          </li>
+              </ul>
+        </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../developing/index.html">Developing</a>
+                </li>
+          </ul>
+              <h5>Components</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../component-list.html">Overview</a>
+          </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../sourceresolve/index.html">Sourceresolver</a>
+                </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../store/index.html">Store</a>
+                </li>
+              
+    <li class="none">
+                    <a href="../thread.html">Thread</a>
+          </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../xmlutil/index.html">XMLUtil</a>
+                </li>
+          </ul>
+              <h5>Containerkit</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../containerkit.html">Overview</a>
+          </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+                  
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../instrument/index.html">Instrument</a>
+                </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../lifecycle/index.html">Lifecycle</a>
+                </li>
+              
+    <li class="none">
+                    <a href="../logger.html">Logger</a>
+          </li>
+          </ul>
+              <h5>Deprecated Materials</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../deprecation.html">Overview</a>
+          </li>
+              
+          
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+                  
+      
+              
+        <li class="expanded">
+                    <a href="../deprecation.html">Old Documentation</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../component.html">ECM</a>
+          </li>
+                  
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../event/index.html">Event</a>
+                </li>
+                  
+    <li class="none">
+                    <a href="../configuration.html">Configuration</a>
+          </li>
+              </ul>
+        </li>
+          </ul>
+              <h5>Thanks</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../../foundation/thanks.html">to our sponsors!</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../../foundation/sponsorship.html">Sponsor the ASF</a>
+          </li>
+          </ul>
+                                           <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+            <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+          </a>
+                       
+  
+
+  
+    
+  
+  
+    
+        </div>
+    </div>
+    <div id="bodyColumn">
+      <div id="contentBox">
+        <header>Avalon Framework - Guide - Security Concerns<authors><person name="Berin Loritsch" email="bloritsch@apache.org"></authors></header><div class="section"><h2><a name="Introduction"></a>Introduction</h2>
+<p>
         One major concern for many companies is the security of a system.
         In this context security is defined as protection of data, and
         quality of service (QOS).  Both of these fall under security because
         a system must protect itself from these two forms of attack.  When
         a company loses a system, it loses business, and the money it
         loses can reach scary amounts.
-      </p><p>
+      </p>
+<p>
         For the purpose of this discussion, we will address the first
         aspect (protection from crackers and system infiltration).  Many
         times, the same fixes for this type of protection inherently fix
@@ -41,14 +466,17 @@
         architecture.  Why didn't I say encryption?  It is because
         encryption does not equal security.  It is only part of the whole
 	system.
-      </p><div class="subsection"><a name="Authentication"></a><h3>Authentication</h3><p>
+      </p>
+<div class="section"><h3><a name="Authentication"></a>Authentication</h3>
+<p>
           Authentication is the process of identifying parties.  In a completely
           trusted system, authentication is as simple as grabbing a reference
           to the object or entity you want to manipulate.  However, sometimes
           you have trusted systems running in hostile environments (e.g. the
           Internet).  In those cases you have to make sure that the entity
           is the correct one.
-        </p><p>
+        </p>
+<p>
           There are two sides of authentication.  On one side, you are
           authenticating an entity you want to do business with.  On the other
           side, there is an entity wanting to do business with you.  This is
@@ -59,7 +487,8 @@
           telemarketer calls from ACME Loan Machine, Inc., they know who you
           are--although if you are smart, you will make them jump through
           hoops to authenticate themselves.
-        </p><p>
+        </p>
+<p>
           Currently, Avalon identifies blocks as trusted parties.  In other
           words, the fact that they are installed correctly in the proper
           directory is enough to mark them as authenticated.  Much like a
@@ -68,7 +497,8 @@
           means that whether the block assumes all components are trusted
           or it forces the blocks to authenticate themselves is up to the
           block.
-        </p><p>
+        </p>
+<p>
           For systems that deal with sensitive information, authentication
           becomes more of an issue.  You must validate that the components
           in use are the ones you have authorized for use.  The more open a
@@ -76,53 +506,66 @@
           role.  If you have components that are transmitted over some form
           of communications system (wire, air, etc.) you must verify that
           they are who they say they are.
-        </p><p>
+        </p>
+<p>
           For this purpose, protocols like Kerberos and Leighton-Micali have
           been defined.  It is beyond the scope of this page to discuss the
           pros and cons of each system.
-        </p></div><div class="subsection"><a name="Authorization"></a><h3>Authorization</h3><p>
+        </p>
+</div>
+<div class="section"><h3><a name="Authorization"></a>Authorization</h3>
+<p>
           Once a component has been authenticated (in other words its identity
           has been authoritatively validated), then you must decide what access
           it has to your systems.  A fully trusted component can do what it likes.
           An untrusted component must be denied functions it is not allowed.
-        </p><p>
+        </p>
+<p>
           Authorization is part of the architecture, but is significant enough
           to warrant its own concern.  The best rule of thumb is to hide access
           to everything unless the component is trusted.  When hiding is not
           an option, then you have to resort to denying access.  For the security
           conscious, all denied accesses should be logged along with the component's
           identifier.
-        </p></div><div class="subsection"><a name="Architecture"></a><h3>Architecture</h3><p>
+        </p>
+</div>
+<div class="section"><h3><a name="Architecture"></a>Architecture</h3>
+<p>
           Avalon already has the framework for the proper secure architecture.
           With proper planning, security can be added without recoding the components.
           However there are some rules of thumb for paranoid programming.
-        </p><ol>
-          <li>
+        </p>
+<ol type="1"><li>
             Never expose anything that does not need to be exposed.  Information
             hiding is as important in security as it is in Component
             Oriented Programming (COP).
           </li>
-          <li>
+<li>
             Any component that originates from your own jar should be trusted--you
             provided it after all.
           </li>
-          <li>
+<li>
             Any component that originates from another source, and especially over
             a wire, should be treated with suspicion.  Authenticate it, and if it
             checks out, trust it.  Otherwise, don't give it access--you don't know
             where it's been or who created it.
           </li>
-          <li>
+<li>
             Encrypt <strong>all</strong> communications.  Period.
           </li>
-        </ol></div></div><div class="section"><a name="From_the_Sublime_to_the_Ridiculous"></a><h2>From the Sublime to the Ridiculous</h2><p>
+</ol>
+</div>
+</div>
+<div class="section"><h2><a name="From_the_Sublime_to_the_Ridiculous"></a>From the Sublime to the Ridiculous</h2>
+<p>
         Throughout my short career I have been exposed to a wide range of security
         implementations.  Having worked for a DoD contractor, I learned about physical
         security requirements (how to manage paper files, and the rules and regulations
         regarding secure information).  However in a recent attempt to install a
         solution at our customer's site, I learned more about computer security
         than I have at any other time.
-      </p><p>
+      </p>
+<p>
         Our customer, a well known corporation whom I will call ACME for
         anonymity, is in custody of sensitive information.  Product movement data,
         financial data, and demographic data are all stored in one of a couple of
@@ -132,23 +575,26 @@
         subject of many CERT advisories in the Unix world), we hit a brick wall.  Our
         application was no longer trusted, and was not to be installed.  Luckily
         the next version of the application server fixed that problem.
-      </p><p>
+      </p>
+<p>
         In the midst of this, I decided to learn as much as I could about operating
         in a hardened environment.  Hardening involves turning off access to anything
         that is not needed, and only allowing what is needed.  All mail servers, ftp
         servers, rpc services, telnet, and any other clear text communications ports need
         to be removed.  All communication into and out of the box needs to be
         encrypted, with the exception of HTTP (although we were using HTTPS).
-      </p><p>
+      </p>
+<p>
         All of this was necessary.  I understand the principles behind it.  However,
         I decided to ask their security analyst how to learn more--so we don't run
         into this problem again.  He gave me a link to
         <link href="http://www.sans.org">SANS institute</link> and a word of
-        advice: "Be paranoid.  Don't trust anything."
-      </p><p>
+        advice: &quot;Be paranoid.  Don't trust anything.&quot;
+      </p>
+<p>
         There is a point where the aforementioned philosophy goes a bit too far.  The
         case in point relates to a story I heard working with the DoD.  During the
-        height of the "Cold War" between the US and Russia, a US commanding
+        height of the &quot;Cold War&quot; between the US and Russia, a US commanding
         officer required that all the computers be placed on these huge power
         conditioners to reduce the Electro-Magnetic Interference (EMI) coming from the
         power line feedback of the computers.  His rationalization was that he was
@@ -157,7 +603,8 @@
 	  improbable; no one can identify the bits travelling on a computer from EMI in the
 	  power lines due to the level of noise (clocks, addressing lines,
 	  <em>encrypted data</em>, and other computers on the network).
-        </p><p>
+        </p>
+<p>
         The security industry has a general rule of thumb to ensure that you don't spend
 	  too much time in this area:  The cost of cracking the server should be more than
 	  the information that is protected is worth.  Basically it boils down to this:
@@ -169,7 +616,35 @@
 	  protecting free information then you can safely ignore security.  While the information
 	  is monetarily free to customers, it has value that can be measured in pride, respect,
 	  and accountability.
-        </p><p>
+        </p>
+<p>
         The moral of the story is be paranoid to a point.  Avalon is designed to be
         a trusted system, and will be improved to work in an untrusted network.
-      </p></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 1997-2007, The Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+      </p>
+</div>
+
+      </div>
+    </div>
+    <div class="clear">
+      <hr/>
+    </div>
+    <div id="footer">
+      <div class="xright">&#169;  
+          2009
+    
+          The Apache Software Foundation
+          
+  
+
+  
+    
+  
+  
+    
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>

Modified: excalibur/site/framework/guide-patterns-ioc.html
URL: http://svn.apache.org/viewvc/excalibur/site/framework/guide-patterns-ioc.html?rev=785324&r1=785323&r2=785324&view=diff
==============================================================================
--- excalibur/site/framework/guide-patterns-ioc.html (original)
+++ excalibur/site/framework/guide-patterns-ioc.html Tue Jun 16 17:55:25 2009
@@ -1,57 +1,491 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Apache Excalibur - </title><style type="text/css" media="all">
-          @import url("../style/maven-base.css");
-          
-			    @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="The Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://excalibur.apache.org/" id="projectLogo"><img alt="Apache Excalibur" src="http://excalibur.apache.org/logo.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright">
-        
-        <a href="../index.html">Home</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../fortress/index.html">Fortress</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../component-list.html">Components</a>
-      
-        
-          
-            <span class="separator">|</span>
-          
-        
-        <a href="../containerkit.html">Containerkit</a>
-      </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuEssentials"><h5>Essentials</h5><ul><li class="none"><a href="../index.html">Overview</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../svn.html">Subversion</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink" title="External Link">FAQ</a></li><li class="none"><a href="http://excalibur.apache.org/apidocs/" class="externalLink" title="External Link">Javadocs</a></li><li class="none"><a href="http://excalibur.apache.org/download.cgi" class="externalLink" title="External Link">Download</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="collapsed"><a href="../misc.html">Miscellaneous</a></li></ul></div><div
  id="menuFortress"><h5>Fortress</h5><ul><li class="none"><a href="../fortress/index.html">Overview</a></li><li class="none"><a href="../fortress/features.html">Features Oriented</a></li><li class="none"><a href="../fortress/getting-started.html">Getting Started</a></li><li class="none"><a href="../fortress/using-meta-info.html">Using Meta Info</a></li><li class="none"><a href="../fortress/cli.html">CLI</a></li><li class="none"><a href="../fortress/swing.html">Swing</a></li><li class="none"><a href="../fortress/servlet.html">Servlet</a></li><li class="none"><a href="../lifecycle/index.html">Lifecycle Extensions</a></li><li class="none"><a href="../fortress/design-notes.html">Design Notes</a></li></ul></div><div id="menuFramework"><h5>Framework</h5><ul><li class="expanded"><a href="../framework/index.html">Documentation</a><ul><li class="none"><a href="../framework/lifecycle.html">Lifecycle</a></li><li class="none"><a href="../framework/guide-cop-in-avalon.html">COP in Avalon<
 /a></li><li class="none"><a href="../framework/guide-patterns-avalon.html">Patterns in Avalon</a></li><li class="none"><strong><a href="../framework/guide-patterns-ioc.html">IOC Patterns</a></strong></li><li class="none"><a href="../framework/guide-patterns-ioc-security.html">IOC Security</a></li><li class="none"><a href="../framework/guide-patterns-soc.html">Seperation of Concerns</a></li><li class="none"><a href="../framework/guide-patterns-soii.html">Interface and Implementation</a></li><li class="none"><a href="../framework/component-design.html">Designing Components</a></li><li class="none"><a href="../framework/best-practices.html">Best Practices</a></li></ul></li><li class="collapsed"><a href="../developing/index.html">Developing</a></li></ul></div><div id="menuComponents"><h5>Components</h5><ul><li class="none"><a href="../component-list.html">Overview</a></li><li class="collapsed"><a href="../sourceresolve/index.html">Sourceresolver</a></li><li class="collapsed"><a 
 href="../store/index.html">Store</a></li><li class="none"><a href="../thread.html">Thread</a></li><li class="collapsed"><a href="../xmlutil/index.html">XMLUtil</a></li></ul></div><div id="menuContainerkit"><h5>Containerkit</h5><ul><li class="none"><a href="../containerkit.html">Overview</a></li><li class="collapsed"><a href="../instrument/index.html">Instrument</a></li><li class="collapsed"><a href="../lifecycle/index.html">Lifecycle</a></li><li class="none"><a href="../logger.html">Logger</a></li></ul></div><div id="menuDeprecated_Materials"><h5>Deprecated Materials</h5><ul><li class="none"><a href="../deprecation.html">Overview</a></li><li class="expanded"><a href="../deprecation.html">Old Documentation</a><ul><li class="none"><a href="../component.html">ECM</a></li><li class="collapsed"><a href="../event/index.html">Event</a></li><li class="none"><a href="../configuration.html">Configuration</a></li></ul></li></ul></div><div id="menuThanks"><h5>Thanks</h5><ul><li class="n
 one"><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="External Link">to our sponsors!</a></li><li class="none"><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="External Link">Sponsor the ASF</a></li></ul></div><div id="menuProject_Documentation"><h5>Project Documentation</h5><ul><li class="none"><a href="../index.html">About Apache Excalibur</a></li><li class="collapsed"><a href="../project-info.html">Project Info</a></li><li class="collapsed"><a href="../maven-reports.html">Project Reports</a></li><li class="none"><a href="http://maven.apache.org/development-process.html" class="externalLink" title="External Link">Development Process</a></li></ul></div></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Introduction"></a><h2>Introduction</h2><p>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <title>Excalibur - </title>
+    <style type="text/css" media="all">
+      @import url("../css/maven-base.css");
+      @import url("../css/maven-theme.css");
+      @import url("../css/site.css");
+    </style>
+    <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+          </head>
+  <body class="composite">
+    <div id="banner">
+                    <span id="bannerLeft">
+    
+            Excalibur
+    
+            </span>
+                    <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="breadcrumbs">
+          
+  
+
+  
+    
+  
+  
+    
+            <div class="xleft">
+        Last Published: 2009-06-16
+                      </div>
+            <div class="xright">            <a href="../index.html">Home</a>
+            |
+                <a href="../fortress/index.html">Fortress</a>
+            |
+                <a href="../component-list.html">Components</a>
+            |
+                <a href="../containerkit.html">Containerkit</a>
+            
+  
+
+  
+    
+  
+  
+    
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="leftColumn">
+      <div id="navcolumn">
+           
+  
+
+  
+    
+  
+  
+    
+                   <h5>Essentials</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../index.html">Overview</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../mail-lists.html">Mailing Lists</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../svn.html">Subversion</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://wiki.apache.org/excalibur/" class="externalLink">Wiki</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://wiki.apache.org/excalibur/FrequentlyAskedQuestions" class="externalLink">FAQ</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://excalibur.apache.org/apidocs/" class="externalLink">Javadocs</a>
+          </li>
+              
+    <li class="none">
+                    <a href="http://excalibur.apache.org/download.cgi" class="externalLink">Download</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../issue-tracking.html">Issue Tracking</a>
+          </li>
+              
+                
+              
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../misc.html">Miscellaneous</a>
+                </li>
+          </ul>
+              <h5>Fortress</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../fortress/index.html">Overview</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/features.html">Features Oriented</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/getting-started.html">Getting Started</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/using-meta-info.html">Using Meta Info</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/cli.html">CLI</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/swing.html">Swing</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/servlet.html">Servlet</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../lifecycle/index.html">Lifecycle Extensions</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../fortress/design-notes.html">Design Notes</a>
+          </li>
+          </ul>
+              <h5>Framework</h5>
+            <ul>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+            
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+            <li class="expanded">
+                    <a href="../framework/index.html">Documentation</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../framework/lifecycle.html">Lifecycle</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-cop-in-avalon.html">COP in Avalon</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-avalon.html">Patterns in Avalon</a>
+          </li>
+                  
+    <li class="none">
+              <strong>IOC Patterns</strong>
+        </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-ioc-security.html">IOC Security</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-soc.html">Seperation of Concerns</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/guide-patterns-soii.html">Interface and Implementation</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/component-design.html">Designing Components</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../framework/best-practices.html">Best Practices</a>
+          </li>
+              </ul>
+        </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../developing/index.html">Developing</a>
+                </li>
+          </ul>
+              <h5>Components</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../component-list.html">Overview</a>
+          </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../sourceresolve/index.html">Sourceresolver</a>
+                </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../store/index.html">Store</a>
+                </li>
+              
+    <li class="none">
+                    <a href="../thread.html">Thread</a>
+          </li>
+              
+                
+              
+      
+              
+        <li class="collapsed">
+                    <a href="../xmlutil/index.html">XMLUtil</a>
+                </li>
+          </ul>
+              <h5>Containerkit</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../containerkit.html">Overview</a>
+          </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+                  
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../instrument/index.html">Instrument</a>
+                </li>
+              
+                
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../lifecycle/index.html">Lifecycle</a>
+                </li>
+              
+    <li class="none">
+                    <a href="../logger.html">Logger</a>
+          </li>
+          </ul>
+              <h5>Deprecated Materials</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../deprecation.html">Overview</a>
+          </li>
+              
+          
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+                  
+      
+              
+        <li class="expanded">
+                    <a href="../deprecation.html">Old Documentation</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../component.html">ECM</a>
+          </li>
+                  
+                
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class="collapsed">
+                    <a href="../event/index.html">Event</a>
+                </li>
+                  
+    <li class="none">
+                    <a href="../configuration.html">Configuration</a>
+          </li>
+              </ul>
+        </li>
+          </ul>
+              <h5>Thanks</h5>
+            <ul>
+              
+    <li class="none">
+                    <a href="../../foundation/thanks.html">to our sponsors!</a>
+          </li>
+              
+    <li class="none">
+                    <a href="../../foundation/sponsorship.html">Sponsor the ASF</a>
+          </li>
+          </ul>
+                                           <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+            <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+          </a>
+                       
+  
+
+  
+    
+  
+  
+    
+        </div>
+    </div>
+    <div id="bodyColumn">
+      <div id="contentBox">
+        <header>Avalon Framework - Guide - Inversion of Control<authors><person name="Berin Loritsch" email="bloritsch@apache.org"><person name="Leo Simons" email="leosimons@apache.org"></authors></header><div class="section"><h2><a name="Introduction"></a>Introduction</h2>
+<p>
         One of the key design principles behind Avalon is the principle
         of <em>Inversion of Control</em>.  <em>Inversion of Control</em> is
         a concept promoted by one of the founders of the Avalon project,
         <link href="mailto:stefano@apache.org">Stefano Mazzocchi</link>.  The
         principle enforces security by design.
-      </p><p>
+      </p>
+<p>
         It is difficult to track down one paper that defines this pattern
         at length, so here are a couple of different definitions of
         <em>Inversion of Control</em>.
-      </p></div><div class="section"><a name="What_it_Means"></a><h2>What it Means</h2><p>
+      </p>
+</div>
+<div class="section"><h2><a name="What_it_Means"></a>What it Means</h2>
+<p>
           The Framework plays the role of the main program in coordinating
           and sequencing events and application activity.
-        </p><p>
+        </p>
+<p>
           A designer sets up a chain among objects that can all react
           to certain messages in a delegation hierarchy.  There is one
 	  major semantic detail: Inversion of Control refers to a parent
 	  object <em>controlling</em> a child object.  With this distinction,
 	  the SAX API is not considered Inversion of Control because its
 	  purpose is to send <em>information</em> from a source to a handler.
-        </p><div class="subsection"><a name="Definition_by_Analogy"></a><h3>Definition by Analogy</h3><p>
+        </p>
+<div class="section"><h3><a name="Definition_by_Analogy"></a>Definition by Analogy</h3>
+<p>
             There are a couple of different analogies that make
             understanding <em>Inversion of Control</em> easier.  We
             experience this in many different ways in regular life,
             so we are borrowing the form in code.  One analogy is called
-	    the "Chain of Command" in the military.
-          </p></div><div class="subsection"><a name="Chain_of_Command"></a><h3>Chain of Command</h3><p>
+	    the &quot;Chain of Command&quot; in the military.
+          </p>
+</div>
+<div class="section"><h3><a name="Chain_of_Command"></a>Chain of Command</h3>
+<p>
               This is probably the clearest parallel to <em>Inversion
               of Control</em>.  The military provides each new recruit
               with the basic things he needs to operate at his rank,
@@ -61,7 +495,8 @@
               entity (i.e. Commanding Officer in this analogy).  The
               instantiating entity then acts on that component how it
               needs to act.
-            </p><p>
+            </p>
+<p>
 	      There are some deficiencies in this analogy as some military
 	      or ex-military people have explained to me.  In the military,
 	      <strong>any</strong> Commanding Officer can issue commands to
@@ -71,12 +506,15 @@
 	      parent (controlling) object to a child (controlled) component.
 	      A parent may have many children, but children only have one
 	      parent.
-	    </p></div></div><div class="section"><a name="How_to_Apply_It"></a><h2>How to Apply It</h2><p>
-          <em>Inversion of Control</em> is applied in a very simple
+	    </p>
+</div>
+</div>
+<div class="section"><h2><a name="How_to_Apply_It"></a>How to Apply It</h2>
+<p><em>Inversion of Control</em> is applied in a very simple
           manner.  Basically, it means that the component architecture
           employs a <em>passive</em> structure.  See the following code:
         </p>
-    <div class="source"><pre>
+<div class="source"><pre>
 class MyComponent 
     implements LogEnabled
 {
@@ -89,20 +527,52 @@
 
     myMethod() 
     {
-        logger.info("Hello World!");
+        logger.info(&quot;Hello World!&quot;);
     }
 }
-        </pre></div>
-  <p>
+        </pre>
+</div>
+<p>
           The parent of MyComponent instantiates MyComponent, sets the
           Logger, and calls myMethod.  The component is not autonomous,
 	  and is given a logger that has been configured by the parent.
-        </p><p>
+        </p>
+<p>
           The MyComponent class has no state apart from the parent, and
           has no way of obtaining a reference to the logger implementation
           without the parent giving it the implementation it needs.
-        </p></div><div class="section"><a name="IOC_promotes_Security"></a><h2>IOC promotes Security</h2><p>A big advantage of IOC for server applications is that it promotes
+        </p>
+</div>
+<div class="section"><h2><a name="IOC_promotes_Security"></a>IOC promotes Security</h2>
+<p>A big advantage of IOC for server applications is that it promotes
       security. You can read an analysis about this
       <a href="guide-patterns-ioc-security.html">
          here
-      </a>.</p></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 1997-2007, The Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+      </a>.</p>
+</div>
+
+      </div>
+    </div>
+    <div class="clear">
+      <hr/>
+    </div>
+    <div id="footer">
+      <div class="xright">&#169;  
+          2009
+    
+          The Apache Software Foundation
+          
+  
+
+  
+    
+  
+  
+    
+  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>



---------------------------------------------------------------------
To unsubscribe, e-mail: scm-unsubscribe@excalibur.apache.org
For additional commands, e-mail: scm-help@excalibur.apache.org