--Ray,
Also, just to give you another container I left out that we support Wildfly 
10.0 Doesn’t have to be only IBM Liberty.

From: osgi-dev-boun...@mail.osgi.org [mailto:osgi-dev-boun...@mail.osgi.org] On 
Behalf Of Matthews, Kevin via osgi-dev
Sent: Monday, December 11, 2017 2:07 PM
To: Raymond Auge
Cc: OSGi Developer Mail List
Subject: Re: [osgi-dev] OSGI bundles install on IBM Liberty

Hi Ray thanks for your response. I have a POC  to discuss migrating to 
Modularity and OSGI services on JEE container which I need to deliver next week 
Thursday. I guess where I am going at and I need your guide dance so I can wrap 
my head around this or fill in the missing blank(s ) usage of the OSGI 
framework since I am newbie.

Here is the following use case flow.


1.       Design -  Modularize our monolithic application (Spring) code base as 
API’s, Provider(s) and Consumer(s). (e.g todo-service-api, todo-service-jpa, 
todo-ui-angular-webapp, todo-ui-rest-webapp etc..) as declarative services bnd 
bundles.

2.       Develop bnd bundles using Maven or gradle projects in Eclipse 
IDE/vi/notepad.

3.       Hot deploy these bundles/components (i.e. api’s, providers, consumers 
etc..) to a deployment folder on the application server/container IBM 
Liberty.(e.x using maven script and Jenkins CI/CD)

4.       Target company container/appServer is IBM Liberty for OSGI services 
application deployment.   Since Liberty is the company standard. I was hoping 
we had support for Jetty embedded servlet  which would have made life a lot 
easier but due patches and security it doesn’t suffice. However, in the future 
this may change as we will be moving to the cloud (e.x.Pivotal). Which will be 
Phase 2  POC deploying OSGI services  in the cloud.

Is the flow above doable? If the flow is doable, how do I implement 1-4.? 
Should it be implemented as how we have been discussing using distro jars with 
run bundles? I just need to confirm with you that I am heading in the right 
direction.



From: Raymond Auge [mailto:raymond.a...@liferay.com]
Sent: Monday, December 11, 2017 11:35 AM
To: Matthews, Kevin
Cc: Peter Kriens; OSGi Developer Mail List
Subject: Re: [osgi-dev] OSGI bundles install on IBM Liberty



I'll try to not be overly Liferay specific because I don't feel I need too in 
order to give decent answers.

On Sun, Dec 10, 2017 at 4:27 PM, Matthews, Kevin 
<kevin.matth...@firstdata.com<mailto:kevin.matth...@firstdata.com>> wrote:

Hi Ray, I read the app note but I need some clarification. Couple of questions:



1.       In Liferay, we hot deploy bundles to the deploy folder in 
Wildfly/Jboss container or appserver using the gradle build script provided by 
liferay. I thought we could do the same on the liberty server since it already 
has an OSGI container.  Is the usage of the bnd agent running in the 
application server with a specific port the same concept as how it’s done in 
liferay 7.0 where gogo shell runs on port 11311?

There are some parallels but let me explain the related use-cases in Liferay:

- localhost:11311 is the telnet socket/port of the Apache Felix gogo shell that 
Liferay comes pre-configured with. Though gogo can be used to install bundles, 
it's not what Liferay uses for installing (telnet is provided by Eclipse 
Equinox console bundle).

- Liferay uses Apache Felix fileinstall which scans directories for bundles to 
install (hot deploy). There's some extensions using the fileinstall SPI to 
support some Liferay proprietary packages and WAR files (to support WABs).


Do we have bnd agent running on the liferay 7.0 server?
I don't believe it is installed OOTB, you'd have to drop the bundle into the 
deploy dir.


I believe the Jetty container out of the box comes with a OSGI container, is 
this true?
Which instance of jetty are you referring to? A pure jetty Http Servlet 
container I don't believe runs an OSGi framework (even though Jetty is largely 
made of OSGi bundles).




2.       You mention the distro jar should be re-created in case there are 
changes in the application server.  What are some examples of changes in the 
app server that will need the distro jar to re-created?
For example, let's imagine you install a "release" of container X (e.g. Liferay 
7.0 ga2),

