This seems to be the most promising approach. Repackage the WAB as a WAR
then deploy it at runtime as shown below. The URL parameters will assist
the OSGI Web URL Handler in automagically producing a WAB + MANIFEST.MF
with the correct web-contextpath header. Only I need to do it using the
bundleContext.installBundle(String location) API instead of in the console.
I also need to sort out the URL of the built war itself. Does this sound
correct?



karaf@root()> bundle:install -s "webbundle:
http://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Web-ContextPath=/sample
"



>From <https://karaf.apache.org/manual/latest/webcontainer>

https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.war.html#i3100445






On Sun, Feb 12, 2023 at 4:29 PM Andrew Lienhard <alienh...@gmail.com> wrote:

> I have a WAB in a karaf container that I need to deploy using a context
> path based on environment variables (k8s helm). Currently its
> web-ContextPath is hardcoded in a pom.xml, so it's compile-time only which
> won't work for our deployments.
>
> I'm wondering if it's possible to register this WAB dynamically as one
> would a servlet using HttpService and/or pax-web. I've been digging through
> the documentation and examples but so far I haven't been able to work it
> out. Is this doable? If so, are there any examples of this? Ultimately, I
> don't care what form the service takes as long as it can serve static files
> from a directory.
>
> clip from the pom.xml
>       <plugin>
>                 <groupId>org.apache.felix</groupId>
>                 <artifactId>maven-bundle-plugin</artifactId>
>                 <extensions>true</extensions>
>                 <configuration>
>                     <instructions>
>                         <_wab>src/main/webapp</_wab>
>
> <Include-Resource>{maven-resources},OSGI-INF/blueprint/blueprint.xml=${project.build.directory}/classes/OSGI-INF/blueprint/blueprint.xml</Include-Resource>
>
> <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
>                         <Embed-Directory>WEB-INF/lib</Embed-Directory>
>                         <Web-ContextPath>/</Web-ContextPath>
>                     </instructions>
>                 </configuration>
>             </plugin>
>
> --
> --
> ------------------
> 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/2e75aacf-be77-4753-a05c-126df2b7f487n%40googlegroups.com
> <https://groups.google.com/d/msgid/ops4j/2e75aacf-be77-4753-a05c-126df2b7f487n%40googlegroups.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/CADGfNtp_02pRaMrG7Oj0wJuYKA3O3p0QS6DHa3XSChA0qJNUFA%40mail.gmail.com.

Reply via email to