You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by bu...@apache.org on 2013/02/03 07:45:22 UTC
svn commit: r849204 [3/33] - in /websites/staging/felix/trunk/content: ./
documentation/subprojects/ documentation/subprojects/apache-felix-ipojo/
documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/
documentation/subprojects/apach...
Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/ipojo-concepts-overview.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/ipojo-concepts-overview.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/ipojo-concepts-overview.html Sun Feb 3 06:45:21 2013
@@ -20,9 +20,45 @@
<head>
<title>Apache Felix - iPOJO Concepts Overview</title>
<link rel="icon" href="/res/favicon.ico">
- <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
- <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/site/media.data/site.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/superfish.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/style.css" type="text/css" media="all">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+
+ <!--
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJava.js"></script>
+ -->
+
+ <script type="text/javascript" src="/ipojo/site/jquery-1.js"></script>
+ <script type="text/javascript" src="/ipojo/site/hoverIntent.js"></script>
+ <script type="text/javascript" src="/ipojo/site/superfish.js"></script>
+ <script type="text/javascript" src="/ipojo/site/supersubs.js"></script>
+
+ <script type="text/javascript">
+
+ $(document).ready(function(){
+ $("ul.sf-menu").supersubs({
+ minWidth: 14, // minimum width of sub-menus in em units
+ maxWidth: 30, // maximum width of sub-menus in em units
+ extraWidth: 1 // extra width can ensure lines don't sometimes turn over
+ // due to slight rounding differences and font-family
+ }).superfish(); // call supersubs first, then superfish, so that subs are
+ // not display:none when measuring. Call before initialising
+ // containing tabs for same reason.
+ });
+
+ </script>
+
</head>
<body>
<div class="title">
@@ -37,47 +73,144 @@
</a>
</div>
</div>
+
+ <div class="main">
+ <div class="main">
+ <div class="page-header">
+ <img src="/ipojo/site/header.png" class="header">
+ <a href="http://ipojo.org"><img src="/ipojo/site/ipojo.png" width="225" class="header-logo"></a>
+ <ul class="sf-menu sf-js-enabled sf-shadow" id="ipojo-menu">
+ <li class="current">
+ <!-- Menu Overview -->
+ <a href="#" class="sf-with-ul">Overview<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li>
+ <a href="">Home</a>
+ </li>
+ <li>
+ <a href="">Why choose iPOJO</a>
+ </li>
+ <li>
+ <a href="">Success stories</a>
+ </li>
+ <li>
+ <a href="">Features</a>
+ </li>
+ </ul>
+ </li>
- <div class="menu">
- <p><a href="/news.html">news</a> <br />
-<a href="/license.html">license</a> <br />
-<a href="/downloads.cgi">downloads</a> <br />
-<a href="/documentation.html">documentation</a> <br />
-<a href="/mailinglists.html">mailing lists</a> <br />
-<a href="/documentation/community/contributing.html">contributing</a> <br />
-<a href="/sitemap.html">site map</a> <br />
-<a href="http://www.apache.org/">asf</a> <br />
-<a href="http://www.apache.org/security/">security</a> <br />
-<a href="http://www.apache.org/foundation/sponsorship.html">sponsorship</a> <br />
-<a href="http://www.apache.org/foundation/thanks.html">sponsors</a> <br />
-</p>
-<iframe
- src="http://www.apache.org/ads/button.html"
- style="border-width:0; float: left"
- frameborder="0"
- scrolling="no"
- width="135"
- height="135">
-</iframe>
- </div>
+ <li class="">
+ <!-- Menu download -->
+ <li>
+ <a href="/downloads.cgi">Download </a>
+ </li>
- <div class="main">
- <div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a href="/documentation.html">Documentation</a> » <a href="/documentation/subprojects.html">Apache Felix Subproject Documentation</a> » <a href="/documentation/subprojects/apache-felix-ipojo.html">Apache Felix iPOJO</a> » <a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide.html">apache-felix-ipojo-devguide</a>
- </div>
-
+ <li class="">
+ <!-- Menu Documentation -->
+ <a href="#" class="sf-with-ul">Documentation<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <!-- sub-menu : getting started -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Getting Started<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">iPOJO in 10 minutes</a></li>
+ <li><a href="">Using Annotations</a></li>
+ <li><a href="">Maven tutorial</a></li>
+ <li><a href="">Advanced tutorial</a></li>
+ <li><a href="">Using Distributed OSGi</a></li>
+ <li><a href="">Application Composition</a></li>
+ </ul>
+ </li> <!-- end of getting started -->
+ <!-- sub menu : Describing Components -->
+ <li class="">
+ <a href="" class="sf-with-ul">Describing components<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Requiring a service</a></li>
+ <li><a href="">Providing a service</a></li>
+ <li><a href="">Lifecycle management</a></li>
+ <li><a href="">Configuration</a></li>
+ <li><a href="">Introspection</a></li>
+ <li><a href="">Impacting the lifecycle</a></li>
+ <li><a href="">Asynchronous communication</a></li>
+ <li><a href="">JMX management</a></li>
+ <li><a href="">Extender pattern</a></li>
+ <li><a href="">Whiteboard pattern</a></li>
+ <li><a href="">Temporal dependencies</a></li>
+ </ul>
+ </li> <!-- End of describing components -->
+ <!-- sub-menu : User Guide -->
+ <li class="">
+ <a href="" class="sf-with-ul">User Guide<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">iPOJO and config admin</a></li>
+ <li><a href="">Factories and Instances</a></li>
+ <li><a href="">XML Schemas</a></li>
+ <li><a href="">API</a></li>
+ <li><a href="">Testing components</a></li>
+ <li><a href="">Eclipse Integration</a></li>
+ <li><a href="">FAQ</a></li>
+ <li><a href="">Reference Card</a></li>
+ </ul>
+ </li> <!-- end of user guide -->
+ <!-- sub-menu : Dev Guide -->
+ <li>
+ <a href="#" class="sf-with-ul">Advanced Topics<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="http://felix.apache.org/ipojo/api/1.6.0">Javadoc</a></li>
+ <li><a href="">Handler development</a></li>
+ <li><a href="">Manipulation Metadata </a></li>
+ <li><a href="">Dive into the iPOJO Manipulation depths</a></li>
+ </ul>
+ </li> <!-- End of Dev guide -->
+ </ul>
+ </li> <!-- End of doc -->
+ <!-- Menu 4 : Tools -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Tools<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Ant Task</a></li>
+ <li><a href="">Eclipse Plugin</a></li>
+ <li><a href="">Maven Plugin</a></li>
+ <li><a href="">`arch` shell command</a></li>
+ <li><a href="">Online Manipulator</a></li>
+ <li><a href="">Webconsole plugin</a></li>
+ <li><a href="">Junit4OSGi</a></li>
+ </ul>
+ </li><!-- End of tools -->
+ <!-- Menu 5 : Support -->
+ <li>
+ <a href="">Support </a>
+ </li>
+ <!-- End of the menu 5 -->
+ <!-- Menu 6 : Misc -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Misc<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Supported JVMs</a></li>
+ <li><a href="">Supported OSGi Implementations</a></li>
+ <li><a href="http://ipojo-dark-side.blogspot.com">iPOJO's Dark Side Blog</a></li>
+ <li><a href="">Article & Presentations</a></li>
+ <li><a href="http://www.apache.org/">ASF</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Sponsors</a></li>
+ </ul>
+ </li><!-- End of misc -->
+ </ul> <!-- End of the menu -->
+ </div> <!-- Page header -->
+
+ <!--
<div class="tip">
This page is a translated version of <a href="/site/ipojo-concepts-overview.html" target="felix_cwiki">/site/ipojo-concepts-overview.html</a>. In case of
doubt you might want to refer to the old page.
</div>
+ -->
<h1>iPOJO Concepts Overview</h1>
- <p>{include:apache-felix-ipojo-header}</p>
-<div class="content">
-
-<div class="box">
+
+ <div class="content">
+ <div class="box">
<div class="box-red-header">
<div class="box-red-title">
<img src="http://felix.apache.org/ipojo/site/forbidden.gif"> <b>Page no more accessible</b>
@@ -88,10 +221,12 @@ This page is now out of date. Please upd
</div>
<div class="box-red-footer"></div>
</div>
+ </div>
+
+ <img src="http://felix.apache.org/ipojo/site/footer.png" class="footer">
-{include:apache-felix-ipojo-footer}
<div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
- Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+ Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project
@@ -99,5 +234,18 @@ This page is now out of date. Please upd
may be trademarks or registered trademarks of their respective owners.
</div>
</div>
+ </div>
+
+ <script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script type="text/javascript">
+ try{
+ var pageTracker = _gat._getTracker("UA-1518442-4");
+ pageTracker._trackPageview();
+ } catch(err) {}
+ </script>
+
</body>
</html>
Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-eclipse-integration.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-eclipse-integration.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-eclipse-integration.html Sun Feb 3 06:45:21 2013
@@ -20,9 +20,45 @@
<head>
<title>Apache Felix - apache-felix-ipojo-eclipse-integration</title>
<link rel="icon" href="/res/favicon.ico">
- <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
- <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/site/media.data/site.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/superfish.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/style.css" type="text/css" media="all">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+
+ <!--
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJava.js"></script>
+ -->
+
+ <script type="text/javascript" src="/ipojo/site/jquery-1.js"></script>
+ <script type="text/javascript" src="/ipojo/site/hoverIntent.js"></script>
+ <script type="text/javascript" src="/ipojo/site/superfish.js"></script>
+ <script type="text/javascript" src="/ipojo/site/supersubs.js"></script>
+
+ <script type="text/javascript">
+
+ $(document).ready(function(){
+ $("ul.sf-menu").supersubs({
+ minWidth: 14, // minimum width of sub-menus in em units
+ maxWidth: 30, // maximum width of sub-menus in em units
+ extraWidth: 1 // extra width can ensure lines don't sometimes turn over
+ // due to slight rounding differences and font-family
+ }).superfish(); // call supersubs first, then superfish, so that subs are
+ // not display:none when measuring. Call before initialising
+ // containing tabs for same reason.
+ });
+
+ </script>
+
</head>
<body>
<div class="title">
@@ -37,104 +73,200 @@
</a>
</div>
</div>
+
+ <div class="main">
+ <div class="main">
+ <div class="page-header">
+ <img src="/ipojo/site/header.png" class="header">
+ <a href="http://ipojo.org"><img src="/ipojo/site/ipojo.png" width="225" class="header-logo"></a>
+ <ul class="sf-menu sf-js-enabled sf-shadow" id="ipojo-menu">
+ <li class="current">
+ <!-- Menu Overview -->
+ <a href="#" class="sf-with-ul">Overview<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li>
+ <a href="">Home</a>
+ </li>
+ <li>
+ <a href="">Why choose iPOJO</a>
+ </li>
+ <li>
+ <a href="">Success stories</a>
+ </li>
+ <li>
+ <a href="">Features</a>
+ </li>
+ </ul>
+ </li>
- <div class="menu">
- <p><a href="/news.html">news</a> <br />
-<a href="/license.html">license</a> <br />
-<a href="/downloads.cgi">downloads</a> <br />
-<a href="/documentation.html">documentation</a> <br />
-<a href="/mailinglists.html">mailing lists</a> <br />
-<a href="/documentation/community/contributing.html">contributing</a> <br />
-<a href="/sitemap.html">site map</a> <br />
-<a href="http://www.apache.org/">asf</a> <br />
-<a href="http://www.apache.org/security/">security</a> <br />
-<a href="http://www.apache.org/foundation/sponsorship.html">sponsorship</a> <br />
-<a href="http://www.apache.org/foundation/thanks.html">sponsors</a> <br />
-</p>
-<iframe
- src="http://www.apache.org/ads/button.html"
- style="border-width:0; float: left"
- frameborder="0"
- scrolling="no"
- width="135"
- height="135">
-</iframe>
- </div>
+ <li class="">
+ <!-- Menu download -->
+ <li>
+ <a href="/downloads.cgi">Download </a>
+ </li>
- <div class="main">
- <div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a href="/documentation.html">Documentation</a> » <a href="/documentation/subprojects.html">Apache Felix Subproject Documentation</a> » <a href="/documentation/subprojects/apache-felix-ipojo.html">Apache Felix iPOJO</a>
- </div>
-
+ <li class="">
+ <!-- Menu Documentation -->
+ <a href="#" class="sf-with-ul">Documentation<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <!-- sub-menu : getting started -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Getting Started<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">iPOJO in 10 minutes</a></li>
+ <li><a href="">Using Annotations</a></li>
+ <li><a href="">Maven tutorial</a></li>
+ <li><a href="">Advanced tutorial</a></li>
+ <li><a href="">Using Distributed OSGi</a></li>
+ <li><a href="">Application Composition</a></li>
+ </ul>
+ </li> <!-- end of getting started -->
+ <!-- sub menu : Describing Components -->
+ <li class="">
+ <a href="" class="sf-with-ul">Describing components<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Requiring a service</a></li>
+ <li><a href="">Providing a service</a></li>
+ <li><a href="">Lifecycle management</a></li>
+ <li><a href="">Configuration</a></li>
+ <li><a href="">Introspection</a></li>
+ <li><a href="">Impacting the lifecycle</a></li>
+ <li><a href="">Asynchronous communication</a></li>
+ <li><a href="">JMX management</a></li>
+ <li><a href="">Extender pattern</a></li>
+ <li><a href="">Whiteboard pattern</a></li>
+ <li><a href="">Temporal dependencies</a></li>
+ </ul>
+ </li> <!-- End of describing components -->
+ <!-- sub-menu : User Guide -->
+ <li class="">
+ <a href="" class="sf-with-ul">User Guide<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">iPOJO and config admin</a></li>
+ <li><a href="">Factories and Instances</a></li>
+ <li><a href="">XML Schemas</a></li>
+ <li><a href="">API</a></li>
+ <li><a href="">Testing components</a></li>
+ <li><a href="">Eclipse Integration</a></li>
+ <li><a href="">FAQ</a></li>
+ <li><a href="">Reference Card</a></li>
+ </ul>
+ </li> <!-- end of user guide -->
+ <!-- sub-menu : Dev Guide -->
+ <li>
+ <a href="#" class="sf-with-ul">Advanced Topics<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="http://felix.apache.org/ipojo/api/1.6.0">Javadoc</a></li>
+ <li><a href="">Handler development</a></li>
+ <li><a href="">Manipulation Metadata </a></li>
+ <li><a href="">Dive into the iPOJO Manipulation depths</a></li>
+ </ul>
+ </li> <!-- End of Dev guide -->
+ </ul>
+ </li> <!-- End of doc -->
+ <!-- Menu 4 : Tools -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Tools<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Ant Task</a></li>
+ <li><a href="">Eclipse Plugin</a></li>
+ <li><a href="">Maven Plugin</a></li>
+ <li><a href="">`arch` shell command</a></li>
+ <li><a href="">Online Manipulator</a></li>
+ <li><a href="">Webconsole plugin</a></li>
+ <li><a href="">Junit4OSGi</a></li>
+ </ul>
+ </li><!-- End of tools -->
+ <!-- Menu 5 : Support -->
+ <li>
+ <a href="">Support </a>
+ </li>
+ <!-- End of the menu 5 -->
+ <!-- Menu 6 : Misc -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Misc<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Supported JVMs</a></li>
+ <li><a href="">Supported OSGi Implementations</a></li>
+ <li><a href="http://ipojo-dark-side.blogspot.com">iPOJO's Dark Side Blog</a></li>
+ <li><a href="">Article & Presentations</a></li>
+ <li><a href="http://www.apache.org/">ASF</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Sponsors</a></li>
+ </ul>
+ </li><!-- End of misc -->
+ </ul> <!-- End of the menu -->
+ </div> <!-- Page header -->
+
+ <!--
<div class="tip">
This page is a translated version of <a href="/site/apache-felix-ipojo-eclipse-integration.html" target="felix_cwiki">/site/apache-felix-ipojo-eclipse-integration.html</a>. In case of
doubt you might want to refer to the old page.
</div>
+ -->
<h1>apache-felix-ipojo-eclipse-integration</h1>
- <p>{include:apache-felix-ipojo-header}</p>
-<div class="content">
-
-# Building and Running iPOJO bundles from Eclipse
-*This page explains how to build and run iPOJO bundles without exiting Eclipse and breaking the compile-run cycle. Bundles are executed inside Equinox.*
-
-{div:class=toc}
+
+ <div class="content">
+ <h1 id="building-and-running-ipojo-bundles-from-eclipse">Building and Running iPOJO bundles from Eclipse</h1>
+<p><em>This page explains how to build and run iPOJO bundles without exiting Eclipse and breaking the compile-run cycle. Bundles are executed inside Equinox.</em></p>
+<p>{div:class=toc}
[TOC]
-{div}
-
-## 1) Import the iPOJO Bundle project
-Download the [project archive]() (1.4.2 version is available [here|^MyiPOJOBundle-1.4.2.zip]), and import it as an *`Existing Project into the Workspace`*
+{div}</p>
+<h2 id="1-import-the-ipojo-bundle-project">1) Import the iPOJO Bundle project</h2>
+<p>Download the <a href="">project archive</a> (1.4.2 version is available [here|^MyiPOJOBundle-1.4.2.zip]), and import it as an <em><code>Existing Project into the Workspace</code></em>
!Picture 1.png!!Picture 2.png!!Picture 3.png!
-Then click on *`finish`*
-
-## 2) Configure the target platform
-
-!Picture 4.png|align=left!
+Then click on <em><code>finish</code></em></p>
+<h2 id="2-configure-the-target-platform">2) Configure the target platform</h2>
+<p>!Picture 4.png|align=left!
!Picture 5.png|align=right!
-The resulting project, you looks like the left picture.
-
-## 3) Develop you bundle
-The imported project contains a very simple component using annotations. But, obviously you can delete/change it. For XML-metadata, use `metadata.xml` file is in the project root.
+The resulting project, you looks like the left picture.</p>
+<h2 id="3-develop-you-bundle">3) Develop you bundle</h2>
+<p>The imported project contains a very simple component using annotations. But, obviously you can delete/change it. For XML-metadata, use <code>metadata.xml</code> file is in the project root.
{code:java}
@Component
-public class MyComponentImpl {
-
- @Validate
- public void start() {
- System.out.println("I'm started !!!");
- }
-
- @Invalidate
- public void stop() {
- System.out.println("I'm leaving :-(...");
- }
-
-}
-
- Once you're done, you are able to run your bundle !
-
- h2. 4) Run your bundle
- !Picture 6.png|align=left!
- Right-click on the ** file and then go on **. Equinox will be started and your iPOJO bundle deployed and started:
- Once run for the first time, you can re-run it from the icon. In the console view, you get your Equinox shell, and you see your application result. If you don't edit the given development, the output is as:
- !Picture 8.png|align=center!
- \\
-
- h2. Iterate :-)
- Then, go back to the step 3, change your components, and see the new result...
- That's it !
-
- h2. Changes in the 1.4.0
-
- The 1.4.0+ iPOJO manipulator allows manipulating classes from a directory ([FELIX-943|http://cwiki.apache.org/jira/browse/FELIX-943]). This feature is very convenient for the Eclipse integration because it avoids creating the Jar and unzipping it inside the Eclipse build directory. Moreover, it allows reusing the Java Eclipse builder (compiling classes).
+public class MyComponentImpl {</p>
+<div class="codehilite"><pre><span class="s-Atom">@</span><span class="nv">Validate</span>
+<span class="s-Atom">public</span> <span class="s-Atom">void</span> <span class="nf">start</span><span class="p">()</span> <span class="p">{</span>
+ <span class="nv">System</span><span class="p">.</span><span class="s-Atom">out</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s2">"I'm started !!!"</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="s-Atom">@</span><span class="nv">Invalidate</span>
+<span class="s-Atom">public</span> <span class="s-Atom">void</span> <span class="nf">stop</span><span class="p">()</span> <span class="p">{</span>
+ <span class="nv">System</span><span class="p">.</span><span class="s-Atom">out</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s2">"I'm leaving :-(..."</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>}</p>
+<div class="codehilite"><pre><span class="nv">Once</span> <span class="s-Atom">you're done, you are able to run your bundle !</span>
+
+<span class="s-Atom">h2. 4) Run your bundle</span>
+<span class="s-Atom">!Picture 6.png|align=left!</span>
+<span class="s-Atom">Right-click on the ** file and then go on **. Equinox will be started and your iPOJO bundle deployed and started:</span>
+<span class="s-Atom">Once run for the first time, you can re-run it from the icon. In the console view, you get your Equinox shell, and you see your application result. If you don't</span> <span class="s-Atom">edit</span> <span class="s-Atom">the</span> <span class="s-Atom">given</span> <span class="s-Atom">development</span><span class="p">,</span> <span class="s-Atom">the</span> <span class="s-Atom">output</span> <span class="o">is</span> <span class="nn">as</span><span class="p">:</span>
+<span class="p">!</span><span class="nv">Picture</span> <span class="m">8</span><span class="p">.</span><span class="s-Atom">png</span><span class="p">|</span><span class="s-Atom">align</span><span class="o">=</span><span class="s-Atom">center</span><span class="p">!</span>
+<span class="s-Atom">\\</span>
+
+<span class="s-Atom">h2</span><span class="p">.</span> <span class="nv">Iterate</span> <span class="p">:-)</span>
+<span class="nv">Then</span><span class="p">,</span> <span class="s-Atom">go</span> <span class="s-Atom">back</span> <span class="s-Atom">to</span> <span class="s-Atom">the</span> <span class="s-Atom">step</span> <span class="m">3</span><span class="p">,</span> <span class="s-Atom">change</span> <span class="s-Atom">your</span> <span class="s-Atom">components</span><span class="p">,</span> <span class="s-Atom">and</span> <span class="s-Atom">see</span> <span class="s-Atom">the</span> <span class="s-Atom">new</span> <span class="s-Atom">result</span><span class="p">...</span>
+<span class="nv">That</span><span class="err">'</span><span class="s-Atom">s</span> <span class="s-Atom">it</span> <span class="p">!</span>
+
+<span class="s-Atom">h2</span><span class="p">.</span> <span class="nv">Changes</span> <span class="s-Atom">in</span> <span class="s-Atom">the</span> <span class="m">1</span><span class="p">.</span><span class="m">4</span><span class="p">.</span><span class="m">0</span>
+
+<span class="nv">The</span> <span class="m">1</span><span class="p">.</span><span class="m">4</span><span class="p">.</span><span class="m">0</span><span class="o">+</span> <span class="s-Atom">iPOJO</span> <span class="s-Atom">manipulator</span> <span class="s-Atom">allows</span> <span class="s-Atom">manipulating</span> <span class="s-Atom">classes</span> <span class="s-Atom">from</span> <span class="s-Atom">a</span> <span class="nf">directory</span> <span class="p">([</span><span class="nv">FELIX</span><span class="o">-</span><span class="m">943</span><span class="p">|</span><span class="nn">http</span><span class="p">:</span><span class="o">//</span><span class="s-Atom">cwiki</span><span class="p">.</span><span class="s-Atom">apache</span><span class="p">.</span><span class="s-Atom">org</span><span class="o">/</span><span class="s-Atom">jira</span><span class="o">/</span><span class="s-Atom">browse</span><span class="o">/</span><span class="nv">FELIX</span><span class="o"
>-</span><span class="m">943</span><span class="p">]).</span> <span class="nv">This</span> <span class="s-Atom">feature</span> <span class="o">is</span> <span class="s-Atom">very</span> <span class="s-Atom">convenient</span> <span class="s-Atom">for</span> <span class="s-Atom">the</span> <span class="nv">Eclipse</span> <span class="s-Atom">integration</span> <span class="s-Atom">because</span> <span class="s-Atom">it</span> <span class="s-Atom">avoids</span> <span class="s-Atom">creating</span> <span class="s-Atom">the</span> <span class="nv">Jar</span> <span class="s-Atom">and</span> <span class="s-Atom">unzipping</span> <span class="s-Atom">it</span> <span class="s-Atom">inside</span> <span class="s-Atom">the</span> <span class="nv">Eclipse</span> <span class="s-Atom">build</span> <span class="s-Atom">directory</span><span class="p">.</span> <span class="nv">Moreover</span><span class="p">,</span> <span class="s-Atom">it</span> <span class="s-Atom">allows</span> <span clas
s="s-Atom">reusing</span> <span class="s-Atom">the</span> <span class="nv">Java</span> <span class="nv">Eclipse</span> <span class="nf">builder</span> <span class="p">(</span><span class="s-Atom">compiling</span> <span class="s-Atom">classes</span><span class="p">).</span>
+
+<span class="s-Atom">\\</span>
+<span class="s-Atom">\\</span>
+</pre></div>
+ </div>
+
+ <img src="http://felix.apache.org/ipojo/site/footer.png" class="footer">
- \\
- \\
- {include:apache-felix-ipojo-footer}
<div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
- Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+ Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project
@@ -142,5 +274,18 @@ public class MyComponentImpl {
may be trademarks or registered trademarks of their respective owners.
</div>
</div>
+ </div>
+
+ <script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script type="text/javascript">
+ try{
+ var pageTracker = _gat._getTracker("UA-1518442-4");
+ pageTracker._trackPageview();
+ } catch(err) {}
+ </script>
+
</body>
</html>
Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html Sun Feb 3 06:45:21 2013
@@ -20,9 +20,45 @@
<head>
<title>Apache Felix - Apache Felix iPOJO Feature Overview</title>
<link rel="icon" href="/res/favicon.ico">
- <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
- <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/site/media.data/site.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/superfish.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/style.css" type="text/css" media="all">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+
+ <!--
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJava.js"></script>
+ -->
+
+ <script type="text/javascript" src="/ipojo/site/jquery-1.js"></script>
+ <script type="text/javascript" src="/ipojo/site/hoverIntent.js"></script>
+ <script type="text/javascript" src="/ipojo/site/superfish.js"></script>
+ <script type="text/javascript" src="/ipojo/site/supersubs.js"></script>
+
+ <script type="text/javascript">
+
+ $(document).ready(function(){
+ $("ul.sf-menu").supersubs({
+ minWidth: 14, // minimum width of sub-menus in em units
+ maxWidth: 30, // maximum width of sub-menus in em units
+ extraWidth: 1 // extra width can ensure lines don't sometimes turn over
+ // due to slight rounding differences and font-family
+ }).superfish(); // call supersubs first, then superfish, so that subs are
+ // not display:none when measuring. Call before initialising
+ // containing tabs for same reason.
+ });
+
+ </script>
+
</head>
<body>
<div class="title">
@@ -37,98 +73,186 @@
</a>
</div>
</div>
+
+ <div class="main">
+ <div class="main">
+ <div class="page-header">
+ <img src="/ipojo/site/header.png" class="header">
+ <a href="http://ipojo.org"><img src="/ipojo/site/ipojo.png" width="225" class="header-logo"></a>
+ <ul class="sf-menu sf-js-enabled sf-shadow" id="ipojo-menu">
+ <li class="current">
+ <!-- Menu Overview -->
+ <a href="#" class="sf-with-ul">Overview<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li>
+ <a href="">Home</a>
+ </li>
+ <li>
+ <a href="">Why choose iPOJO</a>
+ </li>
+ <li>
+ <a href="">Success stories</a>
+ </li>
+ <li>
+ <a href="">Features</a>
+ </li>
+ </ul>
+ </li>
- <div class="menu">
- <p><a href="/news.html">news</a> <br />
-<a href="/license.html">license</a> <br />
-<a href="/downloads.cgi">downloads</a> <br />
-<a href="/documentation.html">documentation</a> <br />
-<a href="/mailinglists.html">mailing lists</a> <br />
-<a href="/documentation/community/contributing.html">contributing</a> <br />
-<a href="/sitemap.html">site map</a> <br />
-<a href="http://www.apache.org/">asf</a> <br />
-<a href="http://www.apache.org/security/">security</a> <br />
-<a href="http://www.apache.org/foundation/sponsorship.html">sponsorship</a> <br />
-<a href="http://www.apache.org/foundation/thanks.html">sponsors</a> <br />
-</p>
-<iframe
- src="http://www.apache.org/ads/button.html"
- style="border-width:0; float: left"
- frameborder="0"
- scrolling="no"
- width="135"
- height="135">
-</iframe>
- </div>
+ <li class="">
+ <!-- Menu download -->
+ <li>
+ <a href="/downloads.cgi">Download </a>
+ </li>
- <div class="main">
- <div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a href="/documentation.html">Documentation</a> » <a href="/documentation/subprojects.html">Apache Felix Subproject Documentation</a> » <a href="/documentation/subprojects/apache-felix-ipojo.html">Apache Felix iPOJO</a>
- </div>
-
+ <li class="">
+ <!-- Menu Documentation -->
+ <a href="#" class="sf-with-ul">Documentation<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <!-- sub-menu : getting started -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Getting Started<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">iPOJO in 10 minutes</a></li>
+ <li><a href="">Using Annotations</a></li>
+ <li><a href="">Maven tutorial</a></li>
+ <li><a href="">Advanced tutorial</a></li>
+ <li><a href="">Using Distributed OSGi</a></li>
+ <li><a href="">Application Composition</a></li>
+ </ul>
+ </li> <!-- end of getting started -->
+ <!-- sub menu : Describing Components -->
+ <li class="">
+ <a href="" class="sf-with-ul">Describing components<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Requiring a service</a></li>
+ <li><a href="">Providing a service</a></li>
+ <li><a href="">Lifecycle management</a></li>
+ <li><a href="">Configuration</a></li>
+ <li><a href="">Introspection</a></li>
+ <li><a href="">Impacting the lifecycle</a></li>
+ <li><a href="">Asynchronous communication</a></li>
+ <li><a href="">JMX management</a></li>
+ <li><a href="">Extender pattern</a></li>
+ <li><a href="">Whiteboard pattern</a></li>
+ <li><a href="">Temporal dependencies</a></li>
+ </ul>
+ </li> <!-- End of describing components -->
+ <!-- sub-menu : User Guide -->
+ <li class="">
+ <a href="" class="sf-with-ul">User Guide<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">iPOJO and config admin</a></li>
+ <li><a href="">Factories and Instances</a></li>
+ <li><a href="">XML Schemas</a></li>
+ <li><a href="">API</a></li>
+ <li><a href="">Testing components</a></li>
+ <li><a href="">Eclipse Integration</a></li>
+ <li><a href="">FAQ</a></li>
+ <li><a href="">Reference Card</a></li>
+ </ul>
+ </li> <!-- end of user guide -->
+ <!-- sub-menu : Dev Guide -->
+ <li>
+ <a href="#" class="sf-with-ul">Advanced Topics<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="http://felix.apache.org/ipojo/api/1.6.0">Javadoc</a></li>
+ <li><a href="">Handler development</a></li>
+ <li><a href="">Manipulation Metadata </a></li>
+ <li><a href="">Dive into the iPOJO Manipulation depths</a></li>
+ </ul>
+ </li> <!-- End of Dev guide -->
+ </ul>
+ </li> <!-- End of doc -->
+ <!-- Menu 4 : Tools -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Tools<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Ant Task</a></li>
+ <li><a href="">Eclipse Plugin</a></li>
+ <li><a href="">Maven Plugin</a></li>
+ <li><a href="">`arch` shell command</a></li>
+ <li><a href="">Online Manipulator</a></li>
+ <li><a href="">Webconsole plugin</a></li>
+ <li><a href="">Junit4OSGi</a></li>
+ </ul>
+ </li><!-- End of tools -->
+ <!-- Menu 5 : Support -->
+ <li>
+ <a href="">Support </a>
+ </li>
+ <!-- End of the menu 5 -->
+ <!-- Menu 6 : Misc -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Misc<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Supported JVMs</a></li>
+ <li><a href="">Supported OSGi Implementations</a></li>
+ <li><a href="http://ipojo-dark-side.blogspot.com">iPOJO's Dark Side Blog</a></li>
+ <li><a href="">Article & Presentations</a></li>
+ <li><a href="http://www.apache.org/">ASF</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Sponsors</a></li>
+ </ul>
+ </li><!-- End of misc -->
+ </ul> <!-- End of the menu -->
+ </div> <!-- Page header -->
+
+ <!--
<div class="tip">
This page is a translated version of <a href="/site/apache-felix-ipojo-feature-overview.html" target="felix_cwiki">/site/apache-felix-ipojo-feature-overview.html</a>. In case of
doubt you might want to refer to the old page.
</div>
+ -->
<h1>Apache Felix iPOJO Feature Overview</h1>
- <p>{include:apache-felix-ipojo-header}</p>
-<div class="content">
-
-# Apache Felix iPOJO Feature Overview
-
-*This page is an attempt to put all of the features and benefits of iPOJO into a single high-level list so that it is easy to see why you will want to use iPOJO for your applications. This list is not exhaustive, but represents the set of features that are potentially most likely to be needed or are unique.*
-
-## Core Features
-
-* *POJO-based approach* \- Most components can simply be POJOs and need not have iPOJO\- or OSGi-specific API in them.
-* *Simple service provisioning* \- iPOJO manages all aspects of providing an OSGi service.
-** *Service property management*
-**- Can be controlled by configuration properties.
-**- Can be mapped to member fields and automatically updated by the component instance at run time by just changing the member field value.
-** *Service life cycle participation* \- The component instance can participate in the service life cycle by declaring a boolean member field that indicates when the service is actually valid (normally a service is assumed to be valid if the component instance's dependencies are satisfied).
-* *Rich service dependency model* \- Automatically manages a full spectrum of service dependencies.
-** *Optional/mandatory* service dependencies.
-** *Singular/aggregate* service dependencies.
-** *Default service implementations* \- The component can provide default implementations of dependent services if no providers are available.
-** *Member field or method injection* \- Also supported in combination.
-**- Member field injection does not require cluttering component code with bind/unbind methods.
-**- Member method injection supports various method signatures
-**-- method() \- Acts as a simple event-callback mechanism.
-**-- method(<service-interface> svc) \- Receives the service object cast to the appropriate interface.
-**-- method(ServiceReference ref) \- Receives the OSGi ServiceReference for the service object.
-**-- method(ServiceReference ref, <service-interface> svc) \- Receives the OSGi ServiceReference and the service object cast to the appropriate interface.
-** *Binding policies* \- Allow components to control how/when their dependencies are bound.
-**- *Static* \- Static dependencies *cannot* change without invalidating the component instance, so injected services typically do not change at run time and service departures typically result in the component instance being destroyed and potentially recreated.
-**- *Dynamic* \- Dynamic dependencies *can* change without invalidating the component instance, so injected services can change at run time, but *do not* change with respect to service priority changes (i.e., they do not automatically switch if a higher priority service appears).
-**- *Dynamic priority* \- Dynamic priority dependencies *can* change without invalidating the component instance and *do* dynamically update based on service priority rankings at run time.
-* *Configuration property management* \- Integrated with OSGi Configuration Admin service.
-** *Member field/member method injection* \- Also supported in combination.
-** *Service property propagation* \- Configuration properties can be configured to update service properties if the component instance is providing a service.
-* *Sophisticated concurrency handling* \- Externalizes concurrency issues so that component code does not need to worry about services changing while they are in use (i.e., no locking protocol in component code).
-* *Deferred instance creation* \- POJO instances are not created until they are actually needed, thus reducing start-up overhead.
-* *Introspection support* \- Supports introspecting a component instance and the state of its dependencies.
-** Interactive introspection is supported by an arch command for Felix' shell.
-* *Extensible* \- All iPOJO features are implemented via a set of `handlers`, which is an extensibility mechanism open to developers by which they can support custom functionality (e.g., exporting a provided service remotely, etc.).
-
-## Advanced/Experimental Features
-
-* *Composite model* \- iPOJO supports a flexible architectural-like model for composing services.
-** *Flexible composites* \- A composite is an abstract component implementation.
-**- *Sub-services and sub-components* \- Unlike traditional component composition, an iPOJO composite can be described in terms of services in addition to sub-components; thus sub-service implementation selection is deferred until run time.
-**- *Optional/mandatory* sub-services and/or sub-components.
-**- *Singular/aggregate* sub-services and/or sub-components.
-** *Hierarchical* \- A composite component may contain other composite components.
-**- *Composite scoping* \- A composite acts as a scoping mechanism where sub-services/sub-components are not visible externally and external services are not visible internally.
-** *Service dependencies* \- A composite has the full expressive capabilities of primitive components when it comes to service dependencies (see above description of service dependencies in core features).
-**- For a composite, a service dependency effectively imports an external service into the composite scope from its parent composite (which may be the OSGi service registry in the root case).
-** *Composite is just a component* \- Composites can be instantiated and automatically managed just like a primitive component.
+
+ <div class="content">
+ <h1 id="apache-felix-ipojo-feature-overview">Apache Felix iPOJO Feature Overview</h1>
+<p><em>This page is an attempt to put all of the features and benefits of iPOJO into a single high-level list so that it is easy to see why you will want to use iPOJO for your applications. This list is not exhaustive, but represents the set of features that are potentially most likely to be needed or are unique.</em></p>
+<h2 id="core-features">Core Features</h2>
+<ul>
+<li><em>POJO-based approach</em> - Most components can simply be POJOs and need not have iPOJO- or OSGi-specific API in them.</li>
+<li><em>Simple service provisioning</em> - iPOJO manages all aspects of providing an OSGi service.
+<strong> <em>Service property management</em></strong>- Can be controlled by configuration properties.
+<strong>- Can be mapped to member fields and automatically updated by the component instance at run time by just changing the member field value.
+</strong> <em>Service life cycle participation</em> - The component instance can participate in the service life cycle by declaring a boolean member field that indicates when the service is actually valid (normally a service is assumed to be valid if the component instance's dependencies are satisfied).</li>
+<li><em>Rich service dependency model</em> - Automatically manages a full spectrum of service dependencies.
+<strong> <em>Optional/mandatory</em> service dependencies.</strong> <em>Singular/aggregate</em> service dependencies.
+<strong> <em>Default service implementations</em> - The component can provide default implementations of dependent services if no providers are available.</strong> <em>Member field or method injection</em> - Also supported in combination.
+<strong>- Member field injection does not require cluttering component code with bind/unbind methods.
+</strong>- Member method injection supports various method signatures
+<strong>-- method() - Acts as a simple event-callback mechanism.
+</strong>-- method(<service-interface> svc) - Receives the service object cast to the appropriate interface.
+<strong>-- method(ServiceReference ref) - Receives the OSGi ServiceReference for the service object.
+</strong>-- method(ServiceReference ref, <service-interface> svc) - Receives the OSGi ServiceReference and the service object cast to the appropriate interface.
+<strong> <em>Binding policies</em> - Allow components to control how/when their dependencies are bound.</strong>- <em>Static</em> - Static dependencies <em>cannot</em> change without invalidating the component instance, so injected services typically do not change at run time and service departures typically result in the component instance being destroyed and potentially recreated.
+<strong>- <em>Dynamic</em> - Dynamic dependencies <em>can</em> change without invalidating the component instance, so injected services can change at run time, but <em>do not</em> change with respect to service priority changes (i.e., they do not automatically switch if a higher priority service appears).</strong>- <em>Dynamic priority</em> - Dynamic priority dependencies <em>can</em> change without invalidating the component instance and <em>do</em> dynamically update based on service priority rankings at run time.</li>
+<li><em>Configuration property management</em> - Integrated with OSGi Configuration Admin service.
+<strong> <em>Member field/member method injection</em> - Also supported in combination.</strong> <em>Service property propagation</em> - Configuration properties can be configured to update service properties if the component instance is providing a service.</li>
+<li><em>Sophisticated concurrency handling</em> - Externalizes concurrency issues so that component code does not need to worry about services changing while they are in use (i.e., no locking protocol in component code).</li>
+<li><em>Deferred instance creation</em> - POJO instances are not created until they are actually needed, thus reducing start-up overhead.</li>
+<li><em>Introspection support</em> - Supports introspecting a component instance and the state of its dependencies.
+** Interactive introspection is supported by an arch command for Felix' shell.</li>
+<li><em>Extensible</em> - All iPOJO features are implemented via a set of <code>handlers</code>, which is an extensibility mechanism open to developers by which they can support custom functionality (e.g., exporting a provided service remotely, etc.).</li>
+</ul>
+<h2 id="advancedexperimental-features">Advanced/Experimental Features</h2>
+<ul>
+<li><em>Composite model</em> - iPOJO supports a flexible architectural-like model for composing services.
+<strong> <em>Flexible composites</em> - A composite is an abstract component implementation.</strong>- <em>Sub-services and sub-components</em> - Unlike traditional component composition, an iPOJO composite can be described in terms of services in addition to sub-components; thus sub-service implementation selection is deferred until run time.
+<strong>- <em>Optional/mandatory</em> sub-services and/or sub-components.</strong>- <em>Singular/aggregate</em> sub-services and/or sub-components.
+<strong> <em>Hierarchical</em> - A composite component may contain other composite components.</strong>- <em>Composite scoping</em> - A composite acts as a scoping mechanism where sub-services/sub-components are not visible externally and external services are not visible internally.
+<strong> <em>Service dependencies</em> - A composite has the full expressive capabilities of primitive components when it comes to service dependencies (see above description of service dependencies in core features).</strong>- For a composite, a service dependency effectively imports an external service into the composite scope from its parent composite (which may be the OSGi service registry in the root case).
+<em><em> </em>Composite is just a component</em> - Composites can be instantiated and automatically managed just like a primitive component.</li>
+</ul>
+ </div>
+
+ <img src="http://felix.apache.org/ipojo/site/footer.png" class="footer">
-{include:apache-felix-ipojo-footer}
<div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
- Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+ Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project
@@ -136,5 +260,18 @@
may be trademarks or registered trademarks of their respective owners.
</div>
</div>
+ </div>
+
+ <script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script type="text/javascript">
+ try{
+ var pageTracker = _gat._getTracker("UA-1518442-4");
+ pageTracker._trackPageview();
+ } catch(err) {}
+ </script>
+
</body>
</html>
Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted.html Sun Feb 3 06:45:21 2013
@@ -20,9 +20,45 @@
<head>
<title>Apache Felix - apache-felix-ipojo-gettingstarted</title>
<link rel="icon" href="/res/favicon.ico">
- <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
- <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/site/media.data/site.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/superfish.css" type="text/css" media="all">
+ <link rel="stylesheet" href="/ipojo/site/style.css" type="text/css" media="all">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+
+ <!--
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js"></script>
+ <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJava.js"></script>
+ -->
+
+ <script type="text/javascript" src="/ipojo/site/jquery-1.js"></script>
+ <script type="text/javascript" src="/ipojo/site/hoverIntent.js"></script>
+ <script type="text/javascript" src="/ipojo/site/superfish.js"></script>
+ <script type="text/javascript" src="/ipojo/site/supersubs.js"></script>
+
+ <script type="text/javascript">
+
+ $(document).ready(function(){
+ $("ul.sf-menu").supersubs({
+ minWidth: 14, // minimum width of sub-menus in em units
+ maxWidth: 30, // maximum width of sub-menus in em units
+ extraWidth: 1 // extra width can ensure lines don't sometimes turn over
+ // due to slight rounding differences and font-family
+ }).superfish(); // call supersubs first, then superfish, so that subs are
+ // not display:none when measuring. Call before initialising
+ // containing tabs for same reason.
+ });
+
+ </script>
+
</head>
<body>
<div class="title">
@@ -37,59 +73,158 @@
</a>
</div>
</div>
+
+ <div class="main">
+ <div class="main">
+ <div class="page-header">
+ <img src="/ipojo/site/header.png" class="header">
+ <a href="http://ipojo.org"><img src="/ipojo/site/ipojo.png" width="225" class="header-logo"></a>
+ <ul class="sf-menu sf-js-enabled sf-shadow" id="ipojo-menu">
+ <li class="current">
+ <!-- Menu Overview -->
+ <a href="#" class="sf-with-ul">Overview<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li>
+ <a href="">Home</a>
+ </li>
+ <li>
+ <a href="">Why choose iPOJO</a>
+ </li>
+ <li>
+ <a href="">Success stories</a>
+ </li>
+ <li>
+ <a href="">Features</a>
+ </li>
+ </ul>
+ </li>
- <div class="menu">
- <p><a href="/news.html">news</a> <br />
-<a href="/license.html">license</a> <br />
-<a href="/downloads.cgi">downloads</a> <br />
-<a href="/documentation.html">documentation</a> <br />
-<a href="/mailinglists.html">mailing lists</a> <br />
-<a href="/documentation/community/contributing.html">contributing</a> <br />
-<a href="/sitemap.html">site map</a> <br />
-<a href="http://www.apache.org/">asf</a> <br />
-<a href="http://www.apache.org/security/">security</a> <br />
-<a href="http://www.apache.org/foundation/sponsorship.html">sponsorship</a> <br />
-<a href="http://www.apache.org/foundation/thanks.html">sponsors</a> <br />
-</p>
-<iframe
- src="http://www.apache.org/ads/button.html"
- style="border-width:0; float: left"
- frameborder="0"
- scrolling="no"
- width="135"
- height="135">
-</iframe>
- </div>
+ <li class="">
+ <!-- Menu download -->
+ <li>
+ <a href="/downloads.cgi">Download </a>
+ </li>
- <div class="main">
- <div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a href="/documentation.html">Documentation</a> » <a href="/documentation/subprojects.html">Apache Felix Subproject Documentation</a> » <a href="/documentation/subprojects/apache-felix-ipojo.html">Apache Felix iPOJO</a>
- </div>
-
+ <li class="">
+ <!-- Menu Documentation -->
+ <a href="#" class="sf-with-ul">Documentation<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <!-- sub-menu : getting started -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Getting Started<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-in-10-minutes.html">iPOJO in 10 minutes</a></li>
+ <li><a href="">Using Annotations</a></li>
+ <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-hello-word-maven-based-tutorial.html">Maven tutorial</a></li>
+ <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-advanced-tutorial.html">Advanced tutorial</a></li>
+ <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/apache-felix-ipojo-dosgi.html">Using Distributed OSGi</a></li>
+ <li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-composition-tutorial.html">Application Composition</a></li>
+ </ul>
+ </li> <!-- end of getting started -->
+ <!-- sub menu : Describing Components -->
+ <li class="">
+ <a href="" class="sf-with-ul">Describing components<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Requiring a service</a></li>
+ <li><a href="">Providing a service</a></li>
+ <li><a href="">Lifecycle management</a></li>
+ <li><a href="">Configuration</a></li>
+ <li><a href="">Introspection</a></li>
+ <li><a href="">Impacting the lifecycle</a></li>
+ <li><a href="">Asynchronous communication</a></li>
+ <li><a href="">JMX management</a></li>
+ <li><a href="">Extender pattern</a></li>
+ <li><a href="">Whiteboard pattern</a></li>
+ <li><a href="">Temporal dependencies</a></li>
+ </ul>
+ </li> <!-- End of describing components -->
+ <!-- sub-menu : User Guide -->
+ <li class="">
+ <a href="" class="sf-with-ul">User Guide<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">iPOJO and config admin</a></li>
+ <li><a href="">Factories and Instances</a></li>
+ <li><a href="">XML Schemas</a></li>
+ <li><a href="">API</a></li>
+ <li><a href="">Testing components</a></li>
+ <li><a href="">Eclipse Integration</a></li>
+ <li><a href="">FAQ</a></li>
+ <li><a href="">Reference Card</a></li>
+ </ul>
+ </li> <!-- end of user guide -->
+ <!-- sub-menu : Dev Guide -->
+ <li>
+ <a href="#" class="sf-with-ul">Advanced Topics<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="http://felix.apache.org/ipojo/api/1.6.0">Javadoc</a></li>
+ <li><a href="">Handler development</a></li>
+ <li><a href="">Manipulation Metadata </a></li>
+ <li><a href="">Dive into the iPOJO Manipulation depths</a></li>
+ </ul>
+ </li> <!-- End of Dev guide -->
+ </ul>
+ </li> <!-- End of doc -->
+ <!-- Menu 4 : Tools -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Tools<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Ant Task</a></li>
+ <li><a href="">Eclipse Plugin</a></li>
+ <li><a href="">Maven Plugin</a></li>
+ <li><a href="">`arch` shell command</a></li>
+ <li><a href="">Online Manipulator</a></li>
+ <li><a href="">Webconsole plugin</a></li>
+ <li><a href="">Junit4OSGi</a></li>
+ </ul>
+ </li><!-- End of tools -->
+ <!-- Menu 5 : Support -->
+ <li>
+ <a href="">Support </a>
+ </li>
+ <!-- End of the menu 5 -->
+ <!-- Menu 6 : Misc -->
+ <li class="">
+ <a href="#" class="sf-with-ul">Misc<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
+ <ul>
+ <li><a href="">Supported JVMs</a></li>
+ <li><a href="">Supported OSGi Implementations</a></li>
+ <li><a href="http://ipojo-dark-side.blogspot.com">iPOJO's Dark Side Blog</a></li>
+ <li><a href="">Article & Presentations</a></li>
+ <li><a href="http://www.apache.org/">ASF</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Sponsors</a></li>
+ </ul>
+ </li><!-- End of misc -->
+ </ul> <!-- End of the menu -->
+ </div> <!-- Page header -->
+
+ <!--
<div class="tip">
This page is a translated version of <a href="/site/apache-felix-ipojo-gettingstarted.html" target="felix_cwiki">/site/apache-felix-ipojo-gettingstarted.html</a>. In case of
doubt you might want to refer to the old page.
</div>
+ -->
<h1>apache-felix-ipojo-gettingstarted</h1>
- <p>{include:apache-felix-ipojo-header}</p>
-<div class="content">
-
-# Getting Started
-
-This page lists the tutorials for a "good" start with iPOJO framework.
-
-* [apache-felix-ipojo-dosgi](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/apache-felix-ipojo-dosgi.html)
-* [iPOJO Advanced Tutorial](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-advanced-tutorial.html)
-* [iPOJO Composition Tutorial](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-composition-tutorial.html)
-* [iPOJO Hello Word (Maven-Based) tutorial](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-hello-word-maven-based-tutorial.html)
-* [iPOJO in 10 minutes](/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-in-10-minutes.html)
+
+ <div class="content">
+ <h1 id="getting-started">Getting Started</h1>
+<p>This page lists the tutorials for a "good" start with iPOJO framework.</p>
+<ul>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/apache-felix-ipojo-dosgi.html">apache-felix-ipojo-dosgi</a></li>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-advanced-tutorial.html">iPOJO Advanced Tutorial</a></li>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-composition-tutorial.html">iPOJO Composition Tutorial</a></li>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-hello-word-maven-based-tutorial.html">iPOJO Hello Word (Maven-Based) tutorial</a></li>
+<li><a href="/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/ipojo-in-10-minutes.html">iPOJO in 10 minutes</a></li>
+</ul>
+ </div>
+
+ <img src="http://felix.apache.org/ipojo/site/footer.png" class="footer">
-{include:apache-felix-ipojo-footer}
<div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
- Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+ Rev. 1441864 by fmeschbe on Sun, 3 Feb 2013 06:44:40 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project
@@ -97,5 +232,18 @@ This page lists the tutorials for a "goo
may be trademarks or registered trademarks of their respective owners.
</div>
</div>
+ </div>
+
+ <script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script type="text/javascript">
+ try{
+ var pageTracker = _gat._getTracker("UA-1518442-4");
+ pageTracker._trackPageview();
+ } catch(err) {}
+ </script>
+
</body>
</html>