Introspection and Architecture
The architecture feature allows obtaining an architectural / component view of your systems. It exposes a snapshot of the present instances & factories, the state of these instances ...
Moreover; iPOJO defines an 'arch' command displaying this architecture in Felix. You need to install the arch command bundle available in the Felix trunk.
Reflection on the component
The architecture feature does "reflection" on the iPOJO containers. It gathers information about the component (state, class name ...), requirement (state, multiple, optional ...), provided services (state, properties) ... Each handler can participate to the architecture. This information allows you to know why an instance does not start, or why the component does not publish / provide a service.
Metadata
The architecture (i.e. instance introspection) is activated by default. To disable it, you need to add an attribute "architecture=false" to the component element:
<Component className="fr.imag.adele.escoffier.hello.impl.HelloServiceImpl" architecture="false">
By default, the architecture feature is enabled.
The "arch" command
A Felix command comes with the architecture handler. This command looks for all component exposing the architecture and print the information.
arch => displays instances name & state (equivalent to arch \-instances) arch -instance $instance_name => displays complete information about the instance $instance_name arch -factories => display the list of available factories arch -factory $factory_name => display complete information about the factory $factory_name
Technical information
In fact, when a component enables the architecture introspection, its container exposes an Architecture service. Any architecture requester can obtain information about the instance. For example, the arch command requests all the architecture services and prints the information.
Overview
Getting Started
- iPOJO in 10 minutes
- How to use iPOJO Annotations
- iPOJO Hello Word (Maven-Based) tutorial
- iPOJO Advanced Tutorial
- iPOJO Composition Tutorial
User Guide
- Describing components (handler list)
- Using XML Schemas
- Describing components with the iPOJO-API
- Testing components
- Advanced Topics
- Eclipse Integration
- FAQ
- iPOJO Reference Card
Tools
- iPOJO Eclipse Plug-in
- iPOJO Ant Task
- iPOJO Maven Plug-in
- Online-Manipulator
- iPOJO Arch Command
- iPOJO Webconsole plugin
- Junit4OSGi
Developer Guide
- Javadoc: 1.2
- How to write your own handler
- How to use iPOJO Manipulation Metadata
- Dive into the iPOJO Manipulation depths
Misc & Contact
- Issues Tracker
- Supported JVMs
- Supported OSGi Implementations
- iPOJO's Dark Side Blog
- Future Ideas
- Article & Presentations
Experimentation