blob: 80fc52d0e57d1b02fd57505ff429109a8d3913c0 [file] [log] [blame]
Clement Escoffier8251f602009-01-15 15:35:17 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html><head>
3
4
5
6 <title>Apache Felix - iPOJO-Arch-Command</title>
7 <link rel="stylesheet" href="ipojo-arch-command_files/site.css" type="text/css" media="all">
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 </head><body>
10 <div class="title"><div class="logo"><a href="http://felix.apache.org/site/index.html"><img alt="Apache Felix" src="ipojo-arch-command_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="ipojo-arch-command_files/apache.png" border="0"></a></div></div>
11 <div class="menu">
12<ul>
13 <li><a href="http://felix.apache.org/site/news.html" title="news">news</a></li>
14 <li><a href="http://felix.apache.org/site/license.html" title="license">license</a></li>
Clement Escoffier373a57d2009-07-21 12:06:46 +000015 <li><a href="http://felix.apache.org/site/downloads.cgi" rel="nofollow">downloads</a></li>
Clement Escoffier8251f602009-01-15 15:35:17 +000016 <li><a href="http://felix.apache.org/site/documentation.html" title="documentation">documentation</a></li>
17 <li><a href="http://felix.apache.org/site/mailinglists.html" title="mailinglists">mailing lists</a></li>
18 <li><a href="http://felix.apache.org/site/contributing.html" title="Contributing">contributing</a></li>
Clement Escoffier373a57d2009-07-21 12:06:46 +000019 <li><a href="http://www.apache.org/" rel="nofollow">asf</a></li>
20 <li><a href="http://www.apache.org/foundation/sponsorship.html" rel="nofollow">sponsorship</a></li>
21 <li><a href="http://www.apache.org/foundation/thanks.html" rel="nofollow">sponsors</a>
Clement Escoffier8251f602009-01-15 15:35:17 +000022<!-- ApacheCon Ad -->
Clement Escoffier373a57d2009-07-21 12:06:46 +000023<iframe src="ipojo-arch-command_files/button.html" style="border-width: 0pt; float: left;" scrolling="no" frameborder="0" height="135" width="135"></iframe>
Clement Escoffier8251f602009-01-15 15:35:17 +000024<p style="height: 100px;">
25<!-- ApacheCon Ad -->
26</p></li></ul> </div>
27 <div class="main">
Clement Escoffier373a57d2009-07-21 12:06:46 +000028<style type="text/css">
29 @import url(http://people.apache.org/~clement/ipojo/site/superfish.css);
30</style>
31
32<style type="text/css">
33 @import url(http://people.apache.org/~clement/ipojo/site/style.css);
34</style>
35
36<p>
37<script class="javascript" src="ipojo-arch-command_files/shCore.js"></script>
38<script class="javascript" src="ipojo-arch-command_files/shBrushCSharp.js"></script>
39<script class="javascript" src="ipojo-arch-command_files/shBrushPhp.js"></script>
40<script class="javascript" src="ipojo-arch-command_files/shBrushJScript.js"></script>
41<script class="javascript" src="ipojo-arch-command_files/shBrushVb.js"></script>
42<script class="javascript" src="ipojo-arch-command_files/shBrushSql.js"></script>
43<script class="javascript" src="ipojo-arch-command_files/shBrushXml.js"></script>
44<script class="javascript" src="ipojo-arch-command_files/shBrushShell.js"></script>
45<script class="javascript" src="ipojo-arch-command_files/shBrushDelphi.js"></script>
46<script class="javascript" src="ipojo-arch-command_files/shBrushPython.js"></script>
47<script class="javascript" src="ipojo-arch-command_files/shBrushJava.js"></script>
48
49<script type="text/javascript" src="ipojo-arch-command_files/jquery-1.js"></script>
50<script type="text/javascript" src="ipojo-arch-command_files/hoverIntent.js"></script>
51<script type="text/javascript" src="ipojo-arch-command_files/superfish.js"></script>
52<script type="text/javascript" src="ipojo-arch-command_files/supersubs.js"></script>
53
54<script type="text/javascript">
55
56 $(document).ready(function(){
57 $("ul.sf-menu").supersubs({
58 minWidth: 14, // minimum width of sub-menus in em units
59 maxWidth: 30, // maximum width of sub-menus in em units
60 extraWidth: 1 // extra width can ensure lines don't sometimes turn over
61 // due to slight rounding differences and font-family
62 }).superfish(); // call supersubs first, then superfish, so that subs are
63 // not display:none when measuring. Call before initialising
64 // containing tabs for same reason.
65 });
66
67</script>
68</p><div class="main">
69<div class="page-header">
70<img src="ipojo-arch-command_files/header.png" class="header">
71<a href="http://ipojo.org/"><img src="ipojo-arch-command_files/ipojo.png" class="header-logo" width="225"></a>
72<ul class="sf-menu sf-js-enabled sf-shadow" id="ipojo-menu">
73<li class="current">
74<!-- Menu Overview -->
75<a href="" class="sf-with-ul">Overview<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
76<ul style="float: none; width: 14em; display: none; visibility: hidden;">
77 <li style="white-space: normal; float: left; width: 100%;">
78 <a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo.html" title="Apache Felix iPOJO">Home</a>
79 </li>
80 <li style="white-space: normal; float: left; width: 100%;">
81 <a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-why-choose-ipojo.html" title="apache-felix-ipojo-why-choose-ipojo">Why choose iPOJO</a>
82 </li>
83 <li style="white-space: normal; float: left; width: 100%;">
84 <a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-successstories.html" title="apache-felix-ipojo-successstories">Success stories</a>
85 </li>
86 <li style="white-space: normal; float: left; width: 100%;">
87 <a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-feature-overview.html" title="Apache Felix iPOJO Feature Overview">Features</a>
88 </li>
89</ul>
90</li>
91
92<li class="">
93<!-- Menu download -->
94</li><li>
95<a href="http://felix.apache.org/site/download.html" title="Download">Download </a>
96</li>
97
98<li class="">
99<!-- Menu Documentation -->
100<a href="" class="sf-with-ul">Documentation<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
101<ul style="float: none; width: 14em; display: none; visibility: hidden;">
102 <!-- sub- menu : getting started -->
103 <li style="white-space: normal; float: left; width: 100%;" class="">
104 <a style="float: none; width: auto;" href="" class="sf-with-ul">Getting Started<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
105 <ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
106 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-in-10-minutes.html" title="iPOJO in 10 minutes">iPOJO in 10 minutes</a></li>
107 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/how-to-use-ipojo-annotations.html" title="How to use iPOJO Annotations">Using Annotations</a></li>
108 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-hello-word-maven-based-tutorial.html" title="iPOJO Hello Word (Maven-Based) tutorial">Maven tutorial</a></li>
109 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-advanced-tutorial.html" title="iPOJO Advanced Tutorial">Advanced tutorial</a></li>
110 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-dosgi.html" title="apache-felix-ipojo-dosgi">Using Distributed OSGi</a></li>
111 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-composition-tutorial.html" title="iPOJO Composition Tutorial">Application Composition</a></li>
112 </ul>
113 </li> <!-- end of getting started -->
114 <!-- sub menu : Describing Components -->
115 <li style="white-space: normal; float: left; width: 100%;" class="">
116 <a style="float: none; width: auto;" href="http://felix.apache.org/site/describing-components.html" class="sf-with-ul">Describing components<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
117 <ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
118 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/service-requirement-handler.html" title="Service Requirement Handler">Requiring a service</a></li>
119 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/providing-osgi-services.html" title="Providing OSGi services">Providing a service</a></li>
120 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/lifecycle-callback-handler.html" title="Lifecycle Callback Handler">Lifecycle management</a></li>
121 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/configuration-handler.html" title="Configuration Handler">Configuration</a></li>
122 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/architecture-handler.html" title="Architecture Handler">Introspection</a></li>
123 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/controller-lifecycle-handler.html" title="Controller Lifecycle Handler">Impacting the lifecycle</a></li>
124 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/event-admin-handlers.html" title="Event Admin Handlers">Asynchronous communication</a></li>
125 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-jmx-handler.html" title="iPOJO JMX Handler">JMX management</a></li>
126 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/extender-pattern-handler.html" title="Extender Pattern Handler">Extender pattern</a></li>
127 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/white-board-pattern-handler.html" title="White Board Pattern Handler">Whiteboard pattern</a></li>
128 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/temporal-service-dependency.html" title="Temporal Service Dependency">Temporal dependencies</a></li>
129 </ul>
130 </li> <!-- End of describing components -->
131 <!-- sub- menu : User Guide -->
132 <li style="white-space: normal; float: left; width: 100%;" class="">
133 <a style="float: none; width: auto;" href="" class="sf-with-ul">User Guide<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
134 <ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
135 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/using-xml-schemas.html" title="Using XML Schemas">XML Schemas</a></li>
136 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-api.html" title="apache-felix-ipojo-api">API</a></li>
137 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-testing-components.html" title="apache-felix-ipojo-testing-components">Testing components</a></li>
138 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-eclipse-integration.html" title="apache-felix-ipojo-eclipse-integration">Eclipse Integration</a></li>
139 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-faq.html" title="iPOJO FAQ">FAQ</a></li>
140 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-reference-card.html" title="iPOJO-Reference-Card">Reference Card</a></li>
141 </ul>
142 </li> <!-- end of user guide -->
143 <!-- sub- menu : Dev Guide -->
144 <li class="" style="white-space: normal; float: left; width: 100%;">
145 <a style="float: none; width: auto;" href="" class="sf-with-ul">Advanced Topics<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
146 <ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
147 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/ipojo/api/1.2.0" rel="nofollow">Javadoc</a></li>
148 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/how-to-write-your-own-handler.html" title="How to write your own handler">Handler development</a></li>
149 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/how-to-use-ipojo-manipulation-metadata.html" title="How to use iPOJO Manipulation Metadata">Manipulation Metadata </a></li>
150 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/dive-into-the-ipojo-manipulation-depths.html" title="Dive into the iPOJO Manipulation depths">Dive into the iPOJO Manipulation depths</a></li>
151 </ul>
152 </li> <!-- End of Dev guide -->
153</ul>
154</li> <!-- End of doc -->
155<!-- Menu 4 : Tools -->
156<li class="">
157<a href="" class="sf-with-ul">Tools<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
158<ul style="float: none; width: 14em; display: none; visibility: hidden;">
159 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-ant-task.html" title="iPOJO Ant Task">Ant Task</a></li>
160 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-eclipse-plug-in.html" title="iPOJO Eclipse Plug-in">Eclipse Plugin</a></li>
161 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-maven-plug-in.html" title="iPOJO Maven Plug-in">Maven Plugin</a></li>
162 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="" title="iPOJO-Arch-Command"><tt>arch</tt> shell command</a></li>
163 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-online-manipulator.html" title="apache-felix-ipojo-online-manipulator">Online Manipulator</a></li>
164 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-webconsole-plugin.html" title="iPOJO Webconsole Plugin">Webconsole plugin</a></li>
165 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-junit4osgi.html" title="apache-felix-ipojo-junit4osgi">Junit4OSGi</a></li>
166</ul>
167</li><!-- End of tools -->
168<!-- Menu 5 : Misc -->
169<li class="">
170<a href="" class="sf-with-ul">Misc<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
171<ul style="float: none; width: 14em; display: none; visibility: hidden;">
172 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-issuestracker.html" title="apache-felix-ipojo-issuestracker">Issues Tracker</a></li>
173 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-supportedvms.html" title="apache-felix-ipojo-supportedVMs">Supported JVMs</a></li>
174 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-supportedosgi.html" title="apache-felix-ipojo-supportedOSGi">Supported OSGi Implementations</a></li>
175 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://ipojo-dark-side.blogspot.com/" rel="nofollow">iPOJO's Dark Side Blog</a></li>
176 <li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/article-presentations.html" title="Article &amp; Presentations">Article &amp; Presentations</a></li>
177</ul>
178</li><!-- End of misc -->
179</ul> <!-- End of the menu -->
180</div> <!-- Page header -->
181
182
183<div class="content">
184
Clement Escoffier8251f602009-01-15 15:35:17 +0000185<h1><a name="iPOJO-Arch-Command-iPOJO{{Arch}}command"></a>iPOJO <tt>Arch</tt> command</h1>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000186<p><em>Architecture introspection is required when the system doesn't
187work as expected. In this case, having a quick access to instances
188states and interconnection is a stringent requirement. The <tt>arch</tt> command allows getting these data from the Felix Shell and from the Equinox shell.</em></p>
189
190<div class="toc">
191<ul>
192 <li><a href="#iPOJO-Arch-Command-Download">Download</a></li>
193 <li><a href="#iPOJO-Arch-Command-Usage">Usage</a></li>
194 <li><a href="#iPOJO-Arch-Command-Readinginstancearchitecture">Reading instance architecture</a></li>
195 <li><a href="#iPOJO-Arch-Command-Listavailablefactories">List available factories</a></li>
196 <li><a href="#iPOJO-Arch-Command-Listavailablehandlers">List available handlers</a></li>
197</ul></div>
Clement Escoffier8251f602009-01-15 15:35:17 +0000198
199<h2><a name="iPOJO-Arch-Command-Download"></a>Download</h2>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000200<p>The Felix command is available from the <a href="http://felix.apache.org/site/download.html" title="Download">Download</a> page and in the <tt>arch</tt> folder of the iPOJO trunk <a href="http://svn.apache.org/viewvc/felix/trunk/ipojo/arch" rel="nofollow">http://svn.apache.org/repos/asf/felix/trunk/ipojo/arch/</a>.<br>
201The Equinox command sources are available <a href="http://svn.apache.org/viewvc/felix/sandbox/clement/ipojo-utils/arch-equinox/" rel="nofollow">http://svn.apache.org/repos/asf/felix/sandbox/clement/ipojo-utils/arch-equinox/</a>. To compile sources, just launch the <tt>mvn clean install</tt>.</p>
Clement Escoffier8251f602009-01-15 15:35:17 +0000202
203<h2><a name="iPOJO-Arch-Command-Usage"></a>Usage</h2>
204<p>Once you get the bundle, just install and start it in the OSGi Framework shell:</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000205<div class="code">
206<div class="dp-highlighter"><table class="dp-xml" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>start&nbsp;file:/BUNDLE_URL.jar&nbsp;</span></td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="xml:nocontrols:nogutter" rows="10" readonly="readonly">start file:/BUNDLE_URL.jar</textarea>
207<script class="javascript">
208 if(!window.newcodemacro_initialised)
209 {
210 window.newcodemacro_initialised = true;
211 window.oldonloadmethod = window.onload;
212 window.onload = function(){
213 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
214 if(window.oldonloadmethod)
215 {
216 window.oldonloadmethod();
217 }
218 }
219 }
220
221</script>
222</div>
223
224<div class="code">
225<div class="dp-highlighter"><table class="dp-xml" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>install&nbsp;file:/BUNDLE_URL.jar&nbsp;</span></td></tr><tr><td class="line2">Bundle&nbsp;X&nbsp;installed&nbsp;</td></tr><tr><td class="line1">start&nbsp;X&nbsp;</td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="xml:nocontrols:nogutter" rows="10" readonly="readonly">install file:/BUNDLE_URL.jar
Clement Escoffier8251f602009-01-15 15:35:17 +0000226Bundle X installed
Clement Escoffier373a57d2009-07-21 12:06:46 +0000227start X</textarea>
228<script class="javascript">
229 if(!window.newcodemacro_initialised)
230 {
231 window.newcodemacro_initialised = true;
232 window.oldonloadmethod = window.onload;
233 window.onload = function(){
234 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
235 if(window.oldonloadmethod)
236 {
237 window.oldonloadmethod();
238 }
239 }
240 }
241
242</script>
243</div>
244
Clement Escoffier8251f602009-01-15 15:35:17 +0000245<p>Then, you can use it to introspect the system by launching the <tt>arch</tt> command.</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000246<div class="code">
247<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>arch&nbsp;=&gt;&nbsp;displays&nbsp;instances&nbsp;name&nbsp;&amp;&nbsp;state&nbsp;(equivalent&nbsp;to&nbsp;arch&nbsp;\-instances)&nbsp;</span></td></tr><tr><td class="line2">arch&nbsp;-instance&nbsp;$instance_name&nbsp;=&gt;&nbsp;displays&nbsp;complete&nbsp;information&nbsp;about&nbsp;the&nbsp;instance&nbsp;$instance_name&nbsp;</td></tr><tr><td class="line1">arch&nbsp;-factories&nbsp;=&gt;&nbsp;display&nbsp;the&nbsp;<span class="keyword">list</span><span>&nbsp;of&nbsp;available&nbsp;factories&nbsp;</span></td></tr><tr><td class="line2">arch&nbsp;-factory&nbsp;$factory_name&nbsp;=&gt;&nbsp;display&nbsp;complete&nbsp;information&nbsp;about&nbsp;the&nbsp;factory&nbsp;$factory_name&nbsp;</td></tr><tr><td class="line1">arch&nbsp;-handlers&nbsp;=&gt;&nbsp;<span class="keyword">list</span><span>&nbsp;available&nbsp;handlers&nbsp;</span></td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">arch =&gt; displays instances name &amp; state (equivalent to arch \-instances)
Clement Escoffier8251f602009-01-15 15:35:17 +0000248arch -instance $instance_name =&gt; displays complete information about the instance $instance_name
249arch -factories =&gt; display the list of available factories
250arch -factory $factory_name =&gt; display complete information about the factory $factory_name
Clement Escoffier373a57d2009-07-21 12:06:46 +0000251arch -handlers =&gt; list available handlers</textarea>
252<script class="javascript">
253 if(!window.newcodemacro_initialised)
254 {
255 window.newcodemacro_initialised = true;
256 window.oldonloadmethod = window.onload;
257 window.onload = function(){
258 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
259 if(window.oldonloadmethod)
260 {
261 window.oldonloadmethod();
262 }
263 }
264 }
265
266</script>
267</div>
268
Clement Escoffier8251f602009-01-15 15:35:17 +0000269<h2><a name="iPOJO-Arch-Command-Readinginstancearchitecture"></a>Reading instance architecture </h2>
270<p>When you launch the <tt>arch</tt> command, the list of created instances (enabling architecture introspection) is displayed.</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000271<div class="code">
272<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>-&gt;&nbsp;arch&nbsp;</span></td></tr><tr><td class="line2">Instance&nbsp;ArchCommand&nbsp;-&gt;&nbsp;valid&nbsp;</td></tr><tr><td class="line1">Instance&nbsp;spell.english.EnglishDictionary-0&nbsp;-&gt;&nbsp;valid&nbsp;</td></tr><tr><td class="line2">Instance&nbsp;spell.checker.SpellCheck-0&nbsp;-&gt;&nbsp;valid&nbsp;</td></tr><tr><td class="line1">Instance&nbsp;spell.gui.SpellCheckerGui-0&nbsp;-&gt;&nbsp;valid&nbsp;</td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">-&gt; arch
Clement Escoffier8251f602009-01-15 15:35:17 +0000273Instance ArchCommand -&gt; valid
274Instance spell.english.EnglishDictionary-0 -&gt; valid
275Instance spell.checker.SpellCheck-0 -&gt; valid
Clement Escoffier373a57d2009-07-21 12:06:46 +0000276Instance spell.gui.SpellCheckerGui-0 -&gt; valid</textarea>
277<script class="javascript">
278 if(!window.newcodemacro_initialised)
279 {
280 window.newcodemacro_initialised = true;
281 window.oldonloadmethod = window.onload;
282 window.onload = function(){
283 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
284 if(window.oldonloadmethod)
285 {
286 window.oldonloadmethod();
287 }
288 }
289 }
290
291</script>
292</div>
293
Clement Escoffier8251f602009-01-15 15:35:17 +0000294<p>To get more information on an instance, launch <tt>arch -instance the_instance_name</tt></p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000295<div class="code">
296<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>-&gt;&nbsp;arch&nbsp;-instance&nbsp;spell.checker.SpellCheck-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr><tr><td class="line2">instance&nbsp;component.<span class="keyword">type</span><span>="spell.checker.SpellCheck"&nbsp;state="valid"&nbsp;bundle="8"&nbsp;name="spell.checker.SpellCheck-0"&nbsp;</span></td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.dependency.DependencyHandler"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requires&nbsp;optional="<span class="keyword">false</span><span>"&nbsp;aggregate="</span><span class="keyword">false</span><span>"&nbsp;state="resolved"&nbsp;binding-policy="dynamic"&nbsp;specification="spell.services.DictionaryService"&nbsp;</span></td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provides&nbsp;service.id="36"&nbsp;state="registered"&nbsp;specifications="[spell.services.SpellChecker]"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;value="spell.checker.SpellCheck"&nbsp;name="factory.name"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;value="spell.checker.SpellCheck-0"&nbsp;name="instance.name"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.architecture.ArchitectureHandler"&nbsp;</td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">-&gt;
297arch -instance spell.checker.SpellCheck-0 instance
298component.type="spell.checker.SpellCheck" state="valid" bundle="8"
299name="spell.checker.SpellCheck-0" handler state="valid"
300name="org.apache.felix.ipojo.handlers.dependency.DependencyHandler"
301requires optional="false" aggregate="false" state="resolved"
302binding-policy="dynamic"
303specification="spell.services.DictionaryService" handler state="valid"
304name="org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler"
305
306provides service.id="36" state="registered"
307specifications="[spell.services.SpellChecker]" property
308value="spell.checker.SpellCheck" name="factory.name" property
309value="spell.checker.SpellCheck-0" name="instance.name" handler
310state="valid"
311name="org.apache.felix.ipojo.handlers.architecture.ArchitectureHandler"</textarea>
312<script class="javascript">
313 if(!window.newcodemacro_initialised)
314 {
315 window.newcodemacro_initialised = true;
316 window.oldonloadmethod = window.onload;
317 window.onload = function(){
318 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
319 if(window.oldonloadmethod)
320 {
321 window.oldonloadmethod();
322 }
323 }
324 }
325
326</script>
327</div>
328
Clement Escoffier8251f602009-01-15 15:35:17 +0000329<p>Instance architecture is organized as follows:<br>
330On the first line, are displayed the component type (i.e. factory), the instance state (<tt>valid</tt> or <tt>invalid</tt>), the bundle from which the instance is created, and the instance name.<br>
331Then, the information is organized handler by handler (a piece of
332container). For each handler plugged on the instance can participate to
333the instance architecture. For each handler its name (such as {{
334org.apache.felix.ipojo.handlers.dependency.DependencyHandler}} for
335iPOJO service dependencies, {{
336org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler}}
337for iPOJO service providing...) and the state (either <tt>valid</tt> or <tt>invalid</tt> are displayed. Remember that an instance is valid only and only if all plugged handlers are valid. <br>
338The <tt>org.apache.felix.ipojo.handlers.dependency.DependencyHandler</tt>
339provides data on service dependencies and more precisely on the state
340of service dependencies. In the previous example, the dependency on {{
341spell.services.DictionaryService}} was resolved. On the following
342example, the same dependency is no more resolved:</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000343<div class="code">
344<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>instance&nbsp;component.</span><span class="keyword">type</span><span>="spell.checker.SpellCheck"&nbsp;state="invalid"&nbsp;bundle="8"&nbsp;name="spell.checker.SpellCheck-0"&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="invalid"&nbsp;name="org.apache.felix.ipojo.handlers.dependency.DependencyHandler"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requires&nbsp;optional="<span class="keyword">false</span><span>"&nbsp;aggregate="</span><span class="keyword">false</span><span>"&nbsp;state="unresolved"&nbsp;binding-policy="dynamic"&nbsp;specification="spell.services.DictionaryService"&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provides&nbsp;state="unregistered"&nbsp;specifications="[spell.services.SpellChecker]"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;value="spell.checker.SpellCheck"&nbsp;name="factory.name"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;value="spell.checker.SpellCheck-0"&nbsp;name="instance.name"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.architecture.ArchitectureHandler"&nbsp;</td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">instance
345component.type="spell.checker.SpellCheck" state="invalid" bundle="8"
346name="spell.checker.SpellCheck-0" handler state="invalid"
347name="org.apache.felix.ipojo.handlers.dependency.DependencyHandler"
348requires optional="false" aggregate="false" state="unresolved"
349binding-policy="dynamic"
350specification="spell.services.DictionaryService" handler state="valid"
351name="org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler"
352
353provides state="unregistered"
354specifications="[spell.services.SpellChecker]" property
355value="spell.checker.SpellCheck" name="factory.name" property
356value="spell.checker.SpellCheck-0" name="instance.name" handler
357state="valid"
358name="org.apache.felix.ipojo.handlers.architecture.ArchitectureHandler"</textarea>
359<script class="javascript">
360 if(!window.newcodemacro_initialised)
361 {
362 window.newcodemacro_initialised = true;
363 window.oldonloadmethod = window.onload;
364 window.onload = function(){
365 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
366 if(window.oldonloadmethod)
367 {
368 window.oldonloadmethod();
369 }
370 }
371 }
372
373</script>
374</div>
375
Clement Escoffier8251f602009-01-15 15:35:17 +0000376<p>Notes that, the instance also becomes invalid and that the provided service is unregistered.<br>
377If the provider comes back, the dependency becomes <tt>resolved</tt> and the instance becomes <tt>valid</tt><br>
378If an instance begins to use a service, the bound providers are described in the instance architecture:</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000379<div class="code">
380<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>-&gt;&nbsp;arch&nbsp;-instance&nbsp;spell.checker.SpellCheck-0&nbsp;&nbsp;</span></td></tr><tr><td class="line2">instance&nbsp;component.<span class="keyword">type</span><span>="spell.checker.SpellCheck"&nbsp;state="valid"&nbsp;bundle="8"&nbsp;name="spell.checker.SpellCheck-0"&nbsp;</span></td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;object&nbsp;name="spell.checker.SpellCheck@e222eb"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.dependency.DependencyHandler"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requires&nbsp;optional="<span class="keyword">false</span><span>"&nbsp;aggregate="</span><span class="keyword">false</span><span>"&nbsp;state="resolved"&nbsp;binding-policy="dynamic"&nbsp;specification="spell.services.DictionaryService"&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uses&nbsp;service.id="41"&nbsp;instance.name="spell.english.EnglishDictionary-0"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;provides&nbsp;service.id="42"&nbsp;state="registered"&nbsp;specifications="[spell.services.SpellChecker]"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;value="spell.checker.SpellCheck"&nbsp;name="factory.name"&nbsp;</td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;value="spell.checker.SpellCheck-0"&nbsp;name="instance.name"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;state="valid"&nbsp;name="org.apache.felix.ipojo.handlers.architecture.ArchitectureHandler"&nbsp;</td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">-&gt;
381arch -instance spell.checker.SpellCheck-0 instance
382component.type="spell.checker.SpellCheck" state="valid" bundle="8"
383name="spell.checker.SpellCheck-0" object
384name="spell.checker.SpellCheck@e222eb" handler state="valid"
385name="org.apache.felix.ipojo.handlers.dependency.DependencyHandler"
386requires optional="false" aggregate="false" state="resolved"
387binding-policy="dynamic"
388specification="spell.services.DictionaryService" uses service.id="41"
389instance.name="spell.english.EnglishDictionary-0" handler state="valid"
390name="org.apache.felix.ipojo.handlers.providedservice.ProvidedServiceHandler"
391
392provides service.id="42" state="registered"
393specifications="[spell.services.SpellChecker]" property
394value="spell.checker.SpellCheck" name="factory.name" property
395value="spell.checker.SpellCheck-0" name="instance.name" handler
396state="valid"
397name="org.apache.felix.ipojo.handlers.architecture.ArchitectureHandler"</textarea>
398<script class="javascript">
399 if(!window.newcodemacro_initialised)
400 {
401 window.newcodemacro_initialised = true;
402 window.oldonloadmethod = window.onload;
403 window.onload = function(){
404 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
405 if(window.oldonloadmethod)
406 {
407 window.oldonloadmethod();
408 }
409 }
410 }
411
412</script>
413</div>
414
Clement Escoffier8251f602009-01-15 15:35:17 +0000415<p>In the previous case, the dependency on {{
416spell.services.DictionaryService}} use the service 41 from the iPOJO
417instance named {{ spell.english.EnglishDictionary-0}}<br>
418You can also check created POJO objects (implementation class objet). Here, only one object was created (<tt>spell.checker.SpellCheck@e222eb</tt>).</p>
419<h2><a name="iPOJO-Arch-Command-Listavailablefactories"></a>List available factories</h2>
420<p>To list available factories (i.e. component types), launch the <tt>arch -factories</tt> command:</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000421<div class="code">
422<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>-&gt;&nbsp;arch&nbsp;-factories&nbsp;</span></td></tr><tr><td class="line2">Factory&nbsp;spell.checker.SpellCheck&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line1">Factory&nbsp;spell.gui.SpellCheckerGui&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line2">Factory&nbsp;spell.english.EnglishDictionary&nbsp;(VALID)&nbsp;</td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">-&gt; arch -factories
Clement Escoffier8251f602009-01-15 15:35:17 +0000423Factory spell.checker.SpellCheck (VALID)
424Factory spell.gui.SpellCheckerGui (VALID)
Clement Escoffier373a57d2009-07-21 12:06:46 +0000425Factory spell.english.EnglishDictionary (VALID)</textarea>
426<script class="javascript">
427 if(!window.newcodemacro_initialised)
428 {
429 window.newcodemacro_initialised = true;
430 window.oldonloadmethod = window.onload;
431 window.onload = function(){
432 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
433 if(window.oldonloadmethod)
434 {
435 window.oldonloadmethod();
436 }
437 }
438 }
439
440</script>
441</div>
442
Clement Escoffier8251f602009-01-15 15:35:17 +0000443<p>For each available (public) factories,the name and the sate are
444displayed. A factory is valid if and only if all required handlers are
445available. To get more information on a factory launch the <tt>arch -factory factory_name</tt> command:</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000446<div class="code">
447<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>factory&nbsp;implementation-class="spell.english.EnglishDictionary"&nbsp;state="valid"&nbsp;bundle="7"&nbsp;name="spell.english.EnglishDictionary"&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;provides&nbsp;specification="spell.services.DictionaryService"&nbsp;</td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;missinghandlers&nbsp;<span class="keyword">list</span><span>="[]"&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;requiredhandlers&nbsp;<span class="keyword">list</span><span>="[org.apache.felix.ipojo:provides,&nbsp;org.apache.felix.ipojo:architecture]"&nbsp;</span></td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">factory implementation-class="spell.english.EnglishDictionary" state="valid" bundle="7" name="spell.english.EnglishDictionary"
448 provides specification="spell.services.DictionaryService"
449 missinghandlers list="[]"
450 requiredhandlers list="[org.apache.felix.ipojo:provides, org.apache.felix.ipojo:architecture]"</textarea>
451<script class="javascript">
452 if(!window.newcodemacro_initialised)
453 {
454 window.newcodemacro_initialised = true;
455 window.oldonloadmethod = window.onload;
456 window.onload = function(){
457 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
458 if(window.oldonloadmethod)
459 {
460 window.oldonloadmethod();
461 }
462 }
463 }
464
465</script>
466</div>
467
Clement Escoffier8251f602009-01-15 15:35:17 +0000468<p>On the first line, you get the implementation class of the type, the
469state of the factory, the bundle declaring the type and the name of the
470type. Then you get the list of required and missing handlers.</p>
471<h2><a name="iPOJO-Arch-Command-Listavailablehandlers"></a>List available handlers</h2>
472<p>You can also list available handlers with the <tt>arch -handlers</tt> command.</p>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000473<div class="code">
474<div class="dp-highlighter"><table class="dp-shell" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span>-&gt;&nbsp;arch&nbsp;-handlers&nbsp;</span></td></tr><tr><td class="line2">Handler&nbsp;org.apache.felix.ipojo:controller&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line1">Handler&nbsp;org.apache.felix.ipojo:callback&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line2">Handler&nbsp;org.apache.felix.ipojo:requires&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line1">Handler&nbsp;org.apache.felix.ipojo:provides&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line2">Handler&nbsp;org.apache.felix.ipojo:properties&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line1">Handler&nbsp;org.apache.felix.ipojo:architecture&nbsp;(VALID)&nbsp;</td></tr><tr><td class="line2">Handler&nbsp;org.apache.felix.ipojo.handler.whiteboard:wbp&nbsp;(VALID)&nbsp;</td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="shell:nocontrols:nogutter" rows="10" readonly="readonly">-&gt; arch -handlers
Clement Escoffier8251f602009-01-15 15:35:17 +0000475Handler org.apache.felix.ipojo:controller (VALID)
476Handler org.apache.felix.ipojo:callback (VALID)
477Handler org.apache.felix.ipojo:requires (VALID)
478Handler org.apache.felix.ipojo:provides (VALID)
479Handler org.apache.felix.ipojo:properties (VALID)
480Handler org.apache.felix.ipojo:architecture (VALID)
Clement Escoffier373a57d2009-07-21 12:06:46 +0000481Handler org.apache.felix.ipojo.handler.whiteboard:wbp (VALID)</textarea>
482<script class="javascript">
483 if(!window.newcodemacro_initialised)
484 {
485 window.newcodemacro_initialised = true;
486 window.oldonloadmethod = window.onload;
487 window.onload = function(){
488 dp.SyntaxHighlighter.HighlightAll('newcodemacro');
489 if(window.oldonloadmethod)
490 {
491 window.oldonloadmethod();
492 }
493 }
494 }
Clement Escoffier8251f602009-01-15 15:35:17 +0000495
Clement Escoffier373a57d2009-07-21 12:06:46 +0000496</script>
497</div>
Clement Escoffier8251f602009-01-15 15:35:17 +0000498
Clement Escoffier373a57d2009-07-21 12:06:46 +0000499<p>Handlers with the <tt>org.apache.felix.ipojo</tt> namespace (section before <tt>:</tt>) are core handlers (provided by the iPOJO bundle). Others are external handlers (provided by others bundles).
500<br clear="all">
501<br clear="all"></p>
Clement Escoffier8251f602009-01-15 15:35:17 +0000502
Clement Escoffier373a57d2009-07-21 12:06:46 +0000503 </div>
504 <img src="ipojo-arch-command_files/footer.png" class="footer">
505</div>
Clement Escoffier8251f602009-01-15 15:35:17 +0000506
507<script type="text/javascript">
508var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
509document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
510</script><script src="ipojo-arch-command_files/ga.js" type="text/javascript"></script>
511<script type="text/javascript">
Clement Escoffier373a57d2009-07-21 12:06:46 +0000512try{
Clement Escoffier8251f602009-01-15 15:35:17 +0000513var pageTracker = _gat._getTracker("UA-1518442-4");
514pageTracker._trackPageview();
Clement Escoffier373a57d2009-07-21 12:06:46 +0000515} catch(err) {}
Clement Escoffier8251f602009-01-15 15:35:17 +0000516</script>
Clement Escoffier8251f602009-01-15 15:35:17 +0000517
518 </div>
Clement Escoffier373a57d2009-07-21 12:06:46 +0000519 </body><div FirebugVersion="1.4.0" style="display: none;" id="_firebugConsole"></div></html>