At least here [1] it is listed as reference implementation, I don't think that each release has to choose new reference implementations.

[1] https://blog.osgi.org/2013/02/javautilserviceloader-in-osgi.html

Am 18.11.20 um 08:39 schrieb Grzegorz Grzybek:
Hello

śr., 18 lis 2020 o 08:23 'Christoph Läubrich' via OPS4J <ops4j@googlegroups.com <mailto:ops4j@googlegroups.com>> napisał(a):

    Not sure if it already was mentioned, but OSGi provides already a
    way to
    interact with Java-SPI through the Service Loader Mediator
    Specification
       [1].

    [1]
    https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.loader.html
    <https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.loader.html>


Is Aries SPI-Fly an RI of this spec? in R7 version?

regards
Grzegorz Grzybek



    Am 16.11.20 um 09:47 schrieb Grzegorz Grzybek:
     > Hello! See my comments inline
     >
     > niedz., 15 lis 2020 o 08:15 'paul stanley' via OPS4J
     > <ops4j@googlegroups.com <mailto:ops4j@googlegroups.com>
    <mailto:ops4j@googlegroups.com <mailto:ops4j@googlegroups.com>>>
    napisał(a):
     >
     >     Hello,
     >
     >     My initial issue was that pure JAXRS WABs fail to bootstrap
    karaf,
     >     where as they work as documented when deployed into the OSGi
    side of
     >     Glassfish.Glassfish may be a JakartaEE platform, but
    essentiality it
     >     is an OSGI framework running on Felix. Therefore, felix
    should also
     >     support the concept of dropping annotated applications into the
     >     framework that will be picked up and initialised by the relevant
     >     extender.
     >
     >
     > "Glassfish may be a JakartaEE platform, but essentiality it is an
    OSGI
     > framework running on Felix" - IMO this statement is wrong. OSGi
    is an
     > implementation detail of Glassfish and not its
    deployment/programming
     > model. Superior programming/deployment model is JavaEE and it has
    to be
     > JavaEE compliant (as it's RI).
     >
     > So the fact that pure JAXRS WAB failed is Karaf or Pax-Web (or
    any other
     > WAB extender you've added to Karaf) fault and not that Glassfish did
     > something right.
     >
     >     This process is complicated by the fact that JAXRS services
    are web
     >     applications that are bootstrapped by a method described in the
     >     Servlet 3 specification.This is achieved by the appropriate
     >     technology (i.e. CXF or Jersey) providing a
     >     ServletContainerInitializer that allows the service to examine
     >     application and decided if further action is required.
     >
     >
     > And that's what I'm carefully tackling in Pax Web 8,
    master-improvements
     > branch. ServietContainerInitializers were not implemented
    correctly in
     > Pax Web 7 wrt to classloading.
     >
     >     As discussed previously the ServletContainerInitializer's are
     >     discovered through the use of the Java Util ServiceLoader
     >     service.This means that the META-INF/services file needs to be
     >     visible and creatable by the application's class loader.Or
    via some
     >     other means, e.g. servlet, jsp and jsf implementations are
    supported
     >     by the pax-web-extender specifically wiring in the
    appropriate class
     >     loaders during the web context initialisation process.
     >
     >
     > And in OSGi, being networking and not hierarchical classloader
    system
     > needs to handle SCIs differently - we can't search entire network of
     > classloaders, while it's easy with hierarchical model.
     >
     >     As such I've been trying to understand how Glassfish achieved
     >     something similar in a felix container, without the need for the
     >     application to specify either the Jersey implementation or the
     >     auxiliary library that contained the SCI.
     >
     >
     > As I've said - Felix is implementation detail and when you deploy
    a WAR
     > into Glassfish, this WAR is not even aware that there's Felix/OSGi
     > underneath. There's strict and well-defined classloader passed to
     > ServetContext implementation being associated with the WAR and
     > everything just works according to JavaEE.
     >
     >     It turns out that GF is using a couple of tricks to construct a
     >     common classloader at runtime which contains dependencies on all
     >     bundles that offer services through the ServiceLoader
    framework.This
     >     is then used as the parent classloader when bootstrapping web and
     >     other types of services, thus decoupling the web framework
     >     implementation from the applications that use it.
     >
     >
     > Exactly. But this doesn't mean that any bundle that you sneak
    into this
     > Felix-under-Glassfish will be used as the bundle providing
    extensions to
     > how SCIs are handled when you deploy a WAR into Glassfish ;)
     >
     >     Personally I like this approach as it allows our framework
    engineer
     >     to maintain the platforms separately from application
    developers who
     >     only need be concerned with the business logic.Thus if we want to
     >     upgrade or change the implementation of a particular technology
     >     (e.g. JAXRS, Spring, JPA, XML/JSON Binding, etc…) then we can
     >     without the need to rebuild all of the applications that use it.
     >
     >
     > That's rather a promise of JavaEE and it's not that easy with
    OSGi. I
     > mean OSGi's promise to replace impl without changing API is even
     > stronger, because it works at package level, not at API level
    (though
     > OSGi "contracts" are supposed to move this up from package to
     > set-of-packages level).
     >
     >     As a demo I have extended the
    ServletContainerInitializerScanner in
     >     the pax-web-api to track bundles that provide the SCI via the
     >     service loader file.These are then returned to the
     >     JettyServerWrapper when it is creating the HttpServiceContext.The
     >     result is that JAXRS, WebSocket and Spring MVC applications
    are all
     >     correctly initialised without the need to hard code a specific
     >     implementation into the business logic bundles.
     >
     >
     > Cool! That's a proof that original scanner in Pax Web 7 didn't work
     > correctly. I'm working on this in Pax Web 8.
     >
     >     I realise that bootstrapping services like this does not
    conform to
     >     the class loading concepts of the OSGI specification, however it
     >     does make Karaf more flexible when used as a service platform.As
     >     such, I believe that we should consider adding the option of
    a SCI
     >     Bundle Extender to the pax web offering.
     >
     >
     > I'll try to make it as configurable as possible in Pax Web 8 -
    feel free
     > to review master-improvements branch before it gets merged into
    master!
     >
     > regards
     > Grzegorz Grzybek
     >
     >     Regards
     >
     >     Paul
     >
     >     On Friday, November 6, 2020 at 1:48:44 PM UTC
    gr.gr...@gmail.com <mailto:gr.gr...@gmail.com>
     >     <mailto:gr.gr...@gmail.com <mailto:gr.gr...@gmail.com>> wrote:
     >
     >         Hello!
     >
     >         pt., 6 lis 2020 o 14:44 'paul stanley' via OPS4J
     >         <op...@googlegroups.com <mailto:op...@googlegroups.com>>
    napisał(a):
     >
     >             Thanks Grzegorz,
     >
     >             I'll have a more detailed look at this when I get
    back next
     >             week.
     >
     >
     >         Sure! Looking forward to your findings ;)
     >
     >         regards
     >         Grzegorz Grzybek
     >
     >
     >             Regards
     >             Paul
     >             On 2 Nov 2020, at 06:22, Grzegorz Grzybek
     >             <gr.gr...@gmail.com <mailto:gr.gr...@gmail.com>> wrote:
     >
     >                 Hello
     >
     >                 niedz., 1 lis 2020 o 18:56 'paul stanley' via OPS4J <
     > op...@googlegroups.com <mailto:op...@googlegroups.com>> napisał(a):
     >
     >                     Hi Grzegorz,
     >
     >                     Sorry about the delay in getting back to you.
     >
     >                     I realise your concerns about sci's from
    different
     >                     webapps interfering with each other. However
    the SCI
     >                     mechanism appears to be the way that the
    other web
     >                     technologies, such as JAXRS and SpringMVC have a
     >                     chance to detect and influence the creation
    of the
     >                     servlet.
     >
     >
     >                 JaxRS and SpringMVC were designed to work in JavaEE
     >                 runtime (or just flat classpath for non servlet
     >                 applications) which has well defined hierarchical
     >                 ClassLoader model, so scanning for SCIs is easy -
    just
     >                 start with current ClassLoader (assigned to the
    WAR for
     >                 example) and walk through parents.
     >
     >                 OSGi has also (very) well defined ClassLoader model -
     >                 but it's not hierarchical, it's _network_
    bidirectional
     >                 graph of ClassLoaders...
     >
     >
     >                     Given that ServiceLoader architecture is
    being used,
     >                     is it unreasonable that all possible
    instances for
     >                     the SCI get asked to look at the bundle and
     >                     initialize the context is appropriate?
     >
     >
     >                 Hmm, I'm not sure I understand... SCI in onStartup()
     >                 gets an instance of ServletContext and array of
    classes
     >                 - it should not be bundle aware...
     >
     >
     >                     If not, then we need another way to extend the
     >                     WebExtender with other web frameworks,
    allowing them
     >                     to get  involved with servlet creation. Which
    does
     >                     not include altering the webapp in some OSGI
     >                     specific way.
     >
     >
     >                 I'm not sure we can extend the WebExtender (quite low
     >                 level framework) with some web framework (SpringMVC,
     >                 JaxRS, Wicket, Tapestry, name it - all more high
    level)....
     >
     >                 But fear not - the best way to detect proper SCIs
    (IMO)
     >                 is simply to use WAB archives, so all jars from
     >                 Bundle-ClassPath manifest header (which by
    default means
     >                 all jars from /WEB-INF/lib of the bundle) are scanned
     >                 for SCIs and web-fragment.xmls.
     >
     >                 regards
     >                 Grzegorz Grzybek
     >
     >
     >                     Cheers
     >                     Paul
     >                     On 30 Oct 2020, at 08:46, Grzegorz Grzybek <
     > gr.gr...@gmail.com <mailto:gr.gr...@gmail.com>> wrote:
     >
     >                         Hello
     >
     >                         czw., 29 paź 2020 o 19:50 Matt Pavlovich <
     > ma...@hyte.io <mailto:ma...@hyte.io>> napisał(a):
     >
     >                             Paul--
     >
     >                             You might checkout a BundleTracker.  A
     >                             BundleTracker is ensured to get a
    callback
     >                             for every bundle, regardless as to
    when your
     >                             bundle started. With a
    BundleListener, there
     >                             is a race condition that you may not be
     >                             activated before some bundles that
    you care
     >                             about.
     >
     >
     >                         It's not about bundle tracker or listener.
     >                         Whiteboard implementation uses such
    tracker to
     >                         ensure that when a bundle is gone, all
     >                         associated contexts and web elements
    should be
     >                         deregistered.
     >                         It's more about which bundles should be
    scanned
     >                         for ServletContainerInitializers. imagine you
     >                         install two "sets" of bundles (e.g., Karaf
     >                         features) - you don't want SCIs from one
    feature
     >                         (web application) to be used in another
     >                         feature/web application...
     >
     >                         regards
     >                         Grzegorz Grzybek
     >
     >
     >                             ref:
     >
    
