Hello Andreas,
sorry if I just jump in, but what about this:
* a lightweight "core" WAB containing the basics for a web portal
* "plugin" WABs with a defined structure that provide additional
resources as well as functionality
Now you have several options to implement this (there is nothing
comparable inside official specs up to now AFAIK):
1.) Extender pattern:
With your "core" WAB you also register an Extender that picks up those
"plugin" bundles and does all the magic for registering stuff by partly
using official mechanisms/APIs but also allows to do any custom stuff.
2.) Custom Services:
Let's say you want to provide the following with your new "plugin" bundles:
* static resources (CSS, JavaScript, HTML, images, ...)
* functionality (JSF, JSP, Servlets, CDI beans, EJBs, ...)
Now I could imagine to have a custom "PluginService" interface which
identifies "plugins" which contains methods to get everything you need
to access.
In the "core" WAB you just listen to those services becoming available
or going away and register/unregister appropriately.
E.g. if you then need to build up a web navigation menu or the sitemap,
you would simply iterate over all registered services and retrieve the
information you need - purely on-demand - or cache at registration time.
The same would apply to anything else.
The "PluginService" interface, of course, depends on what you actually
need but can be adopted to almost anything.
Although it would be nice to have something like this at hands with
official APIs you could also have a look if there are frameworks
available that enable you to describe such things, so that you don't
have to write everything on your own.
...just an idea...
Cheers,
Ancoron
On 01/17/2012 10:48 AM, Andreas Klotz wrote:
Hello Peter,
that is what we have. The WAB serves the static content and provides
access to the web framework. Static resources belonging to modularized
business
units (as separate bundles) are attached as fragments to the WAB and so
cannot be activated/
deactivated independently.
We would prefer to deliver the resources with the bundles implementing
the controllers of the web GUI. So that we have a full featured presentation
layer bundle with controller logic and views with its needed static
resources.
Best regards,
Andreas Klotz
A WAB with only static content does not suffice?
Kind regards,
Peter Kriens
On 12 jan. 2012, at 09:27, Andreas Klotz wrote:
Hi everybody,
we have built a modular application platform using OSGi.
To us it is important not only to build modules in the
service layer but also in the GUI layer.
Our GUI is a web application and we decided to deploy
it as a WAB. We are using ZK Ria as web application framework.
Everything works fine with regard to reference other
bundles from our WAB up to the controller layer. But
when it comes to serve static resources from the WAB
we are not very happy with our solution.
We would like to separate the static resources also
in bundles analogue to the modularization of the business
and controller layer. But WAB does only support loading
resources from the WAB itself and its fragment bundles.
So for every business module we build a fragment bundle
with its appendant resources such as HTML, CSS, JPGs ...
But using fragments leads to loosing dynamic since we
cannot activate/deactivate the fragments. But we would
like to activate/deactivate, install/uninstall modules
at run time.
Servlet specification 3.0 allows loading of resources
from jar files in WEB-INF/lib if they are located
in META-INF/resources inside the jar. Since imported
packages of the WAB are (nearly) treated like jars in WEB-INF/lib
in a servlet container I was wondering if I can import
META-INF/resources from another bundle and load resources
from it. Of course one has to use a servlet 3.0 conform
container.
I have not found anything about this topic in the WAB
spec. Some experiments with Gemini 2.0 were not successful.
I have read that GlassFish supports this approach.
Should the WAB spec cover this topic? Or is it up to
the implementers such as Gemini or PAX web to deal
with it? Or is there another solution for loading
static resources from modules?
Best regards,
Andreas Klotz
--
phone: +49 (221) 222 896 24
fax: +49 (221) 222 896 11
email: [email protected] <mailto:[email protected]>
------------------------------------------------------------------------
*n - d e s i g n G m b H*
www.n-design.de <http://www.n-design.de/>
Alpenerstr. 16
D-50825 Köln
Amtsgericht Köln HRB 33766 B
Geschäftsführer Andy Kohl
_______________________________________________
OSGi Developer Mail List
[email protected] <mailto:[email protected]>
https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev