Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Include Page
apache-felix-ipojo-header
apache-felix-ipojo-header

...

Wiki Markup
{html}
<div class="content">
{html}

...

Apache

...

Felix

...

iPOJO

...

Online

...

Manipulator

...

iPOJO

...

generally

...

requires

...

an

...

additional

...

packaging

...

step

...

to

...

prepare

...

the

...

bundle

...

to

...

be

...

managed

...

by

...

iPOJO.

...

Despite

...

this

...

step

...

doesn't

...

change

...

the

...

class

...

semantic,

...

it

...

can

...

be

...

a

...

little

...

annoying.

...

The

...

online

...

manipulator

...

avoids

...

this

...

offline

...

step!

Wiki Markup
_

{div:class=toc}
{toc:maxLevel=4|minLevel=2}
{div}

h2.Features

iPOJO is based on a bytecode [manipulation|Dive into the iPOJO Manipulation depths]. This manipulate is {{safe}} and does not change the class semantics. Classes can still used after the manipulation without iPOJO. However this manipulation is required for iPOJO management. Generally, this manipulation occurs offline during the packaging time. The online manipulator allows to do this manipulation at install time.

The online manipulator:
* avoids offline manipulation
* supports annotations
* supports XSD schema

Features

iPOJO is based on a bytecode manipulation. This manipulate is safe and does not change the class semantics. Classes can still used after the manipulation without iPOJO. However this manipulation is required for iPOJO management. Generally, this manipulation occurs offline during the packaging time. The online manipulator allows to do this manipulation at install time.

The online manipulator:

  • avoids offline manipulation
  • supports annotations
  • supports XSD schema
    Wiki Markup
    {center}
    !manipulation.png|width=640|height=300!
    {center}

...

  • This

...

  • is

...

  • quite

...

  • useful

...

  • if

...

  • you

...

  • don't

...

  • want

...

  • to

...

  • add

...

  • an

...

  • extra

...

  • packaging

...

  • step,

...

  • and

...

  • provides

...

  • the

...

  • same

...

  • capabilities

...

  • as

...

  • the

...

  • "regular"

...

  • way.

...

Usage

The online-manipulator

...

is

...

in

...

fact

...

an

...

URL

...

Handler.

...

So,

...

it

...

will

...

process

...

every

...

bundle

...

using

...

a

...

special

...

URL

...

prefix.

...

To

...

use

...

it,

...

just

...

follows

...

the

...

below

...

instructions:

...

  • Install

...

  • and

...

  • Start

...

  • the

...

  • URL

...

  • Handler

...

  • *

...


  • This

...

  • is

...

  • a

...

  • requirement.

...

  • You

...

  • must

...

  • install

...

  • and

...

  • start

...

  • the

...

  • URL

...

  • handler

...

  • as

...

  • well

...

  • as

...

  • iPOJO

...

  • (core).

...

  • The

...

  • URL

...

  • Handler

...

  • is

...

  • build

...

  • by

...

  • the

...

  • online-manipulator

...

  • iPOJO

...

  • sub-project.

...


  • On

...

  • Felix

...

  • you

...

  • can

...

  • either

...

  • use

...

  • the

...

  • start

...

  • command

...

  • from

...

  • the

...

  • shell

...

  • of

...

  • OBR:

...

Shell

...

Command

...

...

...

obr

...

start

...

"Apache

...

Felix

...

iPOJO

...

URL

...

Handler"

...

  • Install

...

  • a

...

  • bundle

...

  • using

...

  • the

...

  • ipojo:

...

  • URL

...

  • prefix

...


  • Using

...

  • the

...

  • handler

...

  • is

...

  • quite

...

  • easy.

...

  • When

...

  • you

...

  • want

...

  • to

...

  • deploy

...

  • a

...

  • non-manipulated

...

  • iPOJO

...

  • bundle

...

  • just

...

  • use

...

  • an

...

  • url

...

  • like

...

  • Code Block

...

  • 
    install ipojo:file:/.../bundle.jar
    

...

The

...

complete

...

URL

...

syntax

...

is

{
Code Block
}
install ipojo:bundle_url[!metadata_url]
{code}

When

...

using

...

the

...

ipojo:

...

prefix,

...

the

...

OSGi

...

platform

...

delegates

...

the

...

loading

...

to

...

the

...

url

...

handler

...

manipulating

...

the

...

bundle

...

before

...

its

...

installation.

...

This

...

manipulation

...

is

...

exactly

...

the

...

same

...

as

...

the

...

offline

...

manipulation.

Dealing with metadata

If the installed bundle contains a metadata.xml file either in its root or in the META-INF directory, the online manipulator will use it. However, you can also provide an external metadata.xml file by indicating the url of the file like in

Code Block



h2. Dealing with metadata
If the installed bundle contains a {{metadata.xml}} file either in its root or in the {{META-INF}} directory, the online manipulator will use it. However, you can also provide an external {{metadata.xml}} file by indicating the url of the file like in
{code}
install ipojo:bundle_url!metadata_url
{code}

If

...

you

...

provide

...

such

...

url,

...

it

...

will

...

override

...

the

...

contained

...

metadata.xml

...

file.

...



Include Page
apache-felix-ipojo-footer
apache-felix-ipojo-footer

...