You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2010/07/01 13:26:24 UTC

svn commit: r959619 - in /openwebbeans/trunk: webbeans-impl/src/main/java/org/apache/webbeans/config/ webbeans-impl/src/main/java/org/apache/webbeans/util/ webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ webbeans-web/src/main/java/org/apache/webbea...

Author: gerdogdu
Date: Thu Jul  1 11:26:23 2010
New Revision: 959619

URL: http://svn.apache.org/viewvc?rev=959619&view=rev
Log:
When JSF related plugins put into the server classpath, it is used by the container even if no OWB runtime exist. Adding some marker that provide we run in OWB environment.

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java
    openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java
    openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JSFUtil.java
    openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/OwbApplicationFactory.java
    openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/WebBeansPhaseListener.java
    openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/servlet/WebBeansConfigurationListener.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java?rev=959619&r1=959618&r2=959619&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/OpenWebBeansConfiguration.java Thu Jul  1 11:26:23 2010
@@ -114,6 +114,8 @@ public class OpenWebBeansConfiguration
     /**EL Adaptor*/
     public static final String EL_ADAPTOR_CLASS = "org.apache.webbeans.spi.adaptor.ELAdaptor";
     
+    public static final String SYSTEM_PROPERTY_OWB_APPLICATION = "org.apache.webbeans.application.isOwbApplication";
+    
     /**
      * Gets singleton instance.
      * @return singleton instance
@@ -335,6 +337,12 @@ public class OpenWebBeansConfiguration
         
     }
     
+    public boolean isOwbApplication()
+    {
+        String value = SecurityUtil.doPrivilegedGetSystemProperty(SYSTEM_PROPERTY_OWB_APPLICATION, "false");
+        return Boolean.valueOf(value);
+    }
+    
     /**
      * Gets jsp property.
      * @return true if jsp

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java?rev=959619&r1=959618&r2=959619&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java Thu Jul  1 11:26:23 2010
@@ -190,6 +190,11 @@ public class SecurityUtil
         return value;
     }
 
+    public static void doPrivilegedSetSystemProperty(String propertyName, String value)
+    {
+        AccessController.doPrivileged(new PrivilegedActionForSetProperty(propertyName, value));
+    }
+
     public static Properties doPrivilegedGetSystemProperties()
     {
         return AccessController.doPrivileged(SYSTEM_PROPERTY_ACTION);
@@ -215,6 +220,27 @@ public class SecurityUtil
         
     }
     
+    protected static class PrivilegedActionForSetProperty implements PrivilegedAction<Object>
+    {
+        private final String propertyName;
+        
+        private final String value;
+
+        protected PrivilegedActionForSetProperty(String propertyName, String value)
+        {
+            this.propertyName = propertyName;
+            this.value = value;
+        }
+        
+        @Override
+        public String run()
+        {
+            System.setProperty(propertyName, value);
+            return null;            
+        }
+        
+    }    
+    
     protected static class PrivilegedActionGetSystemProperties implements PrivilegedAction<Properties>
     {
         

Modified: openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java?rev=959619&r1=959618&r2=959619&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java (original)
+++ openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/ConversationAwareViewHandler.java Thu Jul  1 11:26:23 2010
@@ -43,6 +43,11 @@ public class ConversationAwareViewHandle
     @Override
     public String getActionURL(FacesContext context, String viewId)
     {
+        if(!JSFUtil.isOwbApplication())
+        {
+            return delegate.getActionURL(context, viewId);
+        }
+        
         String url = delegate.getActionURL(context, viewId);
 
         ConversationManager conversationManager = ConversationManager.getInstance();
@@ -62,6 +67,12 @@ public class ConversationAwareViewHandle
     public String getRedirectURL(FacesContext context, String viewId,
             Map<String, List<String>> parameters, boolean includeViewParams)
     {
+        
+        if(!JSFUtil.isOwbApplication())
+        {
+            return delegate.getRedirectURL(context, viewId, parameters, includeViewParams);
+        }
+        
         String url = delegate.getRedirectURL(context, viewId, parameters, includeViewParams);
         int indexOfQuery = url.indexOf('?');
         if (indexOfQuery > 0) 

Modified: openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JSFUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JSFUtil.java?rev=959619&r1=959618&r2=959619&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JSFUtil.java (original)
+++ openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/JSFUtil.java Thu Jul  1 11:26:23 2010
@@ -26,6 +26,7 @@ import javax.faces.context.ExternalConte
 import javax.faces.context.FacesContext;
 import javax.servlet.http.HttpSession;
 
+import org.apache.webbeans.config.OpenWebBeansConfiguration;
 import org.apache.webbeans.util.Asserts;
 
 
@@ -185,4 +186,9 @@ public final class JSFUtil
         String cid = getJSFRequestParameter("cid");
         return cid;
     }
+    
+    public static boolean isOwbApplication()
+    {
+        return OpenWebBeansConfiguration.getInstance().isOwbApplication();
+    }
 }

Modified: openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/OwbApplicationFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/OwbApplicationFactory.java?rev=959619&r1=959618&r2=959619&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/OwbApplicationFactory.java (original)
+++ openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/OwbApplicationFactory.java Thu Jul  1 11:26:23 2010
@@ -35,6 +35,11 @@ public class OwbApplicationFactory exten
     @Override
     public Application getApplication()
     {
+        if(!JSFUtil.isOwbApplication())
+        {
+            return wrapped.getApplication();
+        }
+        
         if(wrappedApplication == null)
         {
             wrappedApplication = new OwbApplication(wrapped.getApplication());

Modified: openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/WebBeansPhaseListener.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/WebBeansPhaseListener.java?rev=959619&r1=959618&r2=959619&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/WebBeansPhaseListener.java (original)
+++ openwebbeans/trunk/webbeans-jsf/src/main/java/org/apache/webbeans/jsf/WebBeansPhaseListener.java Thu Jul  1 11:26:23 2010
@@ -52,6 +52,11 @@ public class WebBeansPhaseListener imple
         if (phaseEvent.getPhaseId().equals(PhaseId.RENDER_RESPONSE) ||
                 JSFUtil.getCurrentFacesContext().getResponseComplete())
         {
+            if(!JSFUtil.isOwbApplication())
+            {
+                return;
+            }
+            
             ConversationManager conversationManager = ConversationManager.getInstance();
             Conversation conversation = conversationManager.getConversationBeanReference();
 
@@ -76,7 +81,7 @@ public class WebBeansPhaseListener imple
      */
     public void beforePhase(PhaseEvent phaseEvent)
     {
-        if (phaseEvent.getPhaseId().equals(PhaseId.RESTORE_VIEW))
+        if (phaseEvent.getPhaseId().equals(PhaseId.RESTORE_VIEW) && JSFUtil.isOwbApplication())
         {
             //It looks for cid parameter in the JSF request.
             //If request contains cid, then it must restore conversation

Modified: openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/servlet/WebBeansConfigurationListener.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/servlet/WebBeansConfigurationListener.java?rev=959619&r1=959618&r2=959619&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/servlet/WebBeansConfigurationListener.java (original)
+++ openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/servlet/WebBeansConfigurationListener.java Thu Jul  1 11:26:23 2010
@@ -31,10 +31,12 @@ import javax.servlet.http.HttpSessionEve
 import javax.servlet.http.HttpSessionListener;
 
 import org.apache.webbeans.config.OWBLogConst;
+import org.apache.webbeans.config.OpenWebBeansConfiguration;
 import org.apache.webbeans.conversation.ConversationManager;
 import org.apache.webbeans.lifecycle.LifecycleFactory;
 import org.apache.webbeans.logger.WebBeansLogger;
 import org.apache.webbeans.spi.ContainerLifecycle;
+import org.apache.webbeans.util.SecurityUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
 /**
@@ -50,7 +52,7 @@ public class WebBeansConfigurationListen
     
     /**Manages the container lifecycle*/
     private ContainerLifecycle lifeCycle = null;
-
+    
     /**
      * Default constructor
      */
@@ -68,7 +70,8 @@ public class WebBeansConfigurationListen
 
         try
         {
-                this.lifeCycle.startApplication(event);   
+                this.lifeCycle.startApplication(event);  
+                SecurityUtil.doPrivilegedSetSystemProperty(OpenWebBeansConfiguration.SYSTEM_PROPERTY_OWB_APPLICATION, "true");
         }
         catch (Exception e)
         {
@@ -77,6 +80,7 @@ public class WebBeansConfigurationListen
         }
     }
     
+    
     /**
      * {@inheritDoc}
      */
@@ -84,6 +88,7 @@ public class WebBeansConfigurationListen
     {
         this.lifeCycle.stopApplication(event);
         this.lifeCycle = null;
+        SecurityUtil.doPrivilegedSetSystemProperty(OpenWebBeansConfiguration.SYSTEM_PROPERTY_OWB_APPLICATION, "false");
     }
 
     /**