dev@glassfish.java.net

About the GLASSFISH-16651

From: Tang Yong <tangyong_at_cn.fujitsu.com>
Date: Fri, 06 Jul 2012 16:05:54 +0900

Dear Sahoo
CC: Hong Zhang

I have made a prototype of GLASSFISH-16651 and put the modified files
into https://github.com/tangyong/GLASSFISH-16651 .

Currently, the prototype can work for me. If using the following way,
plain vanilla WAR can be wraped WAB(osgi rfc#66) and can be accessed
from Brawser.

1 asadmin start-domain

2 asadmin deploy --type=wab
  e:\test_sample1.war?Web-ContextPath=/test_sample1"

3 access "http://localhost:8080/test_sample1/" and "Hello! Servlet3.0
Sample1111111111" appeared!

In addtion, after teleneting localhost 6666, executing "lb" on shell,
and will find the following bundle info:

" 274|Active | 1|org.glassfish.fighterfish.autogenerated_0 (0.0.0)"

[My Design Idea]
The critical point is to find the integration point between the deploy
moudle and fighterfish\module\osgi-web-container moudle. So, I made a
new subclass of GenericHandler called(OSGiWABArchiveHandler) in
org\glassfish\extras\osgicontainer. Then, in the "expand" method, add
the following logic:

1) getting WebBundleURLStreamHandlerService service from osgi registry
2) while the deploy process is expanding war, rewrite the war's Manifest

If having time, wish you can see it and I will continue to contribute it
according your suggestions.

BTW: when I made the prototype, I found that some dependency declarings
of pom file in the fighterfish\module(etc.osgi-web-container) did not
keep consistent with GFv4 main/pom.xml, such as:

        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>web-glue</artifactId>
        </dependency>

In GFv4, the groupId of web-glue has changed into org.glassfish.main.web.

--Best Regard!
--Tang