Apache

Table of Content:

1. Core Improvement

These improvements concern the iPOJO core runtime manipulation; build process, core model ...).

1.1 New Manipulation process [Done Felix-311]

A new manipulator will be implement to allow field & method interception. Moreover, interception performance is considered.

1.1.1 Manipulation Explanation

1.1.2 Method Entry detection [Done Felix-311]

1.1.3 Method Exit Detection [Done Felix-311]

1.1.4 Method Exception Interception [Done Felix-311]

1.1.5 Flags to avoid useless delegation [Done Felix-311]

1.2 Build Process

The iPOJO build process is becoming old and use Maven. A new architecture for the build process must be proposed where the manipulator is independent of the used technology (Maven, Eclipse, Ant, Command ...).

1.2.1 Manipulator Externalization [Done Felix-311]

1.2.2 BND Based Maven plug-in [Done Felix-311]

1.2.3 Eclipse Plug-in [Done - http://cwiki.apache.org/confluence/display/FELIX/iPOJO+Eclipse+Plug-in]

1.2.4 Command Line

1.3 Model Cleaning [Done Felix-311]

Some part of the model should be renamed or refactored. configure method should be able to throw exception to notify parsing error or any other problem.

1.3.1 Renaming component in type

1.3.2 Attach logger to instances instead of factories

Loggers are today attached to factory to avoid the creation of a lot of objects. However, it could be difficult to analyze the log if several instances have been created. So be attaching a logger to instance instead of factories could be simpler.

1.4 Core Improvement

Based on the new manipulation process, the core can be improved.

1.4.1 Handler improvement for method interception [Done Felix-311]

1.4.2 Parsing Utility Functions [Done Felix-291]


2. Service Management

One of the main iPOJO goals is to manage services interactions. Several improvements can be done.

2.1 Manage synchronization

By using method interception, it could be possible to avoid synchronized block inside the code.

2.2 Temporal Dependency Handler

2.3 Proxy Injection


3. Non-functional concerns improvement

These improvements concern the support of other non- functional properties.

3.1 Management

Propose a way to control iPOJO instances remotely.

3.1.1 JMX Bean Handler [Done - http://cwiki.apache.org/confluence/display/FELIX/JMX+Handler]

3.1.2 JMX Bean to create / list / kill instances [In Progress]

3.1.3 Architecture Representation [in progress]

3.2 Deployment

Propose a way to deploy iPOJO component easily based on OBR facility.

3.2.1 Ease iPOJO application deployment with OBR

3.3 Persistence

Provide a persistence layer to allow instances to be persistent.

3.3.1 Persistence Service Design and Implementation [In Progress]

3.3.2 Persistency Handler for 'primitive' components [In Progress]

3.3.3 Persistency Handler for 'composite'

3.4 Data Object Support

Provide a sort of JDO mechanism.

3.4.1 Data Object Mapping

3.4.2 Data Object Handler

3.5 Event Admin Management

Provide handlers to easy Event-Base interaction between instances.

3.5.1 Event Reception Handler [Done]

3.5.2 Event Sender Handler

3.6 Service Component Architecture Bridges

Propose handlers allowing the integration of SCA wires.

3.6.1 SCA Reference Handler

3.6.2 SCA Service Providing

3.7 Misc handlers

3.7.1 Lifecycle controller

3.7.2 ThreadContextClassLoader


4. Composition Level

Improvement about iPOJO composition mechanism.

4.1 Service Specification Improvement

These improvements aim to extend service specification with other metadata.

4.1.1 Syntax

4.1.2 Service Level Dependency Management [Done Felix-311]

4.1.3 Version Management

4.1.4 State Management

4.2 Local Service

These improvements aim to integrate new service inside composite.

4.2.1 Local Event Admin

4.2.2 Persistence Service inside composite

4.2.3 Local Log Service


5. API Support

Provide an API to use iPOJO programmatically.

5.1 Basic API [In Progress]

5.2 Dependency Manager API [In Progress]