Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Include Page
apache-felix-ipojo-header
apache-felix-ipojo-header

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
java
java
1Providing a servicejava
@Component
@Provides
public class MyServiceImplementation implements MyService {
 	//....
}


Code Block
java
java
1Requiring a servicejava
@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
classshell
Wiki Markup
{div:class=shell}

Guice-Peaberry:

276.00

ns/call

{color:#ff0000}iPOJO Service Dependency:


iPOJO Service Dependency: 118.00

ns/call

{color}


Spring-DM:

2384.00

ns/call

{color:#ff0000}iPOJO Temporal Dependency:


iPOJO Temporal Dependency: 159.00

ns/call

{color} {color:#ff0000}iPOJO Temporal Dependency


iPOJO Temporal Dependency w/

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

...