https://docs.osgi.org/specification/osgi.core/7.0.0/util.tracker.html#d0e52020
    
<https://docs.osgi.org/specification/osgi.core/7.0.0/util.tracker.html#d0e52020>
>  <https://docs.osgi.org/specification/osgi.core/7.0.0/util.tracker.html#d0e52020 <https://docs.osgi.org/specification/osgi.core/7.0.0/util.tracker.html#d0e52020>>
     >
     >
     >                             -Matt
     >
     >                             On Thursday, October 29, 2020 at
    1:17:19 PM
     >                             UTC-5 8.apri...@googlemail.com
    <mailto:8.apri...@googlemail.com> wrote:
     >
     >
     >                                 Thanks Grzegorz.  I know what you
    mean
     >                                 about doing my "normal job", I
    also have
     >                                 be careful as to what can be
    shared to
     >                                 the community.
     >
     >                                 I realise that the ServiceLoader is a
     >                                 bit of a problem and I've already
    had to
     >                                 alter other standard services to be
     >                                 bundle-aware.  Which is why I think
     >                                 implementing a Bundle Listener
    could be
     >                                 a better approach for the SCI's.
     >
     >                                 I'm out of the office for a couple of
     >                                 weeks so I'm going to look
    prototyping a
     >                                 solution when I get back.
     >
     >                                 Cheers
     >                                 Paul
     >                                 On 29 Oct 2020, at 13:28, Grzegorz
     >                                 Grzybek < gr.gr...@gmail.com
    <mailto:gr.gr...@gmail.com>> wrote:
     >
     >                                     Hello
     >
     >                                     You're generally right. I'm
    working
     >                                     on Pax Web 8 improvements
    (actual,
     >                                     full implementation of OSGi
    CMPN R6+
     >                                     Whiteboard specification +
     >                                     HttpService specification + Web
     >                                     Applications Specification) and I
     >                                     tackled the problem of
     >                                     ServletContainerInitializers.
     >
     >                                     The problem is that OSGi CMPN
    spec
     >                                     doesn't mention SCIs at all, only
     >                                     Web Applications Specification
     >                                     generally assumes that "web
    bundle"
     >                                     should be processed
    ("extended") by
     >                                     the implementation which involves
     >                                     web.xml parsing + fragments
    parsing
     >                                     + (possibly) "classpath
    scanning".
     >                                     See for example:
     >
     >                                         A WAB can optionally
    contain a
     >                                         web.xml resource to specify
     >                                         additional configuration.
    This
     >                                         web.xml must be found
    with the
     >                                         Bundle *findEntries*
    method at
     >                                         the path WEB-INF/web.xml. The
     >                                         findEntries method includes
     >                                         fragments, allowing the
    web.xml
     >                                         to be provided by a fragment.
     >
     >
     >                                     So here there's nothing about
     >                                     "scanning other bundles" not
     >                                     referred through "fragment"
     >                                     relationship.
     >
     >                                     Also:
     >
     >                                         Unlike a WAR, a WAB is not
     >                                         constrained to package
    classes
     >                                         and code resources in the
     >                                         WEB-INF/classes directory or
     >                                         dependent JARs in
    WEB-INF/lib/
     >                                         only. These entries can be
     >                                         packaged in any way
    that's valid
     >                                         for an OSGi bundle as long as
     >                                         such directories and JARs are
     >                                         part of bundle class path
    as set
     >                                         with the Bundle-ClassPath
    header
     >                                         and any attached
    fragments. JARs
     >                                         that are specified in the
     >                                         Bundle-ClassPath header are
     >                                         treated like JARs in the
     >                                         WEB-INF/lib/ directory of the
     >                                         Servlet specification.
     >                                         Similarly, any directory
    that is
     >                                         part of the Bundle-ClassPath
     >                                         header is treated like
     >                                         WEB-INF/classes directory
    of the
     >                                         Servlet specification.
     >
     >
     >                                     So again - you can "bring"
     >                                     additional libraries to your
    "bundle
     >                                     classpath" by referring them in
     >                                     "Bundle-ClassPath" header. No
     >                                     scanning of everything
    (that's for
     >                                     example tracked by
    BundleListener).
     >
     >                                     And about java.util.ServiceLoader
     >                                     (which should in theory be a
     >                                     suggestion to how
     >                                     ServletContainerInitializer
     >                                     "services" are found),
