EXTSCRIPT-107: cdi works

git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk@1325240 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainerLoader.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainerLoader.java
index cc778e6..0d56c97 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainerLoader.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/api/CdiContainerLoader.java
@@ -49,14 +49,14 @@
         }
         else
         {
-            throw new IllegalStateException("Could not find an implementation of " + org.apache.deltaspike.cdise.api.CdiContainer.class.getName() +
+            throw new IllegalStateException("Could not find an implementation of " + CdiContainer.class.getName() +
                 " available in the classpath!");
         }
 
         if (cdiIt.hasNext())
         {
             String foundContainers = getContainerDetails();
-            throw new IllegalStateException("Too many implementations of " + org.apache.deltaspike.cdise.api.CdiContainer.class.getName() +
+            throw new IllegalStateException("Too many implementations of " + CdiContainer.class.getName() +
                 " found in the classpath! Details: " + foundContainers);
         }
 
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 4edbda2..b1a4a25 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
@@ -20,6 +20,7 @@
 package org.apache.myfaces.extensions.scripting.cdi.core;
 
 import org.apache.myfaces.extensions.scripting.cdi.api.CdiContainerLoader;
+import org.apache.myfaces.extensions.scripting.cdi.owb.OpenWebBeansContainerControl;
 import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEvent;
 import org.apache.myfaces.extensions.scripting.core.api.eventhandling.WeavingEventListener;
 import org.apache.myfaces.extensions.scripting.core.api.eventhandling.events.RefreshBeginEvent;
@@ -58,23 +59,27 @@
                 //TODO plug reloadable classloader in here temporarily
                 //as context classloader, then restart the container
                 //then restore the old classloader
-                ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
-                ClassLoader tempClassLoader = new ThrowAwayClassloader(oldClassLoader);
-                Thread.currentThread().setContextClassLoader(tempClassLoader);
+                //ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+                //ClassLoader tempClassLoader = new ThrowAwayClassloader(oldClassLoader);
+                //Thread.currentThread().setContextClassLoader(tempClassLoader);
                 try
                 {
-                    CdiContainerLoader.getCdiContainer().getContextControl(req.getServletContext(),
+                    OpenWebBeansContainerControl container = (OpenWebBeansContainerControl) CdiContainerLoader
+                            .getCdiContainer();
+                    container.init();
+
+                    container.getContextControl(req.getServletContext(),
                             req.getSession()).stopContexts();
-                    CdiContainerLoader.getCdiContainer().shutdown();
+                    //container.shutdown();
 
-                    CdiContainerLoader.getCdiContainer().boot();
+                    //CdiContainerLoader.getCdiContainer().boot();
 
-                    CdiContainerLoader.getCdiContainer().getContextControl(req.getServletContext(),
+                    container.getContextControl(req.getServletContext(),
                             req.getSession()).startContexts();
                 }
                 finally
                 {
-                    Thread.currentThread().setContextClassLoader(oldClassLoader);
+                    //Thread.currentThread().setContextClassLoader(oldClassLoader);
                 }
             }
         }
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 9172688..d2766be 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
@@ -49,11 +49,15 @@
         return lifecycle.getBeanManager();
     }
 
+    public synchronized void init() {
+        lifecycle = WebBeansContext.getInstance().getService(ContainerLifecycle.class);
+    }
+
     @Override
     public synchronized void boot()
     {
 
-        lifecycle = WebBeansContext.getInstance().getService(ContainerLifecycle.class);
+        init();
         lifecycle.startApplication(null);
     }
 
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContextControl.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContextControl.java
index ca6a895..147f894 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContextControl.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/owb/OpenWebBeansContextControl.java
@@ -44,7 +44,7 @@
 public class OpenWebBeansContextControl implements ContextControl
 {
 
-    private static final Logger LOG = Logger.getLogger(org.apache.deltaspike.cdise.owb.OpenWebBeansContextControl.class.getName());
+    private static final Logger LOG = Logger.getLogger(OpenWebBeansContextControl.class.getName());
 
     private HttpSession session = null;
     private ServletContext servletContext  = null;
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java
index 1e39ab0..cf9e5ba 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/startup/ExtScriptStartupPlugin.java
@@ -56,7 +56,8 @@
      */
     public void postInit(ServletContextEvent evt)
     {
-        WeavingContext.getInstance().addListener(new ReloadingListener());
+        evt.getServletContext().setAttribute("ReloadingListener", new ReloadingListener());
+        WeavingContext.getInstance().addListener((ReloadingListener) evt.getServletContext().getAttribute("ReloadingListener"));
     }
 
     /**
diff --git a/extscript-core-root/extscript-cdi/src/main/resources/META-INF/beans.xml b/extscript-core-root/extscript-cdi/src/main/resources/META-INF/beans.xml
new file mode 100644
index 0000000..75d0933
--- /dev/null
+++ b/extscript-core-root/extscript-cdi/src/main/resources/META-INF/beans.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<beans xmlns="http://java.sun.com/xml/ns/javaee"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
+</beans>
\ No newline at end of file