[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Bundle lookup

Hi Peter,

the problem with syslinks is that the application has to run on both linux- and windows based systems.

This Hansa project is very interesting and now i know how this platform:/ url works.

Thanks, I think this will help me a lot!

greets,
Michael


Peter Neubauer wrote:
Hi Michael,
This is a compile time solution, of course. If you want to link URL:s to
changing actual bundle locations, you could do it on linux of curse via
Symlinks in the file system, but a more generic way would be to install
a custom protocol handler. Eclipse does this with the platform:/
protocol, another system using this, including links from one URL to
another is here:
http://wiki.ops4j.org/dokuwiki/doku.php?id=hansa:hansa#link

There is a Transit bundle registering that kind of system into OSGi, so
you can use it to update your bundles at runtime
(http://wiki.ops4j.org/dokuwiki/doku.php?id=pax:pax)

If nothing else, the code should show how to register custom URL
Handlers.


/peter



-----Original Message-----
From: Michael Mangeng [mailto:mm@xxxxxx] Sent: Sunday, January 22, 2006 10:19 PM
To: Equinox development mailing list
Subject: Re: [equinox-dev] Bundle lookup


Hello Peter,

thanks for your input!

Hmm - I'm searching for a automatic bundle lookup which works at runtime but I'll think wether the solution you suggested is enought for my needs or not. Maybe it is enought and i don't really need what i'm looking for :-)

greets,
Michael

Peter Neubauer wrote:

Hi Michael,
On Sunday 22 January 2006 21:29, Michael Mangeng wrote:


The problem is that I dont know which approach I have to

take when I


want to install "the highest version" of e.g. bundle1 so the upper sample-xml should install bundle1-1.2.0.jar (if this is the highest version available).

For our development we use ivy

(http://www.jayasoft.org/ivy), and have


written a little ant task that produces a config.ini fole

that Equinox


reads for deploying bundles. That way, we specify start

levels as Ivy


configurations and get dependency and of course version

handling for


free. The scenario you discribe is very common for us, a

usual Ivy.xml


file for a product assembly (that is, a product consisting

of several


bundles that are compiled using a previous stage in the

process) would look something like:

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl"
href="http://www.jayasoft.fr/org/ivyrep/ivy-doc.xsl";?>
<ivy-module version="1.0">
<info organisation="scancoin" module="test.assembly"

status="integration">

<repository name="scancoin" url="https://test"/>
</info>
<configurations>
<conf name="default"/>
<!--these are the runlevels, picked up by an ant task

and inserted


into the config.ini bundles statement-->
<conf name="1" visibility="private"/>
<conf name="2" visibility="private"/>
<conf name="3" visibility="private"/>
<conf name="4" visibility="private"/>
<conf name="5" visibility="private"/>
<conf name="6" visibility="private"/>
<conf name="localdir" visibility="private"/>
</configurations>
<publications>
<artifact name="test.assembly" type="zip" conf="default"/>
</publications>
<dependencies>
<!-- core bundles -->
<!-- knopflerfish bundles -->
<dependency org="knopflerfish" name="cm"

rev="latest.integration"


conf="1->*">
<artifact name="cm_all" type="jar"/>
</dependency>
<dependency org="knopflerfish" name="console"

rev="latest.integration"


conf="1->*">
<artifact name="console_all" type="jar"/>
</dependency>
<dependency org="knopflerfish" name="log"

rev="latest.integration"


conf="1->*">
<artifact name="log_all" type="jar"/>
</dependency>
<!-- core bundles -->
<dependency org="scancoin" name="com.scancoin.core.module1" transitive="false" rev="latest.integration" conf="3->*"/>
<dependency org="scancoin" name="com.scancoin.core.module2" transitive="false" rev="latest.integration" conf="4->*"/>
<dependency org="scancoin" name="com.scancoin.core.module3" transitive="false" rev="latest.integration" conf="2->*"/>


<!-- OSGi container -->
<dependency org="eclipse" name="org.eclipse.osgi" rev="latest.integration" conf="localdir->*"/>
<dependency org="eclipse" name="org.eclipse.osgi.services" rev="latest.integration" conf="1->*"/>
</dependencies>
</ivy-module>


Ivy will then copy the dependencies without the version into ${basedir}/lib/3/com.scancoin.core.module1.jar etc. and the

ant task


builds a config.ini from it that looks something like

....
osgi.bundles=lib/3/com.scancoin.core.module1@3:start etc.
....



This works great. If it helps and you want more info, maybe

I can help


you further.

/peter
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev


_______________________________________________ equinox-dev mailing list equinox-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/equinox-dev


_______________________________________________ equinox-dev mailing list equinox-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/equinox-dev