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}

...

iPOJO

...

Ant

...

Task

...

iPOJO

...

Ant

...

Task

...

allows

...

automating

...

the

...

iPOJO

...

manipulation

...

process

...

within

...

an

...

Ant

...

build

...

process.

...

This

...

page

...

explains

...

how

...

to

...

use

...

the

...

iPOJO

...

Ant

...

Task

...

and

...

how

...

to

...

combine

...

them

...

with

...

the

...

BND

...

Tasks.

Wiki Markup
_

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

h2. 

Downloading

...

the

...

iPOJO

...

Ant

...

Task

...

The

...

iPOJO

...

Ant

...

Task

...

can

...

ben

...

downloaded

...

from

...

here

...

.

How to use the Ant Task

The iPOJO Ant task take an input bundle and a metadata file and create the final (i.e.

...

manipulated)

...

bundle.

...


To

...

use

...

the

...

task

...

declare

...

a

...

target

...

in

...

your

...

build.xml

...

as:

Wiki Markup

{div:class=pom}
<target name="main">
&nbsp;&nbsp;&nbsp;&nbsp;{color:red}<!-- Change the path to point on the iPOJO Ant task jar-->{color}
&nbsp;&nbsp;&nbsp;&nbsp;<taskdef name="ipojo"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classname="org.apache.felix.ipojo.task.IPojoTask"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}classpath="org.apache.felix.ipojo.ant-1.6.0.jar"{color}/>

&nbsp;&nbsp;&nbsp;&nbsp;<ipojo
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input="foo.jar"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata = "meta.xml"
&nbsp;&nbsp;&nbsp;&nbsp;/>
</target>
{div}

First,

...

define

...

the

...

new

...

task.

...

Then

...

simply

...

use

...

it.

...

The

...

input

...

argument

...

describe

...

the

...

input

...

bundle

...

(must

...

exists)

...

and

...

the

...

metadata

...

argument

...

describes

...

the

...

metadata

...

file

...

(must

...

exist

...

too).

...

The

...

input

...

bundle

...

must

...

be

...

a

...

well-formed

...

bundle.

...

Ant

...

Task

...

Arguments

...

The

...

iPOJO

...

Ant

...

Task

...

as

...

three

...

different

...

arguments:

...

  • Input:

...

  • describes

...

  • the

...

  • input

...

  • bundle.

...

  • This

...

  • argument

...

  • is

...

  • mandatory.

...

  • Output:

...

  • describes

...

  • the

...

  • output

...

  • bundle.

...

  • This

...

  • argument

...

  • is

...

  • optional.

...

  • If

...

  • not

...

  • present,

...

  • the

...

  • output

...

  • file

...

  • will

...

  • be

...

  • input

...

  • file.

...

  • Metadata:

...

  • describes

...

  • the

...

  • metadata

...

  • file.

...

  • This

...

  • argument

...

  • is

...

  • optional.

...

  • By

...

  • default,

...

  • it

...

  • tries

...

  • with

...

  • a

...

  • metadata.xml

...

  • file

...

  • (in

...

  • the

...

  • same

...

  • directory

...

  • as

...

  • the

...

  • build.xml

...

  • file).

...

  • If

...

  • the

...

  • default

...

  • file

...

  • is

...

  • not

...

  • present,

...

  • it

...

  • tries

...

  • to

...

  • use

...

  • only

...

  • iPOJO

...

  • annotations.

...

  • IgnoreAnnotations:

...

  • if

...

  • set

...

  • to

...

  • true

...

  • ,

...

  • the

...

  • manipulator

...

  • skips

...

  • annotations

...

  • processing

...

  • (can

...

  • reduce

...

  • significantly

...

  • the

...

  • processing

...

  • time

...

  • on

...

  • huge

...

  • bundle).

...

  • IgnoreEmbeddedSchemas:

...

  • if

...

  • set

...

  • to

...

  • true

...

  • ,

...

  • the

...

  • manipulator

...

  • doesn't

...

  • use

...

  • embedded

...

  • XML-Schemas

...

Combining

...

the

...

iPOJO

...

Ant

...

Task

...

and

...

BND

...

The

...

iPOJO

...

Ant

...

Task

...

requires

...

an

...

input

...

bundle.

...

BND

...

is

...

a

...

tools

...

simplifying

...

bundle

...

creation.

...

So,

...

it

...

is

...

possible

...

to

...

combine

...

the

...

two

...

tools

...

to

...

create

...

your

...

bundle

...

automatically.

...

The

...

following

...

build.xml

...

shows

...

you

...

an

...

example

...

of

...

combination.

Wiki Markup

{div:class=pom}
<project default="main" basedir=".">
&nbsp;&nbsp;&nbsp;&nbsp;<target name="bnd">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}<!-- Change to use the latest BND version --{color}{color:red}>{color}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<taskdef resource="aQute/bnd/ant/taskdef.properties"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}classpath="bnd-0.0.178.jar"{color}/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<bnd
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classpath="src"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eclipse="true"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failok="false"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exceptions="true"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}files="foo.bnd"{color}/>
&nbsp;&nbsp;&nbsp;&nbsp;</target>

&nbsp;&nbsp;&nbsp;&nbsp;<target name="main" depends="bnd">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <echo message="Call main"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}<!-- Change the path to point on the iPOJO Ant task jar -->{color}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<taskdef name="ipojo"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classname="org.apache.felix.ipojo.task.IPojoTask"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}classpath="org.apache.felix.ipojo.ant-1.6.0.jar"{color} />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<ipojo
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}input="foo.jar"{color}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata = "meta.xml"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; />
&nbsp;&nbsp;&nbsp;&nbsp;</target>
</project>
{div}

The

...

first

...

target

...

creates

...

the

...

bundle

...

with

...

BND.

...

More

...

details

...

on

...

the

...

BND

...

Ant

...

Task

...

are

...

available

...

here.

...

To

...

combine

...

the

...

BND

...

output

...

and

...

the

...

iPOJO

...

input,

...

the

...

iPOJO

...

input

...

need

...

to

...

be

...

the

...

same

...

as

...

the

...

BND

...

file

...

but

...

with

...

the

...

".jar"

...

extension.

...

For

...

instance,

...

the

...

BND

...

file

...

is

...

foo.bnd,

...

so

...

the

...

input

...

jar

...

must

...

be

...

foo.jar.

...


To

...

be

...

sure

...

that

...

the

...

BND

...

bundle

...

is

...

already

...

created,

...

you

...

can

...

add

...

the

...

"

...

depends

...

"

...

clause

...

in

...

the

...

target

...

using

...

the

...

iPOJO

...

task

...

to

...

the

...

target

...

creating

...

the

...

bundle.

...

However,

...

it

...

is

...

possible

...

to

...

create

...

only

...

one

...

target

...

doing

...

the

...

two

...

operations

...

as:

Wiki Markup

{div:class=pom}
<target name="main">
&nbsp;&nbsp;&nbsp;&nbsp;{color:red}<!-- Change to use the latest BND version -->{color}
&nbsp;&nbsp;&nbsp;&nbsp;<taskdef
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource="aQute/bnd/ant/taskdef.properties"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}classpath="bnd-0.0.178.jar"/>{color}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}<!-- Change the path to point on the iPOJO Ant task jar -->{color}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<taskdef name="ipojo"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classname="org.apache.felix.ipojo.task.IPojoTask"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{color:red}classpath="org.apache.felix.ipojo.ant-1.6.0.jar"{color}/>

&nbsp;&nbsp;&nbsp;&nbsp;<bnd
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classpath="src"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eclipse="true"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failok="false"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exceptions="true"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files="{color:red}foo.bnd{color}"/>

&nbsp;&nbsp;&nbsp;&nbsp;<ipojo
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input="{color:red}foo.jar{color}"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata = "meta.xml"/>
</target>
{div}

h2. 

Directory

...

manipulation

...

The

...

manipulator

...

can

...

take

...

a

...

directory

...

in

...

input.

...

In

...

this

...

case,

...

classes

...

from

...

this

...

folder

...

is

...

manipulated.

...

You

...

can

...

also

...

set

...

the

...

manifest

...

file

...

location

...

too.

...

Here

...

in

...

an

...

example

...

of

...

configuration

...

using

...

this

...

mode:

Code Block
xml
xml

{code:xml}
<target name="manipulate">		
     <ipojo
	dir="${output..}" <!-- Manipulated directory -->
	metadata="metadata.xml"
	manifest="META-INF/MANIFEST.MF"  <!-- Manifest location -->
    />
</target>
{code}

{info:title=Manifest location}
If not set, the manifest is searched in the given {{
Info
titleManifest location

If not set, the manifest is searched in the given directory/META-INF

}}

folder

(

_

i.e.

_ {{

$dir/META-INF/MANIFEST.MF

}}

).

{info} h2. Conclusion Subscribe to the Felix users mailing list by sending a message to [mailto:

Conclusion

Subscribe to the Felix users mailing list by sending a message to users-subscribe@felix.apache.org

...

;

...

after

...

subscribing,

...

email

...

questions

...

or

...

feedback

...

to

...

users@felix.apache.org

...

.

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

...