You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2009/09/16 11:06:39 UTC

svn commit: r815677 - in /myfaces/extensions/scripting/trunk: core/core/src/main/java/org/apache/myfaces/scripting/core/ core/core/src/main/java/org/apache/myfaces/scripting/core/util/ core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/ ...

Author: werpu
Date: Wed Sep 16 09:06:38 2009
New Revision: 815677

URL: http://svn.apache.org/viewvc?rev=815677&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-1
fixed a minor npe which occurred when the filter is not set, now
instead a warning is issued and the reloading subsystem is disabled.

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java   (with props)
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/ajaxTest.xhtml
Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml
    myfaces/extensions/scripting/trunk/examples/pom.xml

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java?rev=815677&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java Wed Sep 16 09:06:38 2009
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+package org.apache.myfaces.scripting.core;
+
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
+import org.apache.myfaces.scripting.api.ScriptingConst;
+import org.apache.myfaces.scripting.core.util.ClassUtils;
+
+import java.io.Serializable;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ * a dummy weaver in case the filter has not been set
+ */
+
+public class DummyWeaver implements Serializable, ScriptingWeaver {
+    public void appendCustomScriptPath(String scriptPaths) {
+    }
+
+    public Object reloadScriptingInstance(Object o) {
+        return o;  
+    }
+
+    public Class reloadScriptingClass(Class aclass) {
+        return aclass;  
+    }
+
+    public Class loadScriptingClassFromName(String className) {
+        return ClassUtils.forName(className);  
+    }
+
+    public int getScriptingEngine() {
+        return ScriptingConst.ENGINE_TYPE_ALL;  
+    }
+
+    public boolean isDynamic(Class clazz) {
+        return false;  
+    }
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java?rev=815677&r1=815676&r2=815677&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java Wed Sep 16 09:06:38 2009
@@ -21,7 +21,11 @@
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
 import org.apache.myfaces.scripting.api.DynamicClassIdentifier;
+import org.apache.myfaces.scripting.api.BaseWeaver;
 import org.apache.myfaces.scripting.core.MethodLevelReloadingHandler;
+import org.apache.myfaces.scripting.core.DummyWeaver;
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
@@ -65,6 +69,12 @@
     }
 
     public static ScriptingWeaver getWeaver() {
+        ScriptingWeaver weaver = (ScriptingWeaver) _weaverHolder.get();
+        if(weaver == null) {
+            Log log = LogFactory.getLog(ProxyUtils.class);
+            log.warn("Scripting Weaver is not set. Disabling script reloading subsystem. Make sure you have the scripting servlet filter enabled in your web.xml");
+            _weaverHolder.set(new DummyWeaver());    
+        }
         return (ScriptingWeaver) _weaverHolder.get();
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=815677&r1=815676&r2=815677&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java Wed Sep 16 09:06:38 2009
@@ -73,6 +73,7 @@
      */
     protected void mapProperties(Object target, Object src) {
         try {
+            //TODO add dynamic property reloading hook here
             BeanUtils.copyProperties(target, src);
         } catch (IllegalAccessException e) {
             log.debug(e);

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml?rev=815677&r1=815676&r2=815677&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/faces-config.xml Wed Sep 16 09:06:38 2009
@@ -27,6 +27,8 @@
         <managed-bean-class>org.apache.myfaces.blank.HelloWorldController</managed-bean-class>
         <managed-bean-scope>request</managed-bean-scope>
     </managed-bean>
+
+
     <managed-bean>
         <managed-bean-name>testbean</managed-bean-name>
         <managed-bean-class>org.apache.myfaces.groovyloader.test.TestBean</managed-bean-class>
@@ -64,22 +66,19 @@
         <managed-bean-scope>application</managed-bean-scope>
     </managed-bean>
 
-    <!--
     <application>
-        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
         <navigation-handler>
             org.apache.myfaces.groovyloader.test.TestNavigationHandler
         </navigation-handler>
 
     </application>
-    -->
 
     <lifecycle>
-
-        <phase-listener>
+       <phase-listener>
             org.apache.myfaces.groovyloader.test.TestPhaseListener
         </phase-listener>
     </lifecycle>
+    
 
     <!-- navigation rules for helloWorld.jsp -->
     <navigation-rule>
@@ -99,6 +98,7 @@
         </navigation-case>
     </navigation-rule>
 
+
     <validator>
         <validator-id>org.apache.myfaces.groovyloader.test.TestValidator</validator-id>
         <validator-class>org.apache.myfaces.groovyloader.test.TestValidator</validator-class>
@@ -119,4 +119,5 @@
             <renderer-class>org.apache.myfaces.groovyloader.test.TestRenderer</renderer-class>
         </renderer>
     </render-kit>
+
 </faces-config>
\ No newline at end of file

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml?rev=815677&r1=815676&r2=815677&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/web.xml Wed Sep 16 09:06:38 2009
@@ -24,6 +24,7 @@
     <description>MyProject web.xml</description>
 
 
+  
     <context-param>
         <description>
             Initializes the plugins for our groovy handlers
@@ -31,7 +32,6 @@
         <param-name>org.apache.myfaces.FACES_INIT_PLUGINS</param-name>
         <param-value>org.apache.myfaces.scripting.servlet.StartupServletContextPluginChainLoader</param-value>
     </context-param>
-   
 
 
     <context-param>
@@ -39,7 +39,7 @@
             of the deployment dir
         </description>
         <param-name>org.apache.myfaces.scripting.groovy.LOADER_PATHS</param-name>
-        <param-value>/Users/werpu2/development/workspace/extensions-scripting/examples/src/main/webapp/WEB-INF/groovy
+        <param-value>/Users/werpu2/development/workspace/extensions-scripting3/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy
         </param-value>
     </context-param>
 
@@ -49,10 +49,10 @@
             of the deployment dir
         </description>
         <param-name>org.apache.myfaces.scripting.java.LOADER_PATHS</param-name>
-        <param-value>/Users/werpu2/development/workspace/extensions-scripting/examples/src/main/webapp/WEB-INF/java
+        <param-value>/Users/werpu2/development/workspace/extensions-scripting3/examples/myfaces20-example/src/main/webapp/WEB-INF/java
         </param-value>
     </context-param>
-    
+
 
     <context-param>
         <description>State saving method: "client" or "server" (= default)
@@ -61,7 +61,6 @@
         <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
         <param-value>server</param-value>
     </context-param>
-
     <context-param>
         <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
         <param-value>/WEB-INF/groovy-taglib.xml</param-value>
@@ -69,7 +68,6 @@
 
 
 
-
     <filter>
         <filter-name>scritpingFilter</filter-name>
         <filter-class>org.apache.myfaces.scripting.servlet.ScriptingServletFilter</filter-class>
@@ -82,8 +80,7 @@
         <dispatcher>INCLUDE</dispatcher>
         <dispatcher>ERROR</dispatcher>
     </filter-mapping>
-
-
+  
     <!-- Listener, to allow Jetty serving MyFaces apps -->
     <!--    <listener>
             <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>

Added: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/ajaxTest.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/ajaxTest.xhtml?rev=815677&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/ajaxTest.xhtml (added)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/ajaxTest.xhtml Wed Sep 16 09:06:38 2009
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns = "http://www.w3.org/1999/xhtml" xmlns:ui = "http://java.sun.com/jsf/facelets"
+      xmlns:f = "http://java.sun.com/jsf/core" xmlns:h = "http://java.sun.com/jsf/html"
+     >
+<head>
+<title>Hello World</title>
+</head>
+<body>
+<ui:composition template = "/template.xhtml">
+
+
+	<ui:define name = "body">
+
+
+		<h:form id = "form">
+            <h:outputScript name = "jsf.js" library = "javax.faces" target = "head" />
+       	</h:form>
+	</ui:define>
+</ui:composition>
+</body>
+</html>

Modified: myfaces/extensions/scripting/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/pom.xml?rev=815677&r1=815676&r2=815677&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/pom.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/pom.xml Wed Sep 16 09:06:38 2009
@@ -5,8 +5,8 @@
     <artifactId>examples</artifactId>
     <packaging>pom</packaging>
     <name>examples submodule</name>
-	<version>1.0-SNAPSHOT</version>
-	
+    <version>1.0-SNAPSHOT</version>
+
     <description>
         groovy myfaces core engine meta project
     </description>
@@ -17,10 +17,10 @@
         <version>1.0-SNAPSHOT</version>
     </parent>
 
-   <modules>
-     <module>myfaces12-example</module>
-	<module>myfaces20-example</module>
-	 <module>spring-example</module>
-   </modules>
+    <modules>
+        <module>myfaces12-example</module>
+        <module>myfaces20-example</module>
+        <module>spring-example</module>
+    </modules>
 
 </project>