blob: edb53a3afeab91988ec4a7f7aad008b474cebcc4 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0) on Wed Dec 24 15:58:27 CET 2014 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Component (Apache Felix iPOJO ~ JavaDoc 1.12.1 API)</title>
<meta name="date" content="2014-12-24">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Component (Apache Felix iPOJO ~ JavaDoc 1.12.1 API)";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Component.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/ipojo/annotations/BindingPolicy.html" title="enum in org.apache.felix.ipojo.annotations"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/ipojo/annotations/Context.html" title="annotation in org.apache.felix.ipojo.annotations"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/ipojo/annotations/Component.html" target="_top">Frames</a></li>
<li><a href="Component.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.felix.ipojo.annotations</div>
<h2 title="Annotation Type Component" class="title">Annotation Type Component</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation">ANNOTATION_TYPE</a>})
public @interface <a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.54">Component</a></pre>
<div class="block">Declares a component type (needed to create instances of the component).
This annotation is mandatory to declares an iPOJO component.
Its usual to find it on top of class definition:
<pre>
<code> @Component</code>
public class MyComponent {
// ...
}
</pre>
But, it is also possible to have it associated to a
<a href="../../../../../org/apache/felix/ipojo/annotations/Stereotype.html" title="annotation in org.apache.felix.ipojo.annotations">stereotyped</a> annotation definition:
<pre>
<code> @Component</code>
<a href="../../../../../org/apache/felix/ipojo/annotations/Instantiate.html" title="annotation in org.apache.felix.ipojo.annotations">@Instantiate</a>
<a href="../../../../../org/apache/felix/ipojo/annotations/Stereotype.html" title="annotation in org.apache.felix.ipojo.annotations">@Stereotype</a>
public @interface AutoInstantiatedComponent {
// ...
}
</pre>
<h2>See also</h2>
<ul>
<li><a href="http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/how-to-use-ipojo-factories.html">Use iPOJO Factories</a></li>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd><a href="mailto:dev@felix.apache.org">Felix Project Team</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.optional.element.summary">
<!-- -->
</a>
<h3>Optional Element Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Optional Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#architecture--">architecture</a></span></code>
<div class="block">Enable / Disable the architecture exposition (no <code>Architecture</code>
service will be exposed for component's instances).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#factory_method--">factory_method</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">now is called <tt>factoryMethod</tt>.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#factoryMethod--">factoryMethod</a></span></code>
<div class="block">Set the factory-method, if the pojo has to be created
from a static method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#immediate--">immediate</a></span></code>
<div class="block">Set if the component is immediate.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#managedservice--">managedservice</a></span></code>
<div class="block">Set the Managed Service PID for Configuration Admin.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#name--">name</a></span></code>
<div class="block">Set the component type name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#propagation--">propagation</a></span></code>
<div class="block">Enable or disable the configuration propagation to service properties.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#public_factory--">public_factory</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">renamed to publicFactory.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#publicFactory--">publicFactory</a></span></code>
<div class="block">Set if the component type is public or private (defaults to public).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#version--">version</a></span></code>
<div class="block">Set the version of the component type.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.element.detail">
<!-- -->
</a>
<h3>Element Detail</h3>
<a name="public_factory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>public_factory</h4>
<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.61">public_factory</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">renamed to publicFactory.</span></div>
<div class="block">Set if the component type is public.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#publicFactory--"><code>publicFactory()</code></a></dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>true</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="publicFactory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publicFactory</h4>
<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.75">publicFactory</a></pre>
<div class="block">Set if the component type is public or private (defaults to public).
A private factory does not expose a <code>Factory</code> service.
Only instances declared in the same bundle are created.
<pre>
<code> @Component(publicFactory = false)</code>
public class MyComponent {
// ...
}
</pre>
Default: true</div>
<dl>
<dt>Default:</dt>
<dd>true</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="name--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.87">name</a></pre>
<div class="block">Set the component type name.
<pre>
<code> @Component(name = "my-component")</code>
public class MyComponent {
// ...
}
</pre>
Default : implementation class name.</div>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="architecture--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>architecture</h4>
<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.100">architecture</a></pre>
<div class="block">Enable / Disable the architecture exposition (no <code>Architecture</code>
service will be exposed for component's instances).
<pre>
<code> @Component(architecture = false)</code>
public class MyComponent {
// ...
}
</pre>
Default : true</div>
<dl>
<dt>Default:</dt>
<dd>true</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="immediate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>immediate</h4>
<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.115">immediate</a></pre>
<div class="block">Set if the component is immediate.
By default, iPOJO tries to be as lazy as possible and will create the POJO instance at the last possible time.
Notice this setting is only effective when the component provides a service (<a href="../../../../../org/apache/felix/ipojo/annotations/Provides.html" title="annotation in org.apache.felix.ipojo.annotations">@Provides</a>).
<pre>
<code> @Component(immediate = true)</code>
<a href="../../../../../org/apache/felix/ipojo/annotations/Provides.html" title="annotation in org.apache.felix.ipojo.annotations">@Provides</a>
public class MyComponent implements MyService {
// ...
}
</pre>
Default : false</div>
<dl>
<dt>Default:</dt>
<dd>false</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="propagation--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>propagation</h4>
<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.127">propagation</a></pre>
<div class="block">Enable or disable the configuration propagation to service properties.
<pre>
<code> @Component(propagation = false)</code>
public class MyComponent {
// ...
}
</pre>
default: true</div>
<dl>
<dt>Default:</dt>
<dd>true</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="managedservice--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>managedservice</h4>
<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.139">managedservice</a></pre>
<div class="block">Set the Managed Service PID for Configuration Admin.
default no PID (i.e. the managed service will not be exposed).
<pre>
<code> @Component(managedservice = "my.Pid")</code>
public class MyComponent {
// ...
}
</pre></div>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="factory_method--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factory_method</h4>
<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.149">factory_method</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">now is called <tt>factoryMethod</tt>.</span></div>
<div class="block">Set the factory-method, if the pojo has to be created
from a static method. The specified method must be a static
method and return a pojo object.
By default, iPOJO uses the 'regular' constructor.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/ipojo/annotations/Component.html#factoryMethod--"><code>factoryMethod()</code></a></dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="factoryMethod--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>factoryMethod</h4>
<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.166">factoryMethod</a></pre>
<div class="block">Set the factory-method, if the pojo has to be created
from a static method. The specified method must be a static
method and return a pojo object.
By default, iPOJO uses the 'regular' constructor.
<pre>
<code> @Component(factoryMethod = "createInstance")</code>
public class MyComponent {
// ...
public static MyComponent createInstance() {
return new MyComponent("some static configuration");
}
}
</pre></div>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="version--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>version</h4>
<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/annotations/Component.html#line.177">version</a></pre>
<div class="block">Set the version of the component type.
<pre>
<code> @Component(version = "1.3")</code>
public class MyComponent {
// ...
}
</pre></div>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Component.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/ipojo/annotations/BindingPolicy.html" title="enum in org.apache.felix.ipojo.annotations"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/ipojo/annotations/Context.html" title="annotation in org.apache.felix.ipojo.annotations"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/ipojo/annotations/Component.html" target="_top">Frames</a></li>
<li><a href="Component.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2014. All rights reserved.</small></p>
</body>
</html>