You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/06/25 23:40:20 UTC

svn commit: r958122 - in /myfaces/core/trunk: api/pom.xml api/src/assembler/jsfscripts-uncompressed-full-compiler.xml impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java

Author: lu4242
Date: Fri Jun 25 21:40:20 2010
New Revision: 958122

URL: http://svn.apache.org/viewvc?rev=958122&view=rev
Log:
MYFACES-2714 Include uncompressed jsf.js file and use it when development mode is used

Added:
    myfaces/core/trunk/api/src/assembler/jsfscripts-uncompressed-full-compiler.xml
Modified:
    myfaces/core/trunk/api/pom.xml
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java

Modified: myfaces/core/trunk/api/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/pom.xml?rev=958122&r1=958121&r2=958122&view=diff
==============================================================================
--- myfaces/core/trunk/api/pom.xml (original)
+++ myfaces/core/trunk/api/pom.xml Fri Jun 25 21:40:20 2010
@@ -80,10 +80,11 @@
                             <excludes>
                                 <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
                                 <exclude>**/myfaces/_impl/_util/_UnitTest.js</exclude>
+                                <exclude>**/myfaces/_impl/_util/_ExtLang.js</exclude>
                             </excludes>
                         </configuration>
                     </execution>
-                     <execution>
+                    <execution>
                         <id>compile-uncompressed</id>
                         <goals>
                             <goal>compile</goal>
@@ -93,7 +94,7 @@
                             <descriptor>${basedir}/src/assembler/jsfscripts-uncompressed-compiler.xml</descriptor>
                             <outputDirectory>${basedir}/target/classes/META-INF/internal-resources/javax.faces/</outputDirectory>
                             <excludes>
-                                <exclude>**/myfaces/_impl/core/jsf_impl.js</exclude>
+                                <exclude>**/myfaces/_impl/core/Impl.js</exclude>
                                 <exclude>**/myfaces/_impl/_util/*</exclude>
                                 <exclude>**/myfaces/_impl/xhrCore/*</exclude>
                                 <exclude>**/myfaces/api/*</exclude>
@@ -101,6 +102,21 @@
                         </configuration>
                     </execution>
                     <execution>
+                        <id>compile-uncompressed-full</id>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <descriptor>${basedir}/src/assembler/jsfscripts-uncompressed-full-compiler.xml</descriptor>
+                            <outputDirectory>${basedir}/target/classes/META-INF/internal-resources/javax.faces/</outputDirectory>
+                            <excludes>
+                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
+                                <exclude>**/myfaces/_impl/_util/_UnitTest.js</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+                    <execution>
                         <id>compress</id>
                         <goals>
                             <goal>compress</goal>
@@ -109,7 +125,10 @@
 
                         <configuration>
                             <scripts>target/classes/META-INF/resources/javax.faces/</scripts>
-                            <excludes><exclude>jsf-uncompressed.js</exclude></excludes>
+                            <excludes>
+                                <exclude>jsf-uncompressed.js</exclude>
+                                <exclude>jsf-uncompressed-full.js</exclude>
+                            </excludes>
                             <compressor>yahooUI</compressor>
                         </configuration>
                     </execution>

