EXTSCRIPT-107: CDI Kickstarting in OWB, this works now as expected
git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk@1325241 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainer.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainer.java
index facc216..ebd1188 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainer.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainer.java
@@ -23,6 +23,7 @@
import javax.enterprise.inject.spi.BeanManager;
import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
import javax.servlet.http.HttpSession;
/**
@@ -42,12 +43,12 @@
* for Beans and extensions available.
* The container might throw a DeploymentException or similar on startup.
*/
- void boot();
+ void boot(ServletContextEvent context);
/**
* This will shutdown the underlying CDI container.
*/
- void shutdown();
+ void shutdown(ServletContextEvent context);
/**
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java
index b1a4a25..0cf5d77 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ReloadingListener.java
@@ -28,6 +28,7 @@
import org.apache.myfaces.extensions.scripting.core.engine.ThrowAwayClassloader;
import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
import javax.servlet.http.HttpServletRequest;
/**
@@ -70,9 +71,9 @@
container.getContextControl(req.getServletContext(),
req.getSession()).stopContexts();
- //container.shutdown();
+ container.shutdown(new ServletContextEvent(req.getServletContext()));
- //CdiContainerLoader.getCdiContainer().boot();
+ CdiContainerLoader.getCdiContainer().boot(new ServletContextEvent(req.getServletContext()));
container.getContextControl(req.getServletContext(),
req.getSession()).startContexts();
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContainerControl.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContainerControl.java
index d2766be..60f2bfb 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContainerControl.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContainerControl.java
@@ -28,6 +28,7 @@
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
import javax.servlet.http.HttpSession;
import java.util.Set;
@@ -54,15 +55,15 @@
}
@Override
- public synchronized void boot()
+ public synchronized void boot(ServletContextEvent servletContext)
{
init();
- lifecycle.startApplication(null);
+ lifecycle.startApplication(servletContext);
}
@Override
- public synchronized void shutdown()
+ public synchronized void shutdown(ServletContextEvent servletContext)
{
if (ctxCtrl != null)
{
@@ -72,7 +73,7 @@
if (lifecycle != null)
{
- lifecycle.stopApplication(null);
+ lifecycle.stopApplication(servletContext);
}
}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/ThrowAwayClassloader.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/ThrowAwayClassloader.java
index 5f56a37..299973c 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/ThrowAwayClassloader.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/ThrowAwayClassloader.java
@@ -55,6 +55,18 @@
}
@Override
+ protected Class<?> findClass(String s) throws ClassNotFoundException
+ {
+ return super.findClass(s);
+ }
+
+ @Override
+ protected synchronized Class<?> loadClass(String s, boolean b) throws ClassNotFoundException
+ {
+ return super.loadClass(s, b);
+ }
+
+ @Override
/**
* load called either if the class is not loaded at all
* or if the class has been recompiled (check upfront)
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
index 7620110..2855ff5 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/monitor/ClassResource.java
@@ -98,7 +98,7 @@
public void setTainted(boolean value)
{
//if (isTainted()) return;
- if (value && !tainted)
+ if (value)
{
WeavingContext.getInstance().markLastTaint();
//TODO add logging event here
diff --git a/extscript-examples/cdi-example/src/main/java/org/apache/myfaces/extension/scripting/cdi/JavaHello.java b/extscript-examples/cdi-example/src/main/webapp/WEB-INF/java/JavaHello.java
similarity index 95%
rename from extscript-examples/cdi-example/src/main/java/org/apache/myfaces/extension/scripting/cdi/JavaHello.java
rename to extscript-examples/cdi-example/src/main/webapp/WEB-INF/java/JavaHello.java
index 09810d3..72cc656 100644
--- a/extscript-examples/cdi-example/src/main/java/org/apache/myfaces/extension/scripting/cdi/JavaHello.java
+++ b/extscript-examples/cdi-example/src/main/webapp/WEB-INF/java/JavaHello.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.myfaces.extension.scripting.cdi;
+
import javax.inject.Named;