- you might generate a distro at this stage to resolve against

Later you install, using some management tool that comes with container X, 
(e.g. Liferay marketplace) some additional features (e.g. Audience Targeting 
Suite).

- you may want to re-generate a distro here because you might want to code 
against the new feature's capabilities (APIs).




3.       What’s the difference between osgi en route bundle jars running in 
jetty container we have in the tutorial
What you get in enroute is not a "jetty container in which your app runs". It's 
your app's bundles which happen to depend on some http stuff which the resolver 
resolved to jetty bundles to provide the http parts.

The bundles YOU make have a clean, pure dependency on http stuff. So enroute 
could resolve ANY provider, it just so happens to be jetty bundles.


versus the bundle jars we build/deploy in liferay 7 running on 
Windows/Wildfly/tomcat etc?
Let's say Liferay is running in Wildfly, it provides the http stuff OOTB as a 
function of the container (Wildfly) so when you resolve against the Liferay 
distro, the resolve would say:

"The http stuff is already provided by this distro, we don't need to resolve 
another provider."

The very same bundles you built above which have a clean, pure dependency on 
http stuff could run with zero modification on Liferay.




4.       I see couple of osgi-liberty maven plugins when I go to create a maven 
project in Eclipse . Do you know what these maven plugins usage?



[cid:image001.png@01D3728A.57A39CF0]


These just look like versions of the Servlet API, probably so you can write 
your code against whatever lowest common denominator your product policy has 
set.



5.       When I read the OSGI in IBM they don’t see they show usage of 
declarative service @Component instead they use  blueprint for registering the 
osgi services. Also, when generating an OSGI IBM project through eclipse 
doesn’t seem to use the @Active annotation for bundle activation.   Is IBM 100% 
on board with the OSGI Specification. ?
IBM is 100% on board with OSGi! :) Beyond that I won't make any comments 
regarding their product(s). There are plenty of IBMers around who can answer 
this.

Sincerely,
- Ray




Thanks,

Kevin





From: Raymond Auge 
[mailto:raymond.a...@liferay.com<mailto:raymond.a...@liferay.com>]
Sent: Tuesday, December 05, 2017 12:32 PM
To: Peter Kriens
Cc: OSGi Developer Mail List; Matthews, Kevin
Subject: Re: [osgi-dev] OSGI bundles install on IBM Liberty



I had actually made a mistake in the suggested `-distro` instruction.



I've corrected it in the app note.

- Ray



On Tue, Dec 5, 2017 at 12:19 PM, Raymond Auge 
<raymond.a...@liferay.com<mailto:raymond.a...@liferay.com>> wrote:





On Tue, Dec 5, 2017 at 12:09 PM, Peter Kriens 
<peter.kri...@aqute.biz<mailto:peter.kri...@aqute.biz>> wrote:

I’ve added these points to the Resolve App Note. 
https://github.com/osgi/osgi.enroute.site/blob/gh-pages/_appnotes/resolving.md<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_osgi_osgi.enroute.site_blob_gh-2Dpages_-5Fappnotes_resolving.md&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=5dgDiilIAAv4T5Pi2QAhoAIKfDx6C4voPPFXS-SftOE&e=>



Awesome!



Thanks Peter!

- Ray





Kind regards,



Peter Kriens





On 5 Dec 2017, at 15:46, Raymond Auge via osgi-dev 
<osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org>> wrote:







On Tue, Dec 5, 2017 at 9:42 AM, Raymond Auge 
<raymond.a...@liferay.com<mailto:raymond.a...@liferay.com>> wrote:

Hey Kevin,

Here's what I could find: "Deploying OSGi applications to Liberty" [1]

Now, this may be a little complicated by the fact that the enroute model tends 
to guide you to resolve a whole runtime. Meanwhile with openliberty or 
WebSphere Liberty you are deploying into a container which already "contains a 
lot of features".

The crux of the issue becomes "resolving only what you need to deploy". This is 
were the complication comes in. What you need at that point is a way to "find 
out what the container provides in a way that you can use this during resolve 
time".

Currently the way to do that is to create what's called a "distro" jar of the 
target container. This distro is a JAR file which provides all the capabilities 
that the target container provides at one point in time.

How do you create a distro?

1) install the bnd remote agent bundle [2] in the target container runtime. 
This will automatically open a local socket on a default port used to the 
remote cli next.

2) execute the following command using the bnd cli [3]:



bnd remote distro -o ws.liberty-5.6.7.jar ws.liberty 5.6.7



FYI, this "bnd" command is just an alias for invoking the executable bnd jar: 
"java -jar <bnd.jar> remote distro ..."





3) take the jar "ws.liberty-5.6.7.jar" create by that and place it into the 
maybe the directory containing the bndrun file which is used to resolve your 
deployment jars.

4) in the bndrun file add:

-distro: file:${.}/ws.liberty-5.6.7.jar

5) resolve... the result of the resolve should be the set of bundles you need 
to install to openliberty.

What you need to bare in mind is that the distro file needs to be regenerated 
each time the liberty installation changes in any significant way otherwise you 
won't get the real state of the system needed to resolve against.



I hope that makes some sense.



Let me know if the instructions were clear and if it worked.



- Ray

[1] 
https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_dep_osgi.html<https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ibm.com_support_knowledgecenter_en_SSEQTP-5Fliberty_com.ibm.websphere.wlp.doc_ae_twlp-5Fdep-5Fosgi.html&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=nvLyZLi-u2zZxyZDABhidNPzNiG4CP48UqizxJvO0uM&e=>

[2] 
http://search.maven.org/remotecontent?filepath=biz/aQute/bnd/biz.aQute.remote.agent/3.5.0/biz.aQute.remote.agent-3.5.0.jar<https://urldefense.proofpoint.com/v2/url?u=http-3A__search.maven.org_remotecontent-3Ffilepath-3Dbiz_aQute_bnd_biz.aQute.remote.agent_3.5.0_biz.aQute.remote.agent-2D3.5.0.jar&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=x12qd0weK3DYeQDv9V-GpTsZU5_Ms2xgIfXtjlSHFNY&e=>

[3] 
http://search.maven.org/remotecontent?filepath=biz/aQute/bnd/biz.aQute.bnd/3.5.0/biz.aQute.bnd-3.5.0.jar<https://urldefense.proofpoint.com/v2/url?u=http-3A__search.maven.org_remotecontent-3Ffilepath-3Dbiz_aQute_bnd_biz.aQute.bnd_3.5.0_biz.aQute.bnd-2D3.5.0.jar&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=ha4v1OTeYF5iWCrc47eylrZCM6UuAAFW5cVwrALmI8Q&e=>



On Tue, Dec 5, 2017 at 9:11 AM, Matthews, Kevin via osgi-dev 
<osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org>> wrote:

Hi Tim, a quick question. I am learning OSGI from osgi en route samples. In our 
environment, our monolithic application runs on  IBM Websphere Liberty but I am 
doing a POC to convert to modular architecture then bundles to run on Websphere 
Liberty. Can I build bundles using BND en route from my eclipse and install 
these bundles on a Liberty server? I know liberty uses the equinox OSGI 
container.

The information in this message may be proprietary and/or confidential, and 
protected from disclosure. If the reader of this message is not the intended 
recipient, or an employee or agent responsible for delivering this message to 
the intended recipient, you are hereby notified that any dissemination, 
distribution or copying of this communication is strictly prohibited. If you 
have received this communication in error, please notify First Data immediately 
by replying to this message and deleting it from your computer.

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org>
https://mail.osgi.org/mailman/listinfo/osgi-dev<https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.osgi.org_mailman_listinfo_osgi-2Ddev&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=9fxz_bUNjKXN9MH6tRxIyMdQX4Hu6HNw4eTSnEF24dg&e=>



--

Raymond 
Augé<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com_web_raymond.auge_profile&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=pVwg_G9fQa9f2mF0cxJUEt3jbrqZTVKd3lqQGZQF7Pc&e=>
 (@rotty3000)

Senior Software Architect Liferay, 
Inc.<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com_&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=bLfM9BLLIw9feuk9UUsRpcXjRW1nB2pNPGZDVdRJzaA&e=>
 (@Liferay)