>  "java.util.ServiceLoader#load(java.lang.Class<S>,
     >                                     java.lang.ClassLoader)" method
     >                                     simply uses the passed
    classLoader
     >                                     and the other "load()"
    version uses
     >                                     TCCL. Neither of these
    methods scan
     >                                     ALL classloaders (all bundles
    in OSGi).
     >
     >                                     In Pax Web 8 I'm definitely
    going to
     >                                     solve this problem - for now, a
     >                                     bundle that registered "a
    context"
>  (org.osgi.service.http.context.ServletContextHelper)
     >                                     is an "entry point" to
    classLoader
     >                                     "mesh" where all are checked
    for SCIs.
     >
     >                                     My Pax Web 8 refactoring is
    taking
     >                                     its shape at
     >
    https://github.com/ops4j/org.ops4j.pax.web/tree/master-improvements
    <https://github.com/ops4j/org.ops4j.pax.web/tree/master-improvements>
>  <https://github.com/ops4j/org.ops4j.pax.web/tree/master-improvements <https://github.com/ops4j/org.ops4j.pax.web/tree/master-improvements>>
     >                                     branch, but I have to do my
    normal
     >                                     job a bit ;) So please be
    patient.
     >
     >                                     regards
     >                                     Grzegorz Grzybek
     >
     >                                     czw., 29 paź 2020 o 14:13 'paul
     >                                     stanley' via OPS4J <
     > op...@googlegroups.com <mailto:op...@googlegroups.com>> napisał(a):
     >
     >                                         Hello.
     >
     >                                         I'm tracing this through
    to try
     >                                         and understand why Jersey
     >                                         Servlet Initializer is not
     >                                         invoked for a pure Jaxrs
     >                                         applications running in
    Karaf 4.3.0.
     >
     >                                         It appears the way that the
>  ServletContainerInitializerScanner
     >                                         in the pax-web-api  has a
     >                                         fundamental design flaw
    when it
     >                                         searches bundles for
    instances
     >                                         of the /META-INF/services/
>  ServletContainerInitializerScanner
     >                                         file.  Namely that it only
     >                                         searches dependent bundles of
     >                                         the one that is being
     >                                         initialised.  As the
     >                                         implementation of any
    service is
     >                                         meant to be hidden by the
    API,
     >                                         it means that you will
    never be
     >                                         able to initialise any web
     >                                         servlet.  As such the
     >                                         pax-jetty-web adds the
    bodge of
     >                                         wiring-in itself to all
     >                                         web-context so its
     >                                         contextInitializer code
    can be
     >                                         discovered, but no other
     >                                         implementations.
     >
     >                                         Rather than performing a
    bundle
     >                                         scan each time, surely jetty
     >                                         should be implementing the
     >                                         bundle listener pattern
    and have
     >                                         the set of servlet
    initializers
     >                                         that are available in the
     >                                         platform?  Or am I missing
     >                                         something?
     >
     >                                         Cheers,
     >
     >                                         Paul
     >
     >                                         --
     >                                         --
     >                                         ------------------
     >                                         OPS4J -
    http://www.ops4j.org <http://www.ops4j.org>
     >                                         <http://www.ops4j.org
    <http://www.ops4j.org>> -
     > op...@googlegroups.com <mailto:op...@googlegroups.com>
     >
     >                                         ---
     >                                         You received this message
     >                                         because you are subscribed to
     >                                         the Google Groups "OPS4J"
    group.
     >                                         To unsubscribe from this
    group
     >                                         and stop receiving emails
    from
     >                                         it, send an email to
     > ops4j+un...@googlegroups.com <mailto:ops4j%2bun...@googlegroups.com>.
     >                                         To view this discussion
    on the
     >                                         web visit
     >
    
https://groups.google.com/d/msgid/ops4j/e9d0b4ab-33d7-4895-8a0f-e6d55e3e3b43n%40googlegroups.com
    
<https://groups.google.com/d/msgid/ops4j/e9d0b4ab-33d7-4895-8a0f-e6d55e3e3b43n%40googlegroups.com>
>  <https://groups.google.com/d/msgid/ops4j/e9d0b4ab-33d7-4895-8a0f-e6d55e3e3b43n%40googlegroups.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/e9d0b4ab-33d7-4895-8a0f-e6d55e3e3b43n%40googlegroups.com?utm_medium=email&utm_source=footer>>.
     >
     >
     >                                     --
     >                                     --
     >                                     ------------------
     >                                     OPS4J - http://www.ops4j.org
    <http://www.ops4j.org>
     >                                     <http://www.ops4j.org
    <http://www.ops4j.org>> -
     > op...@googlegroups.com <mailto:op...@googlegroups.com>
     >
     >                                     ---
     >                                     You received this message because
     >                                     you are subscribed to the Google
     >                                     Groups "OPS4J" group.
     >                                     To unsubscribe from this
    group and
     >                                     stop receiving emails from
    it, send
     >                                     an email to
     > ops4j+un...@googlegroups.com <mailto:ops4j%2bun...@googlegroups.com>.
     >
     >                                     To view this discussion on
    the web
     >                                     visit
     >
    
https://groups.google.com/d/msgid/ops4j/CAAdXmhqcqH3h1bhJhYLb1%2B08u3dcSzFE%2BEYpe%2B62O7CbmMZHGQ%40mail.gmail.com
    
<https://groups.google.com/d/msgid/ops4j/CAAdXmhqcqH3h1bhJhYLb1%2B08u3dcSzFE%2BEYpe%2B62O7CbmMZHGQ%40mail.gmail.com>
>  <https://groups.google.com/d/msgid/ops4j/CAAdXmhqcqH3h1bhJhYLb1%2B08u3dcSzFE%2BEYpe%2B62O7CbmMZHGQ%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/CAAdXmhqcqH3h1bhJhYLb1%2B08u3dcSzFE%2BEYpe%2B62O7CbmMZHGQ%40mail.gmail.com?utm_medium=email&utm_source=footer>>.
     >
     >
     >                             --
     >                             --
     >                             ------------------
     >                             OPS4J - http://www.ops4j.org
    <http://www.ops4j.org>
     >                             <http://www.ops4j.org
    <http://www.ops4j.org>> - op...@googlegroups.com
    <mailto:op...@googlegroups.com>
     >
     >                             ---
     >                             You received this message because you are
     >                             subscribed to the Google Groups
    "OPS4J" group.
     >                             To unsubscribe from this group and stop
     >                             receiving emails from it, send an
    email to
     > ops4j+un...@googlegroups.com <mailto:ops4j%2bun...@googlegroups.com>.
     >                             To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/ops4j/a2363134-86ad-40e9-869b-36885ac68083n%40googlegroups.com
    
<https://groups.google.com/d/msgid/ops4j/a2363134-86ad-40e9-869b-36885ac68083n%40googlegroups.com>
>  <https://groups.google.com/d/msgid/ops4j/a2363134-86ad-40e9-869b-36885ac68083n%40googlegroups.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/a2363134-86ad-40e9-869b-36885ac68083n%40googlegroups.com?utm_medium=email&utm_source=footer>>.
     >
     >
     >                         --
     >                         --
     >                         ------------------
     >                         OPS4J - http://www.ops4j.org
    <http://www.ops4j.org>
     >                         <http://www.ops4j.org
    <http://www.ops4j.org>> - op...@googlegroups.com
    <mailto:op...@googlegroups.com>
     >
     >                         ---
     >                         You received this message because you are
     >                         subscribed to the Google Groups "OPS4J"
    group.
     >                         To unsubscribe from this group and stop
     >                         receiving emails from it, send an email to
     > ops4j+un...@googlegroups.com <mailto:ops4j%2bun...@googlegroups.com>.
     >                         To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/ops4j/CAAdXmhpRfntRwzx2oykWjf56AJtWPH2nFD59dfLBFWLO5NpCJA%40mail.gmail.com
    
<https://groups.google.com/d/msgid/ops4j/CAAdXmhpRfntRwzx2oykWjf56AJtWPH2nFD59dfLBFWLO5NpCJA%40mail.gmail.com>
>  <https://groups.google.com/d/msgid/ops4j/CAAdXmhpRfntRwzx2oykWjf56AJtWPH2nFD59dfLBFWLO5NpCJA%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/CAAdXmhpRfntRwzx2oykWjf56AJtWPH2nFD59dfLBFWLO5NpCJA%40mail.gmail.com?utm_medium=email&utm_source=footer>>.
     >
     >
     >                     --
     >                     --
     >                     ------------------
     >                     OPS4J - http://www.ops4j.org
    <http://www.ops4j.org> <http://www.ops4j.org <http://www.ops4j.org>>
     >                     - op...@googlegroups.com
    <mailto:op...@googlegroups.com>
     >
     >                     ---
     >                     You received this message because you are
    subscribed
     >                     to the Google Groups "OPS4J" group.
     >                     To unsubscribe from this group and stop receiving
     >                     emails from it, send an email to
     > ops4j+un...@googlegroups.com <mailto:ops4j%2bun...@googlegroups.com>.
     >                     To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/ops4j/0ba73d25-16c8-4ac6-8bfd-ad9404c56664%40googlemail.com
    
