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

Reply via email to