Board Member & EEG Co-Chair, OSGi 
Alliance<https://urldefense.proofpoint.com/v2/url?u=http-3A__osgi.org_&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=VocS5zYRZyiXftmFPT0FCbd5OHZZKSMAuAu3RxLaVqc&e=>
 (@OSGiAlliance)



--

Raymond 
Augé<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com_web_raymond.auge_profile&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=pVwg_G9fQa9f2mF0cxJUEt3jbrqZTVKd3lqQGZQF7Pc&e=>
 (@rotty3000)

Senior Software Architect Liferay, 
Inc.<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com_&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=bLfM9BLLIw9feuk9UUsRpcXjRW1nB2pNPGZDVdRJzaA&e=>
 (@Liferay)

Board Member & EEG Co-Chair, OSGi 
Alliance<https://urldefense.proofpoint.com/v2/url?u=http-3A__osgi.org_&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=VocS5zYRZyiXftmFPT0FCbd5OHZZKSMAuAu3RxLaVqc&e=>
 (@OSGiAlliance)

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org>
https://mail.osgi.org/mailman/listinfo/osgi-dev<https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.osgi.org_mailman_listinfo_osgi-2Ddev&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=9fxz_bUNjKXN9MH6tRxIyMdQX4Hu6HNw4eTSnEF24dg&e=>





--

Raymond 
Augé<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com_web_raymond.auge_profile&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=pVwg_G9fQa9f2mF0cxJUEt3jbrqZTVKd3lqQGZQF7Pc&e=>
 (@rotty3000)

Senior Software Architect Liferay, 
Inc.<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=wrNnSroPW6ByUCTVnCJjXzwpuZ-slHk8PgfC8CVMVnI&e=>
 (@Liferay)

Board Member & EEG Co-Chair, OSGi 
Alliance<https://urldefense.proofpoint.com/v2/url?u=http-3A__osgi.org&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=I__7kG1rKbMw937AUnqqdd1nHxsYR49kOM-0IWFO1jQ&e=>
 (@OSGiAlliance)



--

Raymond 
Augé<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com_web_raymond.auge_profile&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=pVwg_G9fQa9f2mF0cxJUEt3jbrqZTVKd3lqQGZQF7Pc&e=>
 (@rotty3000)

Senior Software Architect Liferay, 
Inc.<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=wrNnSroPW6ByUCTVnCJjXzwpuZ-slHk8PgfC8CVMVnI&e=>
 (@Liferay)

Board Member & EEG Co-Chair, OSGi 
Alliance<https://urldefense.proofpoint.com/v2/url?u=http-3A__osgi.org&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=HH8Gw-cn_T-kd6gx_j2BbQ-yDw3Q20TuuUT5AHmRGgs&s=I__7kG1rKbMw937AUnqqdd1nHxsYR49kOM-0IWFO1jQ&e=>
 (@OSGiAlliance)



--
Raymond 
Augé<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com_web_raymond.auge_profile&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=3pH68YyhtCWSHezsKIWnHd2ptqZm4pDToi4zz71INKE&s=1gSr4tkmuQ9zkcP_uZ70DqFSDFO6qz4XjpMPoI-6lsI&e=>
 (@rotty3000)
Senior Software Architect Liferay, 
Inc.<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.liferay.com&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=3pH68YyhtCWSHezsKIWnHd2ptqZm4pDToi4zz71INKE&s=LG3opF4w2K07V1JmoRtXGNonAkDm2ukYsatdK06nzHw&e=>
 (@Liferay)
Board Member & EEG Co-Chair, OSGi 
Alliance<https://urldefense.proofpoint.com/v2/url?u=http-3A__osgi.org&d=DwMFaQ&c=ewHkv9vLloTwhsKn5d4bTdoqsmBfyfooQX5O7EQLv5TtBZ1CwcvjU063xndfqI8U&r=wKHHp1xupEN1UoR2CPDlg9US2Vs3om5ld5YqSsWMQX8&m=3pH68YyhtCWSHezsKIWnHd2ptqZm4pDToi4zz71INKE&s=GCvtrBW1T-ORe7N-k6hSvDA1WdSsOiQdVhBczNvQOYk&e=>
 (@OSGiAlliance)
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to