Hi Bengt, cool that you got it working, especially for the *.php part I didn't have a valid answer. thanks for sharing with the community :)
regards, Achim 2016-11-11 11:11 GMT+01:00 Bengt Rodehav <[email protected]>: > An update... > > I found this: > > http://www.tuckey.org/urlrewrite > > It's a servlet filter that does all kinds of rewrites. It solves all the > problems with legacy URL's I have. Really neat. I also found an OSGI > wrapped version of this on maven central. Just use this: > > <dependency> >> <groupId>org.apache.servicemix.bundles</groupId> >> <artifactId>org.apache.servicemix.bundles.urlrewritefilter</artifactId> >> <version>4.0.4_1</version> >> </dependency> > > > I also subclassed the UrlRewriteFilter class to make it possible to load > the configuration from a string that I construct at runtime using > configuration properties. > > All is well, > > /Bengt > > > > 2016-11-10 17:31 GMT+01:00 Bengt Rodehav <[email protected]>: > >> I now managed to get this working. >> >> I stopped using the Jetty handler for publishing resources from the >> filesystem. Instead I created a Servlet for that purpose. Hope Java with >> NIO is performant enough. >> >> Using that approach it is possible to have overlapping URL's. Servlets >> allow it. >> >> Thanks for all your help! >> >> The one remaining problem for my now is to have aliases for some of my >> URL's for backward compatibility reasons. E g the previous vendor used: >> >> .../index.php >> >> while we use: >> >> .../index.html >> >> Also the previous vendor used: >> >> .../index.php/fund?id=xyz >> >> while we use: >> >> .../index.html/fund.html?isin=xyz >> >> I've been trying to get Jetty's RewriteHandler to work but can't figure >> it out. I can have it process my URL's but the replacement URL is never >> found (I get a 404). >> >> Maybe there is a trick in Pax-Web for this? Or some fallback Servlet I >> can create that forwards/redirects/rewrites (not exactly sure which term is >> correct) the old URL's to the new URL's. Also sounds like a pretty common >> problem since one often need to support legacy URL's. >> >> /Bengt >> >> /Bengt >> >> >> 2016-11-10 16:12 GMT+01:00 'Achim Nierbeck' via OPS4J < >> [email protected]>: >> >>> The thing is not really two servlets (but for those it's the same) it >>> isn't possible to have two different connection handlers, which you have >>> right now. >>> >>> So if you want to have a chain of responsibility, you'll need servlets >>> and filters, those you can chain. Filters can always be in a pre and post >>> mode. >>> >>> Regarding moving static content to the outside world ... 20 years ago >>> you'd done that to have performance improvments. Nowadays, modern cpus and >>> java are fast enough so you don't need to care anymore. >>> When using different handlers you can't use filters etc for those >>> resources registered via different handlers, as those aren't chained. >>> >>> hope that helps :) >>> >>> regards, Achim >>> >>> >>> >>> >>> 2016-11-10 16:00 GMT+01:00 Bengt Rodehav <[email protected]>: >>> >>>> It seems like a general problem and not just a Pax-Web problem. It is >>>> probably not possible to have two servlets with overlapping context paths. >>>> Although I think it should be possible if one could control the order in >>>> which they are invoked. >>>> >>>> Strange, I would think that this would be a pretty normal thing. >>>> >>>> You seem to be very knowledgable about servlets. How does the actual >>>> invoking of a servlet work? Is it possible to have a chain where one >>>> servlet leaves the request unhandled to be passed on to the next? If not, >>>> then I guess it's Jetty internals that decide what servlet to invoke. >>>> >>>> Would a workaround be to move all my static files out of the bundle and >>>> not use the registerResources() method at all but only use jetty.xml >>>> and org.eclipse.jetty.server.handler.ResourceHandler. Would I loose >>>> any Pax-Web functionality this way? >>>> >>>> /Bengt >>>> >>>> >>>> 2016-11-10 15:35 GMT+01:00 'Achim Nierbeck' via OPS4J < >>>> [email protected]>: >>>> >>>>> ok, at least #1 is solved ... that one worried me. >>>>> >>>>> Using "/" for the HttpService in conjunction with aliases plus an >>>>> extra handler on the same context path ... seems hard to achieve. I fear >>>>> we >>>>> need an issue for this. >>>>> Combining two handlers on the same context path seems to be a bit >>>>> tricky right now. >>>>> >>>>> regards, Achim >>>>> >>>>> >>>>> 2016-11-10 15:16 GMT+01:00 Bengt Rodehav <[email protected]>: >>>>> >>>>>> An update on this problem... >>>>>> >>>>>> Problem #1 was not a problem but a bug in my code. I created the "//" >>>>>> (double slash) all by myself. Sorry for the buzz. >>>>>> >>>>>> Problem #2 however still exists. If I register resources on the root >>>>>> url using >>>>>> >>>>>> mWebService.registerResources("/", "/webroot", mHttpContext); >>>>>> >>>>>> Then I cannot publish any resources using jetty.xml and >>>>>> org.eclipse.jetty.server.handler.ResourceHandler. >>>>>> >>>>>> Pax-Web's resource handler does not seem to pass the request on to >>>>>> the handler I register in jetty.xml. >>>>>> >>>>>> So my problem is that I need to accomplish both of these things at >>>>>> the same time: >>>>>> >>>>>> - Map "/logo" to a normal directory using jetty.xml and >>>>>> org.eclipse.jetty.server.handler.ResourceHandler >>>>>> - Map "/" to the "/webroot" directory in my bundle using the >>>>>> registerResources() method. >>>>>> >>>>>> How can I accomplish this? >>>>>> >>>>>> I did try to use "insertRule" in my jetty.xml instead of "addHandler" >>>>>> since I hoped that this would put the "/logo" rule first. However, this >>>>>> syntax does not seem to be supported. >>>>>> >>>>>> /Bengt >>>>>> >>>>>> 2016-11-09 8:58 GMT+01:00 Bengt Rodehav <[email protected]>: >>>>>> >>>>>>> OK - thanks. >>>>>>> >>>>>>> Finally got you :-) >>>>>>> >>>>>>> /Bengt >>>>>>> >>>>>>> 2016-11-08 21:27 GMT+01:00 'Achim Nierbeck' via OPS4J < >>>>>>> [email protected]>: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> regarding registering resources on "/" ... I'd expect it to work in >>>>>>>> the way you describe it, but you might have found a bug there. >>>>>>>> The thing about the "/" - context, is. It is special. Since all >>>>>>>> HttpService registered "resources" are registered with this as the >>>>>>>> context >>>>>>>> ... So it might be that an additional context from outside doesn't play >>>>>>>> along. Will need to test. >>>>>>>> >>>>>>>> regards, Achim >>>>>>>> >>>>>>>> >>>>>>>> 2016-11-08 8:58 GMT+01:00 Bengt Rodehav <[email protected]>: >>>>>>>> >>>>>>>>> Hi again Achim, >>>>>>>>> >>>>>>>>> I'm not exactly sure how you mean. The way I register my resources >>>>>>>>> is via the WebContainer (which I get with iPojo) as follows: >>>>>>>>> >>>>>>>>> private HttpContext mHttpContext; >>>>>>>>> >>>>>>>>> @Requires >>>>>>>>> private WebContainer mWebService; >>>>>>>>> ... >>>>>>>>> mHttpContext = mWebService.createDefaultHttpContext(); >>>>>>>>> mWebService.registerResources("/", "/webroot", mHttpContext); >>>>>>>>> >>>>>>>>> The above will get me the double slash problem. If I instead do: >>>>>>>>> >>>>>>>>> mWebService.registerResources("", "/webroot", mHttpContext); >>>>>>>>> >>>>>>>>> Then I get: >>>>>>>>> >>>>>>>>> Caused by: java.lang.IllegalArgumentException: Alias does not >>>>>>>>> start with slash (/) >>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>> model.ServletModel.validateAlias(ServletModel.java:169) >>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>> model.ServletModel.<init>(ServletModel.java:53) >>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>> model.ResourceModel.<init>(ResourceModel.java:29) >>>>>>>>> at org.ops4j.pax.web.service.inte >>>>>>>>> rnal.HttpServiceStarted.registerResources(HttpServiceStarted >>>>>>>>> .java:262) >>>>>>>>> at org.ops4j.pax.web.service.inte >>>>>>>>> rnal.HttpServiceProxy.registerResources(HttpServiceProxy.java:71) >>>>>>>>> at org.ops4j.pax.web.service.WebC >>>>>>>>> ontainer$$Proxy.registerResources(Unknown Source) >>>>>>>>> at se.digia.hp.web.HpWebService._ >>>>>>>>> _M_init(HpWebService.java:134) >>>>>>>>> at se.digia.hp.web.HpWebService.init(HpWebService.java) >>>>>>>>> at se.digia.hp.web.HpWebService._ >>>>>>>>> _M_starting(HpWebService.java:47) >>>>>>>>> at se.digia.hp.web.HpWebService.s >>>>>>>>> tarting(HpWebService.java) >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>>>>>>> Method)[:1.8.0_74] >>>>>>>>> at sun.reflect.NativeMethodAccess >>>>>>>>> orImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] >>>>>>>>> at sun.reflect.DelegatingMethodAc >>>>>>>>> cessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] >>>>>>>>> at java.lang.reflect.Method.invok >>>>>>>>> e(Method.java:498)[:1.8.0_74] >>>>>>>>> at org.apache.felix.ipojo.util.Ca >>>>>>>>> llback.call(Callback.java:237)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>> at org.apache.felix.ipojo.util.Ca >>>>>>>>> llback.call(Callback.java:193)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>> at org.apache.felix.ipojo.handler >>>>>>>>> s.lifecycle.callback.LifecycleCallback.call(LifecycleCallbac >>>>>>>>> k.java:86)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>> at org.apache.felix.ipojo.handler >>>>>>>>> s.lifecycle.callback.LifecycleCallbackHandler.__M_stateChang >>>>>>>>> ed(LifecycleCallbackHandler.java:162)[50:org.apache.felix.i >>>>>>>>> pojo:1.12.1] >>>>>>>>> >>>>>>>>> Specifying null does not work either. If I do >>>>>>>>> >>>>>>>>> mWebService.registerResources(null, "/webroot", mHttpContext); >>>>>>>>> >>>>>>>>> Then I get: >>>>>>>>> >>>>>>>>> Caused by: java.lang.IllegalArgumentException: Alias does not >>>>>>>>> start with slash (/) >>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>> model.ServletModel.validateAlias(ServletModel.java:169) >>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>> model.ServletModel.<init>(ServletModel.java:53) >>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>> model.ResourceModel.<init>(ResourceModel.java:29) >>>>>>>>> at org.ops4j.pax.web.service.inte >>>>>>>>> rnal.HttpServiceStarted.registerResources(HttpServiceStarted >>>>>>>>> .java:262) >>>>>>>>> at org.ops4j.pax.web.service.inte >>>>>>>>> rnal.HttpServiceProxy.registerResources(HttpServiceProxy.java:71) >>>>>>>>> at org.ops4j.pax.web.service.WebC >>>>>>>>> ontainer$$Proxy.registerResources(Unknown Source) >>>>>>>>> at se.digia.hp.web.HpWebService._ >>>>>>>>> _M_init(HpWebService.java:134) >>>>>>>>> at se.digia.hp.web.HpWebService.init(HpWebService.java) >>>>>>>>> at se.digia.hp.web.HpWebService._ >>>>>>>>> _M_starting(HpWebService.java:47) >>>>>>>>> at se.digia.hp.web.HpWebService.s >>>>>>>>> tarting(HpWebService.java) >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>>>>>>> Method)[:1.8.0_74] >>>>>>>>> at sun.reflect.NativeMethodAccess >>>>>>>>> orImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] >>>>>>>>> at sun.reflect.DelegatingMethodAc >>>>>>>>> cessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] >>>>>>>>> at java.lang.reflect.Method.invok >>>>>>>>> e(Method.java:498)[:1.8.0_74] >>>>>>>>> at org.apache.felix.ipojo.util.Ca >>>>>>>>> llback.call(Callback.java:237)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>> at org.apache.felix.ipojo.util.Ca >>>>>>>>> llback.call(Callback.java:193)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>> at org.apache.felix.ipojo.handler >>>>>>>>> s.lifecycle.callback.LifecycleCallback.call(LifecycleCallbac >>>>>>>>> k.java:86)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>> at org.apache.felix.ipojo.handler >>>>>>>>> s.lifecycle.callback.LifecycleCallbackHandler.__M_stateChang >>>>>>>>> ed(LifecycleCallbackHandler.java:162)[50:org.apache.felix.i >>>>>>>>> pojo:1.12.1] >>>>>>>>> >>>>>>>>> It looks like the code you are referring to registers a Servlet >>>>>>>>> which I do not do directly for these resources (although Pax-Web >>>>>>>>> ResourceServlet is probably used under the hood). >>>>>>>>> >>>>>>>>> Perhaps I'd better give you the overall picture... >>>>>>>>> >>>>>>>>> I have a web application consisting of html/javascript/css files. >>>>>>>>> These are included in my app and will reside in my bundle. They are >>>>>>>>> located >>>>>>>>> in my bundle directory "\webroot". I want "\webroot" to correspond to >>>>>>>>> the >>>>>>>>> root ("\") context path. >>>>>>>>> >>>>>>>>> I also have a couple of Servlets providing services for my >>>>>>>>> javascript files: >>>>>>>>> >>>>>>>>> - One using the context path "\api" that provides general services. >>>>>>>>> - One using the context path "\admin\login" for logging in. Shiro >>>>>>>>> is automatically implementing "\admin\logout" since I specify in my >>>>>>>>> shiro.ini that this should be the logout page. >>>>>>>>> >>>>>>>>> In addition to the above, I need to externalize some of my >>>>>>>>> resources to a normal directory in the file system. My web >>>>>>>>> application uses >>>>>>>>> different logos for the different clients and they can upload their >>>>>>>>> logos >>>>>>>>> on their own so they cannot be a static part of the web application. >>>>>>>>> >>>>>>>>> So I need something like this: >>>>>>>>> >>>>>>>>> a) The bundle's "\webroot" mapped to "\" >>>>>>>>> b) Servlet mapped to "\api" >>>>>>>>> c) Serlvet mapped to "\admin\login" (and "\admin\logout" via Shiro) >>>>>>>>> d) Normal directory mapped to "\logo". >>>>>>>>> >>>>>>>>> I can get the individual pieces working but not together. If I put >>>>>>>>> everything under "\hp" instead of under "\" then it works fine but >>>>>>>>> that >>>>>>>>> context part is not acceptable. I need to put it under "\" since >>>>>>>>> there are >>>>>>>>> existing URL's on the public site that must remain as today. >>>>>>>>> >>>>>>>>> Might sound a bit complicated but I don't think it's an unusual >>>>>>>>> setup. >>>>>>>>> >>>>>>>>> /Bengt >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> 2016-11-07 20:09 GMT+01:00 'Achim Nierbeck' via OPS4J < >>>>>>>>> [email protected]>: >>>>>>>>> >>>>>>>>>> Hi Bengt, >>>>>>>>>> >>>>>>>>>> regarding issue #1 ... could you try to do something as >>>>>>>>>> "documented" in this[1] integration test? >>>>>>>>>> If you abandon the first parameter, with only the alias, it's >>>>>>>>>> always bound to the root "/". >>>>>>>>>> >>>>>>>>>> regarding issue#2 ... I'm not sure yet, but might be solved with >>>>>>>>>> #1 done right ;) >>>>>>>>>> >>>>>>>>>> regards, Achim >>>>>>>>>> >>>>>>>>>> [1] - https://github.com/ops4j/org.ops4j.pax.web/blob/master/pax >>>>>>>>>> -web-itest/pax-web-itest-container/pax-web-itest-container-j >>>>>>>>>> etty/src/test/java/org/ops4j/pax/web/itest/jetty/RootAliasIn >>>>>>>>>> tegrationTest.java >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2016-11-07 17:40 GMT+01:00 Bengt Rodehav <[email protected]>: >>>>>>>>>> >>>>>>>>>>> I'm using Pax-Web in Karaf 4.0.7. >>>>>>>>>>> >>>>>>>>>>> I have two problems with aliases: >>>>>>>>>>> >>>>>>>>>>> *Problem #1* >>>>>>>>>>> >>>>>>>>>>> If I register resources for the context path "/" (i e the root) >>>>>>>>>>> as follows: >>>>>>>>>>> >>>>>>>>>>> mWebService.registerResources("/", "/webroot", >>>>>>>>>>> mHttpContext); >>>>>>>>>>> >>>>>>>>>>> Then my application is reachable at: >>>>>>>>>>> >>>>>>>>>>> http://localhost:8183//admin/login >>>>>>>>>>> >>>>>>>>>>> but not at: >>>>>>>>>>> >>>>>>>>>>> http://localhost:8183/admin/login >>>>>>>>>>> >>>>>>>>>>> I want to get rid of the double slash. However if I try this >>>>>>>>>>> instead: >>>>>>>>>>> >>>>>>>>>>> mWebService.registerResources("", "/webroot", mHttpContext); >>>>>>>>>>> >>>>>>>>>>> Then I get: >>>>>>>>>>> >>>>>>>>>>> Caused by: java.lang.IllegalArgumentException: Alias does not >>>>>>>>>>> start with slash (/) >>>>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>>>> model.ServletModel.validateAlias(ServletModel.java:169) >>>>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>>>> model.ServletModel.<init>(ServletModel.java:53) >>>>>>>>>>> at org.ops4j.pax.web.service.spi. >>>>>>>>>>> model.ResourceModel.<init>(ResourceModel.java:29) >>>>>>>>>>> at org.ops4j.pax.web.service.inte >>>>>>>>>>> rnal.HttpServiceStarted.registerResources(HttpServiceStarted >>>>>>>>>>> .java:262) >>>>>>>>>>> at org.ops4j.pax.web.service.inte >>>>>>>>>>> rnal.HttpServiceProxy.registerResources(HttpServiceProxy.jav >>>>>>>>>>> a:71) >>>>>>>>>>> at org.ops4j.pax.web.service.WebC >>>>>>>>>>> ontainer$$Proxy.registerResources(Unknown Source) >>>>>>>>>>> at se.digia.hp.web.HpWebService._ >>>>>>>>>>> _M_init(HpWebService.java:133) >>>>>>>>>>> at se.digia.hp.web.HpWebService.init(HpWebService.java) >>>>>>>>>>> at se.digia.hp.web.HpWebService._ >>>>>>>>>>> _M_starting(HpWebService.java:47) >>>>>>>>>>> at se.digia.hp.web.HpWebService.s >>>>>>>>>>> tarting(HpWebService.java) >>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>>>>>>>>> Method)[:1.8.0_74] >>>>>>>>>>> at sun.reflect.NativeMethodAccess >>>>>>>>>>> orImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] >>>>>>>>>>> at sun.reflect.DelegatingMethodAc >>>>>>>>>>> cessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8 >>>>>>>>>>> .0_74] >>>>>>>>>>> at java.lang.reflect.Method.invok >>>>>>>>>>> e(Method.java:498)[:1.8.0_74] >>>>>>>>>>> at org.apache.felix.ipojo.util.Ca >>>>>>>>>>> llback.call(Callback.java:237)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>>>> at org.apache.felix.ipojo.util.Ca >>>>>>>>>>> llback.call(Callback.java:193)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>>>> at org.apache.felix.ipojo.handler >>>>>>>>>>> s.lifecycle.callback.LifecycleCallback.call(LifecycleCallbac >>>>>>>>>>> k.java:86)[50:org.apache.felix.ipojo:1.12.1] >>>>>>>>>>> at org.apache.felix.ipojo.handler >>>>>>>>>>> s.lifecycle.callback.LifecycleCallbackHandler.__M_stateChang >>>>>>>>>>> ed(LifecycleCallbackHandler.java:162)[50:org.apache.felix.i >>>>>>>>>>> pojo:1.12.1] >>>>>>>>>>> >>>>>>>>>>> How can I get rid of the "double slash"? >>>>>>>>>>> >>>>>>>>>>> *Problem #2* >>>>>>>>>>> >>>>>>>>>>> Assume that my web application resides at the context url: >>>>>>>>>>> >>>>>>>>>>> http://localhost:8183/hp >>>>>>>>>>> >>>>>>>>>>> I also register a separate resource directory directly in jetty >>>>>>>>>>> with the following configuration (as I was helped by Achim on this >>>>>>>>>>> forum): >>>>>>>>>>> >>>>>>>>>>> <?xml version="1.0"?> >>>>>>>>>>> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" " >>>>>>>>>>> http://www.eclipse.org/jetty/configure_9_0.dtd"> >>>>>>>>>>> >>>>>>>>>>> <Configure id="Server" class="org.eclipse.jetty.server.Server"> >>>>>>>>>>> <Get name="handler"> >>>>>>>>>>> <Call name="addHandler"> >>>>>>>>>>> <Arg> >>>>>>>>>>> <New class="org.eclipse.jetty.serve >>>>>>>>>>> r.handler.ContextHandler"> >>>>>>>>>>> <Set name="contextPath">/logo</Set> >>>>>>>>>>> <Set name="handler"> >>>>>>>>>>> <New class="org.eclipse.jetty.serve >>>>>>>>>>> r.handler.ResourceHandler"> >>>>>>>>>>> <Set name="resourceBase">../../comm >>>>>>>>>>> on/etc/logo</Set> >>>>>>>>>>> <Set name="directoriesListed">true</Set> >>>>>>>>>>> </New> >>>>>>>>>>> </Set> >>>>>>>>>>> </New> >>>>>>>>>>> </Arg> >>>>>>>>>>> </Call> >>>>>>>>>>> </Get> >>>>>>>>>>> </Configure> >>>>>>>>>>> >>>>>>>>>>> This works fine. But when I try to move the application up to >>>>>>>>>>> the root (which has the double slash problem as described in >>>>>>>>>>> Problem #1) to >>>>>>>>>>> the following url: >>>>>>>>>>> >>>>>>>>>>> http://localhost:8183// >>>>>>>>>>> >>>>>>>>>>> Then the separate resource via my jetty.xml does not work. It >>>>>>>>>>> seems that it cannot be a descendant of the context path I use for >>>>>>>>>>> my web >>>>>>>>>>> application. But, since this is a public web application, with a >>>>>>>>>>> predetermined url, it must reside at the root. Then there is no >>>>>>>>>>> context >>>>>>>>>>> path that works for my separate resource directory since all paths >>>>>>>>>>> are >>>>>>>>>>> descendants of root. >>>>>>>>>>> >>>>>>>>>>> This seems a bit weird... >>>>>>>>>>> >>>>>>>>>>> /Bengt >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> -- >>>>>>>>>>> ------------------ >>>>>>>>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>>>>>>>> >>>>>>>>>>> --- >>>>>>>>>>> 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 [email protected]. >>>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> Apache Member >>>>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>>>>>>>> Committer & Project Lead >>>>>>>>>> blog <http://notizblog.nierbeck.de/> >>>>>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>>>>>>>> >>>>>>>>>> Software Architect / Project Manager / Scrum Master >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> -- >>>>>>>>>> ------------------ >>>>>>>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>>>>>>> >>>>>>>>>> --- >>>>>>>>>> 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 [email protected]. >>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> -- >>>>>>>>> ------------------ >>>>>>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>>>>>> >>>>>>>>> --- >>>>>>>>> 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 [email protected]. >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> Apache Member >>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>>>>>> Committer & Project Lead >>>>>>>> blog <http://notizblog.nierbeck.de/> >>>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>>>>>> >>>>>>>> Software Architect / Project Manager / Scrum Master >>>>>>>> >>>>>>>> -- >>>>>>>> -- >>>>>>>> ------------------ >>>>>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>>>>> >>>>>>>> --- >>>>>>>> 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 [email protected]. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> >>>>>> -- >>>>>> -- >>>>>> ------------------ >>>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>>> >>>>>> --- >>>>>> 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 [email protected]. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Apache Member >>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>>> Committer & Project Lead >>>>> blog <http://notizblog.nierbeck.de/> >>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>>> >>>>> Software Architect / Project Manager / Scrum Master >>>>> >>>>> -- >>>>> -- >>>>> ------------------ >>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>> >>>>> --- >>>>> 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 [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> -- >>>> ------------------ >>>> OPS4J - http://www.ops4j.org - [email protected] >>>> >>>> --- >>>> 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 [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> >>> Apache Member >>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer >>> & Project Lead >>> blog <http://notizblog.nierbeck.de/> >>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>> >>> Software Architect / Project Manager / Scrum Master >>> >>> -- >>> -- >>> ------------------ >>> OPS4J - http://www.ops4j.org - [email protected] >>> >>> --- >>> 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 [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- > -- > ------------------ > OPS4J - http://www.ops4j.org - [email protected] > > --- > 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 [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Apache Member Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead blog <http://notizblog.nierbeck.de/> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> Software Architect / Project Manager / Scrum Master -- -- ------------------ OPS4J - http://www.ops4j.org - [email protected] --- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
