You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2011/07/19 23:20:22 UTC

svn commit: r1148540 - /geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java

Author: gawor
Date: Tue Jul 19 21:20:21 2011
New Revision: 1148540

URL: http://svn.apache.org/viewvc?rev=1148540&view=rev
Log:
GERONIMO-6084: Option for deploying WABs synchronously

Modified:
    geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java

Modified: geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java?rev=1148540&r1=1148539&r2=1148540&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java (original)
+++ geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java Tue Jul 19 21:20:21 2011
@@ -62,9 +62,11 @@ import org.slf4j.LoggerFactory;
 @GBean
 public class WebContainerExtender implements GBeanLifecycle {
 
-
     private static final Logger LOGGER = LoggerFactory.getLogger(WebContainerExtender.class);
 
+    private static final String SYNCHRONOUS_HEADER = "Synchronous-Deploy";
+    private static final String SYNCHRONOUS_PROPERTY = "org.apache.geronimo.osgi.web.extender.synchronous";
+    
     private final Kernel kernel;
     private final BundleContext bundleContext;
     private final Environment defaultEnvironment;
@@ -307,10 +309,25 @@ public class WebContainerExtender implem
             this.waiting = new LinkedList<WebApplication>();
         }
         
+        private boolean isSynchronous(Bundle bundle) {
+            String property = (String) bundle.getHeaders().get(SYNCHRONOUS_HEADER);           
+            if (property == null) {
+                property = bundle.getBundleContext().getProperty(SYNCHRONOUS_PROPERTY);
+            }
+            return Boolean.parseBoolean(property);
+        }
+        
         public synchronized Collection<Long> register(WebApplication webApp) {
             if (deployed == null) {
                 deployed = webApp;
-                deployed.schedule();
+                Bundle bundle = webApp.getBundle();
+                if (isSynchronous(bundle)) {
+                    LOGGER.debug("Deploying web application bundle {} synchronously.", bundle.getSymbolicName());
+                    deployed.run();
+                } else {
+                    LOGGER.debug("Deploying web application bundle {} asynchronously.", bundle.getSymbolicName());
+                    deployed.schedule();
+                }
                 return Collections.emptyList();
             } else {
                 waiting.add(webApp);



Re: svn commit: r1148540 - /geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java

Posted by Kevan Miller <ke...@gmail.com>.
On Jul 25, 2011, at 1:48 PM, Jacek Laskowski wrote:

> On Mon, Jul 25, 2011 at 7:14 PM, Jarek Gawor <jg...@gmail.com> wrote:
>> It's Geronimo-specific.
> 
> Would you elaborate on its use case? Where would a user appreciate its benefits?

I'm catching up on emails... Did Jacek's questions get answered?

--kevan

Re: svn commit: r1148540 - /geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java

Posted by Jarek Gawor <jg...@gmail.com>.
Oops, sorry. I forgot to reply (thanks Kevan for the reminder). The
idea is simple. By default the web application bundles (WABs) are
deployed asynchronously. So when somebody calls bundle.start() and the
method returns the WAB might still be deploying. And to figure when
the WAB finished deploying you would have to listen to certain events
or check for presence of certain services in the registry (for
example, you want to know when it's ok to start sending requests to
the WAB). With the synchronous deploy bundle.start() blocks until the
WAB is deployed so right away you know when you can send the requests.

Hope that answers you questions,

Jarek

On Mon, Jul 25, 2011 at 1:48 PM, Jacek Laskowski <ja...@japila.pl> wrote:
> On Mon, Jul 25, 2011 at 7:14 PM, Jarek Gawor <jg...@gmail.com> wrote:
>> It's Geronimo-specific.
>
> Would you elaborate on its use case? Where would a user appreciate its benefits?
>
> Jacek
>
> --
> Jacek Laskowski
> Java EE, functional languages and IBM WebSphere - http://blog.japila.pl
> Warszawa JUG conference = Confitura (formerly Javarsovia) :: http://confitura.pl
>

Re: svn commit: r1148540 - /geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java

Posted by Jacek Laskowski <ja...@japila.pl>.
On Mon, Jul 25, 2011 at 7:14 PM, Jarek Gawor <jg...@gmail.com> wrote:
> It's Geronimo-specific.

Would you elaborate on its use case? Where would a user appreciate its benefits?

Jacek

-- 
Jacek Laskowski
Java EE, functional languages and IBM WebSphere - http://blog.japila.pl
Warszawa JUG conference = Confitura (formerly Javarsovia) :: http://confitura.pl

Re: svn commit: r1148540 - /geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java

Posted by Jarek Gawor <jg...@gmail.com>.
It's Geronimo-specific.

Jarek

On Mon, Jul 25, 2011 at 1:07 PM, Jacek Laskowski <ja...@japila.pl> wrote:
> On Tue, Jul 19, 2011 at 11:20 PM,  <ga...@apache.org> wrote:
>
>> +    private static final String SYNCHRONOUS_HEADER = "Synchronous-Deploy";
>> +    private static final String SYNCHRONOUS_PROPERTY = "org.apache.geronimo.osgi.web.extender.synchronous";
>
> Hi,
>
> What's the aim of the header/property? Is this Geronimo-specific or
> described by a spec? Which one? I can't find it in entOSGi.
>
> Jacek
>
> --
> Jacek Laskowski
> Java EE, functional languages and IBM WebSphere - http://blog.japila.pl
> Warszawa JUG conference = Confitura (formerly Javarsovia) :: http://confitura.pl
>

Re: svn commit: r1148540 - /geronimo/server/trunk/plugins/wab/geronimo-web-extender/src/main/java/org/apache/geronimo/osgi/web/extender/WebContainerExtender.java

Posted by Jacek Laskowski <ja...@japila.pl>.
On Tue, Jul 19, 2011 at 11:20 PM,  <ga...@apache.org> wrote:

> +    private static final String SYNCHRONOUS_HEADER = "Synchronous-Deploy";
> +    private static final String SYNCHRONOUS_PROPERTY = "org.apache.geronimo.osgi.web.extender.synchronous";

Hi,

What's the aim of the header/property? Is this Geronimo-specific or
described by a spec? Which one? I can't find it in entOSGi.

Jacek

-- 
Jacek Laskowski
Java EE, functional languages and IBM WebSphere - http://blog.japila.pl
Warszawa JUG conference = Confitura (formerly Javarsovia) :: http://confitura.pl