<https://groups.google.com/d/msgid/ops4j/0ba73d25-16c8-4ac6-8bfd-ad9404c56664%40googlemail.com>
>  <https://groups.google.com/d/msgid/ops4j/0ba73d25-16c8-4ac6-8bfd-ad9404c56664%40googlemail.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/0ba73d25-16c8-4ac6-8bfd-ad9404c56664%40googlemail.com?utm_medium=email&utm_source=footer>>.
     >
     >
     >                 --
     >                 --
     >                 ------------------
     >                 OPS4J - http://www.ops4j.org
    <http://www.ops4j.org> <http://www.ops4j.org <http://www.ops4j.org>> -
     > op...@googlegroups.com <mailto:op...@googlegroups.com>
     >
     >                 ---
     >                 You received this message because you are
    subscribed to
     >                 the Google Groups "OPS4J" group.
     >                 To unsubscribe from this group and stop receiving
    emails
     >                 from it, send an email to
    ops4j+un...@googlegroups.com <mailto:ops4j%2bun...@googlegroups.com>.
     >                 To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/ops4j/CAAdXmhpYfC1xBd2%3DXEGjHjut8wAb1rCc6GYmP%2B2PqTk6rLy%3DKQ%40mail.gmail.com
    
<https://groups.google.com/d/msgid/ops4j/CAAdXmhpYfC1xBd2%3DXEGjHjut8wAb1rCc6GYmP%2B2PqTk6rLy%3DKQ%40mail.gmail.com>
>  <https://groups.google.com/d/msgid/ops4j/CAAdXmhpYfC1xBd2%3DXEGjHjut8wAb1rCc6GYmP%2B2PqTk6rLy%3DKQ%40mail.gmail.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/CAAdXmhpYfC1xBd2%3DXEGjHjut8wAb1rCc6GYmP%2B2PqTk6rLy%3DKQ%40mail.gmail.com?utm_medium=email&utm_source=footer>>.
     >
     >
     >             --
     >             --
     >             ------------------
     >             OPS4J - http://www.ops4j.org <http://www.ops4j.org>
    <http://www.ops4j.org <http://www.ops4j.org>> -
     > op...@googlegroups.com <mailto:op...@googlegroups.com>
     >
     >             ---
     >             You received this message because you are subscribed
    to the
     >             Google Groups "OPS4J" group.
     >             To unsubscribe from this group and stop receiving emails
     >             from it, send an email to
    ops4j+un...@googlegroups.com <mailto:ops4j%2bun...@googlegroups.com>.
     >
     >             To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/ops4j/38587571-05a7-4043-a381-f0a7ac6d50fb%40googlemail.com
    
<https://groups.google.com/d/msgid/ops4j/38587571-05a7-4043-a381-f0a7ac6d50fb%40googlemail.com>
>  <https://groups.google.com/d/msgid/ops4j/38587571-05a7-4043-a381-f0a7ac6d50fb%40googlemail.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/38587571-05a7-4043-a381-f0a7ac6d50fb%40googlemail.com?utm_medium=email&utm_source=footer>>.
     >
     >     --
     >     --
     >     ------------------
     >     OPS4J - http://www.ops4j.org <http://www.ops4j.org>
    <http://www.ops4j.org <http://www.ops4j.org>> -
     > ops4j@googlegroups.com <mailto:ops4j@googlegroups.com>
    <mailto:ops4j@googlegroups.com <mailto:ops4j@googlegroups.com>>
     >
     >     ---
     >     You received this message because you are subscribed to the
    Google
     >     Groups "OPS4J" group.
     >     To unsubscribe from this group and stop receiving emails from it,
     >     send an email to ops4j+unsubscr...@googlegroups.com
    <mailto:ops4j%2bunsubscr...@googlegroups.com>
     >     <mailto:ops4j+unsubscr...@googlegroups.com
    <mailto:ops4j%2bunsubscr...@googlegroups.com>>.
     >     To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/ops4j/629e8714-e364-4893-8e63-5b4291abca0an%40googlegroups.com
    
