Include Page | ||||
---|---|---|---|---|
|
HTML |
---|
Wiki Markup |
{html} <div class="content"> {html} |
Why choose iPOJO?
The OSGi Service Platform provides an excellent foundation for building dynamically extensible Java-based applications. However, such power and flexibility does not come without cost. In addition to new APIs and packaging formats, OSGi developers must shift their thinking to be able to design highly dynamic applications. Early efforts, such as the Service Binder and Service Tracker, attempted to alleviate some of these issues, as well as more recent efforts, such as Declarative Services and Spring Dynamic Modules. iPOJO is another such effort in this area. It is a service-oriented component model created specifically for the OSGi Service Platform.
...
Trying to create an OSGi-based application with services is challenging. The OSGi API is complex and a lot of knowledge about internal mechanisms has to be known to avoid synchronization issues. iPOJO provides a very simple development model; let's look:
Code Block | |||||||
---|---|---|---|---|---|---|---|
| |||||||
@Component @Provides public class MyServiceImplementation implements MyService { //.... } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
@Component public class MyServiceConsumer { @Requires private MyService myservice; // Just use your required service as any regular field ! } |
...
The run-time overhead of iPOJO is also small. On the Peaberry benchmark, iPOJO has very good performance:
Div | ||
---|---|---|
| ||
Wiki Markup | ||
{div:class=shell}
Guice-Peaberry: 276.00 ns/call {color:#ff0000}iPOJO Service Dependency:
ns/call {color}
2384.00 ns/call {color:#ff0000}iPOJO Temporal Dependency:
ns/call {color} {color:#ff0000}iPOJO Temporal Dependency
proxy: 173.00 ns/call {color} {div} |
For French readers, you can find additional benchmarks in chapter 10 of iPOJO - A flexible service-oriented component model for dynamic systems
...