Added: myfaces/core/trunk/api/src/assembler/jsfscripts-uncompressed-full-compiler.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/api/src/assembler/jsfscripts-uncompressed-full-compiler.xml?rev=958122&view=auto
==============================================================================
--- myfaces/core/trunk/api/src/assembler/jsfscripts-uncompressed-full-compiler.xml (added)
+++ myfaces/core/trunk/api/src/assembler/jsfscripts-uncompressed-full-compiler.xml Fri Jun 25 21:40:20 2010
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!--
+ * 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.
+-->
+<assembler>
+    <scripts>
+        <!--
+            Assembly for our javascripts
+            if you want to include them manually use:
+
+            
+            <script type="text/javascript" src="./myfaces/_impl/core/_Runtime.js"></script>
+            <script type = "text/javascript" src = "myfaces/_impl/_util/_Lang.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/_util/_Queue.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/_util/_ListenerQueue.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/_util/_Dom.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/_util/_HtmlStripper.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/xhrCore/_AjaxUtils.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/xhrCore/_AjaxRequestQueue.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/xhrCore/_AjaxRequest.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/xhrCore/_AjaxResponse.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/xhrCore/_Transport.js"></script>
+            <script type = "text/javascript" src = "./myfaces/_impl/core/Impl.js"></script>
+            <script type = "text/javascript" src = "./myfaces/api/jsf.js"></script>
+        -->
+
+        <script>
+            <fileName>jsf-uncompressed-full.js</fileName>
+            <includes>
+                <include>**/_impl/core/_Runtime.js</include>
+                <include>**/_impl/_util/_Lang.js</include>
+                <include>**/_impl/_util/_ExtLang.js</include>
+                <include>**/_impl/_util/_Queue.js</include>
+                <include>**/_impl/_util/_ListenerQueue.js</include>
+                <include>**/_impl/_util/_Dom.js</include>
+                <include>**/_impl/_util/_HtmlStripper.js</include>
+                <include>**/_impl/xhrCore/_AjaxUtils.js</include>
+                <include>**/_impl/xhrCore/_AjaxRequestQueue.js</include>
+                <include>**/_impl/xhrCore/_AjaxRequest.js</include>
+                <include>**/_impl/xhrCore/_AjaxResponse.js</include>
+                <include>**/_impl/xhrCore/_Transports.js</include>
+                <include>**/_impl/core/Impl.js</include>
+                <include>**/api/jsf.js</include>
+            </includes>
+        </script>
+    </scripts>
+</assembler>

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java?rev=958122&r1=958121&r2=958122&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/resource/InternalClassLoaderResourceLoader.java Fri Jun 25 21:40:20 2010
@@ -21,6 +21,10 @@ package org.apache.myfaces.resource;
 import java.io.InputStream;
 import java.net.URL;
 
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
 import org.apache.myfaces.shared_impl.util.ClassUtils;
 
 /**
@@ -30,9 +34,22 @@ import org.apache.myfaces.shared_impl.ut
 public class InternalClassLoaderResourceLoader extends ResourceLoader
 {
 
+    /**
+     * If this param is true and the project stage is development mode,
+     * the source javascript files will be loaded separately instead have
+     * all in just one file, to preserve line numbers and make javascript
+     * debugging of jsf.js more simple.
+     */
+    @JSFWebConfigParam(since="2.0.1",defaultValue="false",expectedValues="true,false")
+    public static final String USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS = "org.apache.myfaces.USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS";
+    
+    private final boolean _useMultipleJsFilesForJsfUncompressedJs;
+
     public InternalClassLoaderResourceLoader(String prefix)
     {
         super(prefix);
+        _useMultipleJsFilesForJsfUncompressedJs = _getBooleanParameter(FacesContext.getCurrentInstance().getExternalContext(),
+                USE_MULTIPLE_JS_FILES_FOR_JSF_UNCOMPRESSED_JS, null, false);
     }
 
     @Override
@@ -81,8 +98,15 @@ public class InternalClassLoaderResource
                 org.apache.myfaces.shared_impl.renderkit.html.util.ResourceUtils.JAVAX_FACES_LIBRARY_NAME.equals(libraryName) &&
                 org.apache.myfaces.shared_impl.renderkit.html.util.ResourceUtils.JSF_JS_RESOURCE_NAME.equals(resourceName))
         {
-            return new AliasResourceMetaImpl(prefix, libraryName, libraryVersion,
+            if (_useMultipleJsFilesForJsfUncompressedJs)
+            {
+                return new AliasResourceMetaImpl(prefix, libraryName, libraryVersion,
                     resourceName, resourceVersion, org.apache.myfaces.shared_impl.renderkit.html.util.ResourceUtils.JSF_UNCOMPRESSED_JS_RESOURCE_NAME);
+            }
+            else
+            {
+                return new AliasResourceMetaImpl(prefix, libraryName, libraryVersion, resourceName, resourceVersion, "jsf-uncompressed-full.js");
+            }
         }
         else if (libraryName != null && libraryName.startsWith("org.apache.myfaces.core"))
         {
@@ -126,4 +150,41 @@ public class InternalClassLoaderResource
         }
         return false;
     }
+
+    private String _getStringParameter(ExternalContext context, String name, String deprecatedName)
+    {
+        String param = context.getInitParameter(name);
+        
+        if ((param == null) && (deprecatedName != null))
+        {
+            param = context.getInitParameter (deprecatedName);
+        }
+        
+        if (param == null)
+        {
+            return null;
+        }
+
+        param = param.trim();
+        if (param.length() == 0)
+        {
+            return null;
+        }
+
+        return param;
+    }
+
+    private boolean _getBooleanParameter(ExternalContext context, String name, String deprecatedName, boolean defaultValue)
+    {
+        String param = _getStringParameter(context, name, deprecatedName);
+        if (param == null)
+        {
+            return defaultValue;
+        }
+        else
+        {
+            return Boolean.parseBoolean(param.toLowerCase());
+        }
+    }
+
 }