<https://groups.google.com/d/msgid/ops4j/629e8714-e364-4893-8e63-5b4291abca0an%40googlegroups.com>
>  <https://groups.google.com/d/msgid/ops4j/629e8714-e364-4893-8e63-5b4291abca0an%40googlegroups.com?utm_medium=email&utm_source=footer <https://groups.google.com/d/msgid/ops4j/629e8714-e364-4893-8e63-5b4291abca0an%40googlegroups.com?utm_medium=email&utm_source=footer>>.
     >
     > --
     > --
     > ------------------
     > OPS4J - http://www.ops4j.org <http://www.ops4j.org>
    <http://www.ops4j.org <http://www.ops4j.org>> -
    ops4j@googlegroups.com <mailto:ops4j@googlegroups.com>
     >
     > ---
     > You received this message because you are subscribed to the Google
     > Groups "OPS4J" group.
     > To unsubscribe from this group and stop receiving emails from it,
    send
     > an email to ops4j+unsubscr...@googlegroups.com
    <mailto:ops4j%2bunsubscr...@googlegroups.com>
     > <mailto:ops4j+unsubscr...@googlegroups.com
    <mailto:ops4j%2bunsubscr...@googlegroups.com>>.
     > To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/ops4j/CAAdXmhrKq8UodOjM7ugnGeE9_FciVqATen63kZ0cPhO1bzKw%3Dg%40mail.gmail.com
    
<https://groups.google.com/d/msgid/ops4j/CAAdXmhrKq8UodOjM7ugnGeE9_FciVqATen63kZ0cPhO1bzKw%3Dg%40mail.gmail.com>

     >
    
<https://groups.google.com/d/msgid/ops4j/CAAdXmhrKq8UodOjM7ugnGeE9_FciVqATen63kZ0cPhO1bzKw%3Dg%40mail.gmail.com?utm_medium=email&utm_source=footer
    
<https://groups.google.com/d/msgid/ops4j/CAAdXmhrKq8UodOjM7ugnGeE9_FciVqATen63kZ0cPhO1bzKw%3Dg%40mail.gmail.com?utm_medium=email&utm_source=footer>>.

-- -- ------------------
    OPS4J - http://www.ops4j.org <http://www.ops4j.org> -
    ops4j@googlegroups.com <mailto:ops4j@googlegroups.com>

    ---
    You received this message because you are subscribed to the Google
    Groups "OPS4J" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to ops4j+unsubscr...@googlegroups.com
    <mailto:ops4j%2bunsubscr...@googlegroups.com>.
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/ops4j/bec95850-92c9-6bb9-3e16-bf419cbdd7c6%40googlemail.com
    
<https://groups.google.com/d/msgid/ops4j/bec95850-92c9-6bb9-3e16-bf419cbdd7c6%40googlemail.com>.

--
--
------------------
OPS4J - http://www.ops4j.org <http://www.ops4j.org> - ops4j@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscr...@googlegroups.com <mailto:ops4j+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/ops4j/CAAdXmhrEHyD-%3DMKNoDz9NogR1XGaUVjJSTRgjJ7W4Z6f3%3DXWSQ%40mail.gmail.com <https://groups.google.com/d/msgid/ops4j/CAAdXmhrEHyD-%3DMKNoDz9NogR1XGaUVjJSTRgjJ7W4Z6f3%3DXWSQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
--
------------------
OPS4J - http://www.ops4j.org - ops4j@googlegroups.com

--- You received this message because you are subscribed to the Google Groups "OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ops4j+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ops4j/3fa035ac-90df-c1fa-30e4-6fe282325f38%40googlemail.com.

Reply via email to