Sounds good... knowing the history, and the future dev plans, especially if they make it into the OSGI spec, is always good :D
I'm taking from your comments that the ExtenderConstants are not long term? It would be better to have an HttpWhiteboardConstants way of doing it? I think all the annotations are there - I will look into seeing what I can do to contribute - still wrapping my head around it all, so I want to have a good understanding of how it's all *supposed* to work. On Monday, June 19, 2017 at 3:07:53 PM UTC-4, Achim Nierbeck wrote: > > Hi, > > thanks for the sample, will see to it. > regarding the comments/remarks, see my comments inline :) > > Achim > > 2017-06-19 14:50 GMT+02:00 Eben Stewart <[email protected] > <javascript:>>: > >> Attached is a working example, the smallest I could get it (project is >> bndtools under Eclipse) >> >> A few points that threw me off, that did not seem clear at first >> (although they make sense now) - a lot of it had to do with the whiteboard >> extensions to get resources and jsp support - I am not aware if the OSGI >> spec even handles those concepts (although the WAR/WAB is). I do like this >> way better, as it doesn't make the bundle "special" in the way in handles >> servlets, jsps and resources... they are all just services. >> > > Just a bit of History, it might make the picture clearer for you. > The Pax Web Whiteboard extender exists since the WAR/WAB part has been > implemented, and at the time beeing that part also moved into the OSGi > spec. If you take a look at it, Pax Web and the Pax Url war URL-Handler are > part of the reference implementation for that part of the OSGi Spec. > So actually the Pax Web Whiteboard extension mechanism is "pretty" old :) > About 2 years ago an Whiteboard extender mechanism had been added to the > OSGi spec, so we working on Pax Web tried to adapt the existing code to the > new spec. > > >> >> 1) The use of HttpContextMapping >> >> - There is no default implementation of this, like JspMapping and >> ResourceMapping, so also cannot use annotations to initialize? >> - How to use HttpContextMapping, DefaultHttpContext (or shared), and >> still be able to get to handleSecurity() >> >> > You can retrieve a DefaultHttpContext Instance from the HttpService (or > WebContainer Service), register it as your own HttpContext. Maybe that > helps to what your are looking for? > > >> 2) No DefaultHttpContext (that can be extended as an annotated Service) >> >> - DefaultHttpContext is package private, so there is no "automatic" >> way to wire in a custom HttpContext (for the handleSecurity() method) >> without doing a lot of boilerplate coding to get the service, create the >> context, etc. Since the DefaultHttpContext handles the getResource() >> correctly in this scenario, it would be nice to be able to extend this >> class, and get it wired in via annotations. >> - I think what I was expecting was to have something similar to >> JspMapping or ResourceMapping that allowed me to specify path and >> contextID >> as annotations, and have the default getResources() handler, while being >> able to override the getSecurity() >> >> >> > Sounds like a new feature, this in itself it worthy a new Issue, oh and we > do love contributions ;) > > >> 3) Required use of "ExtenderConstants.PROPERTY_HTTP_CONTEXT_ID" instead >> of "HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT" in Servlets >> >> - Could not get the context selector to work - only the Extender >> property correctly maps the servlet to the context, as created by >> HttpContextMapping >> >> > See above, about us trying to form the existing Whiteboard extender into > the specified one by the OSGi Spec, so this could be a bug :) > > >> 4) JspMapping and ResourceMapping cannot use annotations to initialize >> >> - Tried using the ExtenderConstants.PROPERTY_HTTP_CONTEXT_ID >> annotation property - won't work - had expected to use Whiteboard, or >> Whiteboard-like annotations >> - Initializing in the constructor does work >> >> Sounds like another feature request. > > > >> Hope all this makes sense - not sure how to translate this into a JIRA >> bug or feature request. >> > > Makes a lot of sense now, you could open different issues / feature > requests for those. Oh and we do love contributions, if I didn't tell you > that before :) > > >> >> In the end, I have a workaround, and a sample you might be able to use to >> make the scenario more clear, so that it might help others. >> > > yeah, thanks will form a sample out of it, so we can actually use it as a > reference for the integration tests for those issues/bugs/feature request > you'll create ;) > >> >> On Saturday, June 17, 2017 at 3:42:51 PM UTC-4, Achim Nierbeck wrote: >>> >>> Hi, >>> >>> thanks, sounds like a good idea. >>> Yep, that's a standard scenario, so it could be a bug you found, >>> especially since the non OSGi spec whiteboard properties seem to work. >>> >>> regards, Achim >>> >>> >>> 2017-06-17 17:17 GMT+02:00 Eben Stewart <[email protected]>: >>> >>>> Sure... let me get something stripped down to the essentials.... >>>> >>>> Maybe show how I got it to work, and how I would have expected it to >>>> work, given the current docs? Esp if I can get it working with all >>>> annotations (via annotations on JspMapping and ResourceMapping classes) - >>>> no Activator class, >>>> >>>> I don't know if it's necessarily a bug, but rather a disconnect or >>>> clarification (possibly just in documentation/samples). >>>> >>>> At a minimum, it might make a good basis for a sample? I can't be the >>>> only one trying to do a Servlet->forward to JSP->Custom tags in jsp. >>>> Pretty standard scenario. >>>> >>>> On Friday, June 16, 2017 at 4:27:52 PM UTC-4, Achim Nierbeck wrote: >>>>> >>>>> Ok, >>>>> >>>>> maybe you can provide a little test project, we could use it as a >>>>> sample and as foundation for an integration test. >>>>> Sounds like you have a special condition we don't have covered right >>>>> now. >>>>> So it might be a bug. >>>>> >>>>> regards, Achim >>>>> >>>>> >>>>> 2017-06-16 22:06 GMT+02:00 Eben Stewart <[email protected]>: >>>>> >>>>>> I'm using 6.0.6.snapshot >>>>>> >>>>>> On Friday, June 16, 2017 at 3:10:56 PM UTC-4, Achim Nierbeck wrote: >>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> are you looking for this? >>>>>>> >>>>>>> https://github.com/ops4j/org.ops4j.pax.web/blob/master/samples/whiteboard-ds/src/main/java/org/ops4j/pax/web/samples/whiteboard/ds/WhiteboardServletWithContext.java >>>>>>> >>>>>>> That should work, which version of Pax Web are you using? >>>>>>> >>>>>>> regards, Achim >>>>>>> >>>>>>> >>>>>>> 2017-06-16 20:25 GMT+02:00 Eben Stewart <[email protected]>: >>>>>>> >>>>>>>> One step further.... >>>>>>>> >>>>>>>> This works: >>>>>>>> >>>>>>>> final HttpContextMapping httpContextMapping = new >>>>>>>> HttpContextMapping() { >>>>>>>> >>>>>>>> static final String HTTP_CONTEXT_ID = "customContext"; >>>>>>>> >>>>>>>> @Override >>>>>>>> public String getHttpContextId() { >>>>>>>> return HTTP_CONTEXT_ID; >>>>>>>> } >>>>>>>> >>>>>>>> @Override >>>>>>>> public String getPath() { >>>>>>>> return "customContext"; >>>>>>>> } >>>>>>>> >>>>>>>> @Override >>>>>>>> public Map<String, String> getParameters() { >>>>>>>> return null; >>>>>>>> } >>>>>>>> >>>>>>>> @Override >>>>>>>> public HttpContext getHttpContext() { >>>>>>>> return null; >>>>>>>> } >>>>>>>> }; >>>>>>>> >>>>>>>> >>>>>>>> Adding that, as well as calling setHttpContextId("customContext") >>>>>>>> on both the resourceMapping and jspMapping. >>>>>>>> >>>>>>>> A servlet also works, but only if I set >>>>>>>> >>>>>>>> ExtenderConstants.PROPERTY_HTTP_CONTEXT_ID >>>>>>>> >>>>>>>> instead of >>>>>>>> >>>>>>>> HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT >>>>>>>> >>>>>>>> Is this expected behavior? >>>>>>>> >>>>>>>> On Friday, June 16, 2017 at 11:19:00 AM UTC-4, Eben Stewart wrote: >>>>>>>>> >>>>>>>>> Ok, still trying to narrow this down to just the JSP >>>>>>>>> functionality.... >>>>>>>>> >>>>>>>>> >>>>>>>>> What I am trying to accomplish: >>>>>>>>> 1) As many DS-based classes, keeping to OSGI standard annotations >>>>>>>>> as much as possible >>>>>>>>> 2) use of @Component instead of @WebServlet, so that wiring to >>>>>>>>> OSGI components can be done in the servlets using primarily >>>>>>>>> annotations >>>>>>>>> (since @WebServlet are not OSGI components, they are not included in >>>>>>>>> the >>>>>>>>> lifecycle - DS annotations do not work) >>>>>>>>> 3) must be able to have separate web context roots for multiple >>>>>>>>> applications on one server >>>>>>>>> 4) and JSPs, preferably with custom tags (using on-the-fly >>>>>>>>> compiling w/Jasper) >>>>>>>>> >>>>>>>>> Here's a real simple setup: a single jsp (/index.jsp) that >>>>>>>>> references the tag "layout.tag" in /WEB-INF/tags - NOT tlds >>>>>>>>> >>>>>>>>> A single Activator class with this start() method: >>>>>>>>> >>>>>>>>> public void start(final BundleContext bundleContext) throws >>>>>>>>> Exception { >>>>>>>>> final DefaultResourceMapping rootResourceMapping = new >>>>>>>>> DefaultResourceMapping(); >>>>>>>>> rootResourceMapping.setAlias("/"); >>>>>>>>> rootResourceMapping.setPath(""); >>>>>>>>> rootResourceMappingRegistration = >>>>>>>>> bundleContext.registerService(ResourceMapping.class, >>>>>>>>> rootResourceMapping, >>>>>>>>> null); >>>>>>>>> >>>>>>>>> final DefaultJspMapping jspMapping = new DefaultJspMapping(); >>>>>>>>> jspMappingRegistration = >>>>>>>>> bundleContext.registerService(JspMapping.class, jspMapping, null); >>>>>>>>> } >>>>>>>>> >>>>>>>>> in root of bundle: >>>>>>>>> >>>>>>>>> - index.jsp >>>>>>>>> - WEB-INF >>>>>>>>> - tags >>>>>>>>> layout.tag >>>>>>>>> >>>>>>>>> This all works as expected. localhost:8080/index.jsp properly >>>>>>>>> shows the jsp page, including the proper use of the custom tag. >>>>>>>>> >>>>>>>>> I guess the real question is, how do you properly setup a custom >>>>>>>>> context root via HttpContext, without the use of a war? >>>>>>>>> >>>>>>>>> What's the best practice for getting JSPs to work under a >>>>>>>>> different ContextRoot (as this also affects session cookie paths)? >>>>>>>>> How >>>>>>>>> would I modify this start() to associate a context root so it works >>>>>>>>> under >>>>>>>>> http://localhost:8080/customcontext/index.jsp? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Friday, June 16, 2017 at 7:09:56 AM UTC-4, Achim Nierbeck wrote: >>>>>>>>>> >>>>>>>>>> Ahh .. I already thought you would be running a war project. >>>>>>>>>> Good to know that that is actually working. >>>>>>>>>> In your case you need to make sure you also have registered the >>>>>>>>>> taglibs as resources to your project. >>>>>>>>>> Take a look at [1], it should be similar. >>>>>>>>>> If that still doesn't seem to work we might hit a bug or >>>>>>>>>> something we didn't test yet fully. >>>>>>>>>> >>>>>>>>>> regards, Achim >>>>>>>>>> >>>>>>>>>> [1] - >>>>>>>>>> https://github.com/ops4j/org.ops4j.pax.web/tree/master/samples/helloworld-jsp >>>>>>>>>> >>>>>>>>>> 2017-06-15 23:06 GMT+02:00 Eben Stewart <[email protected]>: >>>>>>>>>> >>>>>>>>>>> So it seems a little bit more narrow - it *does* work, but only >>>>>>>>>>> when Web-ContextPath is specified in the Manifest (therefore acting >>>>>>>>>>> as a >>>>>>>>>>> war?) >>>>>>>>>>> >>>>>>>>>>> However, if using Whiteboard-DS, this is not used, instead a >>>>>>>>>>> ServletContextHelper with a >>>>>>>>>>> HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH set is used. >>>>>>>>>>> It will >>>>>>>>>>> compile the JSP just fine in the context path, but not find the >>>>>>>>>>> .tag file >>>>>>>>>>> in the tags directory. >>>>>>>>>>> >>>>>>>>>>> Or I am configuring/thinking about this the wrong way, which is >>>>>>>>>>> certainly plausible. >>>>>>>>>>> >>>>>>>>>>> Would it be helpful to attach the project zip? >>>>>>>>>>> >>>>>>>>>>> On Thursday, June 15, 2017 at 2:06:44 PM UTC-4, Achim Nierbeck >>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> hmmm ... guess we need to take a closer look at it. >>>>>>>>>>>> could you open an issue for that? >>>>>>>>>>>> >>>>>>>>>>>> regards, Achim >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2017-06-15 19:49 GMT+02:00 Eben Stewart <[email protected]> >>>>>>>>>>>> : >>>>>>>>>>>> >>>>>>>>>>>>> I tried that - Jasper compiler complains about the path not >>>>>>>>>>>>> starting with /WEB-INF/ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Thursday, June 15, 2017 at 11:20:48 AM UTC-4, Achim >>>>>>>>>>>>> Nierbeck wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I'm not sure, the only thing that crosses my mind right now >>>>>>>>>>>>>> would be the / before the WEB-INF, >>>>>>>>>>>>>> could you give it a try without the slash? >>>>>>>>>>>>>> >>>>>>>>>>>>>> If that still doesn't work out, please open an issue at pax >>>>>>>>>>>>>> web for that. >>>>>>>>>>>>>> OTH might want to checkout how the jsf and the primefaces >>>>>>>>>>>>>> samples are doing this. [1] >>>>>>>>>>>>>> >>>>>>>>>>>>>> regards, Achim >>>>>>>>>>>>>> >>>>>>>>>>>>>> [1] - >>>>>>>>>>>>>> https://github.com/ops4j/org.ops4j.pax.web/tree/master/samples/war-jsf-primefaces >>>>>>>>>>>>>> >>>>>>>>>>>>>> 2017-06-14 20:57 GMT+02:00 Eben Stewart < >>>>>>>>>>>>>> [email protected]>: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Very simple example... tried this under standard WAR/Tomcat >>>>>>>>>>>>>>> environment, and it works fine. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> In pax-web, using extended DefaultJspMapping class for JSPs, >>>>>>>>>>>>>>> directory structure of jar shows index.jsp in the root, and >>>>>>>>>>>>>>> layout.tag >>>>>>>>>>>>>>> in /WEB-INF/tags. It definitely sees the jsps (with the custom >>>>>>>>>>>>>>> tag, they >>>>>>>>>>>>>>> work fine) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> index.jsp: >>>>>>>>>>>>>>> <!DOCTYPE html> >>>>>>>>>>>>>>> <%@taglib prefix="my" tagdir="/WEB-INF/tags"%> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> <my:layout> >>>>>>>>>>>>>>> <jsp:attribute name="body"> >>>>>>>>>>>>>>> <div> >>>>>>>>>>>>>>> Test >>>>>>>>>>>>>>> </div> >>>>>>>>>>>>>>> </jsp:attribute> >>>>>>>>>>>>>>> </my:layout> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> /WEB-INF/tags/layout.tag: >>>>>>>>>>>>>>> <!DOCTYPE html> >>>>>>>>>>>>>>> <%@tag description="LayoutTemplate" pageEncoding="UTF-8"%> >>>>>>>>>>>>>>> <%@attribute name="body" fragment="true" %> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> <html> >>>>>>>>>>>>>>> <body> >>>>>>>>>>>>>>> <jsp:invoke fragment="body"/> >>>>>>>>>>>>>>> </body> >>>>>>>>>>>>>>> </html> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> However, when I attempt to load the page: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> org.apache.jasper.JasperException: /index.jsp (line: 4, column: >>>>>>>>>>>>>>> 0) No tag "layout" defined in tag library imported with prefix >>>>>>>>>>>>>>> "my" >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Am I missing a directive somewhere? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> ------------------ >>>>>>>>>>>>>>> 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. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> >>>>>>>>>>>> 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. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> 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. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> 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. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> 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. >>>> >>> >>> >>> >>> -- >>> >>> 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] <javascript:> >> >> --- >> 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] <javascript:>. >> 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.
