FWIW,
we have set up a private company OBR, to which we deploy our artifacts -
read: our product, consisting of 250+
OSGi bundles and their dependencies (including their transitive
dependencies).
We can then update our customer's products via this OBR, we don't use it
for building our product. As we use
gradle for building, I cannot answer any maven questions, but I know a
friend did this and said it worked:
https://groups.google.com/forum/#!topic/bndtools-users/LNSBNL4hCtY
On 21.06.2017 14:18, Eran Twili wrote:
Hi,
I approach you after spending days of research, resulted in only vague
high level understating of a solution to our problem.
In my organization, we’re intending to *embed OSGi* into our application.
We’re currently exploring the change that will result from moving to
OSGi, in aspect of provisioning / building our application.
Till today, we’re using Maven as our build tool.
So every developer in the team, in his day-to-day work, can make some
changes in the code, run maven install, and Maven will take care of
pulling in the transitive dependencies, compiling and building the
target jars.
Now, moving to OSGi.
Working the same way won’t be sufficient, as Maven may pull in
transitive dependencies which aren’t bundles.
In addition, Maven can successfully compile our project, although some
Manifest requirements are missing, which means the OSGi FW will not
resolve.
But we do want as much automation of the process as possible, so what
do we do?
We want that:
1.When building our project, we’ll *automatically* get bundle versions
of our 3^rd parties, *including* bundle versions of their *transitive
dependencies*, without the need to specify transitive dependencies.
2.After build we want to verify that our OSGi FW can be *resolved*.
I.e. all bundles can be in ACTIVE state.
I read a lot about it and managed to conclude that what we need is *OBR*.
However, although I read a lot about OBR, I can’t get the puzzle fixed.
I couldn’t find any hands-on tutorial of working with OBR end to end.
I do understand that the main players in the game are: bundles
repositories and a resolver.
I understand that I need to start with my own modules as the initial
set of bundles and that OBR should then *automatically* pull my
missing dependencies from the repositories and resolve the OSGi FW.
But how exactly to do that?
1.Do we need to implement anything, or there’re implementations that
we can use?
2.What is the trigger for this process to start during/instead Maven
build?
3.*We use Equinox*. Does the resolver is the Equinox resolver? How can
I activate it in the OBR process?
4.What are my options for public repositories that contains known 3^rd
parties?
5.What happens if the 3^rd party I need doesn’t exist in my bundles
repositories? Does the process fail?
6.There’s, for example, the Apache Felix OBR. Is it an implementation
of the repository or the resolver or both?
7.Does OBR work fluently, or it has many issues?
Any help will be much appreciated
Regards,
Eran
Confidentiality: This communication and any attachments are intended
for the above-named persons only and may be confidential and/or
legally privileged. Any opinions expressed in this communication are
not necessarily those of NICE Actimize. If this communication has come
to you in error you must take no action based on it, nor must you copy
or show it to anyone; please delete/destroy and inform the sender by
e-mail immediately.
Monitoring: NICE Actimize may monitor incoming and outgoing e-mails.
Viruses: Although we have taken steps toward ensuring that this e-mail
and attachments are free from any virus, we advise that in keeping
with good computing practice the recipient should ensure they are
actually virus free.
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev