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());
+ }
+ }
+
}