 ~~ 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.
 
 ------
Download Apache MyFaces Extension Scripting
 ------

Download Apache MyFaces Extension Scripting

Apache MyFaces Ext-Scripting 1.0.4

 Apache MyFaces Ext-Scripting 1.0.4 is the newest version. It has added Spring and JRuby  support.

 Releasenotes can be found  {{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310964&version=12323447  } here}}

*-------------------------+---------+----------+-----------+
|                         | Server | Checksum | Signature |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 2.1 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.5/extscript-myfaces20-bundle-1.0.5.jar} extscript-myfaces20-bundle-1.0.5.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.5/extscript-myfaces20-bundle-1.0.5.jar.md5} extscript-myfaces20-bundle-1.0.5.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.5/extscript-myfaces20-bundle-1.0.5.jar.asc}extscript-myfaces20-bundle-1.0.5.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script OpenWebbeans support library | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-cdi/1.0.5/extscript-cdi-1.0.5.jar}extscript-cdi-1.0.5.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-cdi/1.0.5/extscript-cdi-1.0.5.jar.md5}extscript-cdi-1.0.5.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-cdi/1.0.5/extscript-cdi-1.0.5.jar.asc }extscript-cdi-1.0.5.jar.asc }} |
*-------------------------+---------+----------+-----------+
| Ext-Script Spring support library | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-spring/1.0.5/extscript-spring-1.0.5.jar}extscript-spring-1.0.5.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-spring/1.0.5/extscript-spring-1.0.5.jar.md5}extscript-spring-1.0.5.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-spring/1.0.5/extscript-spring-1.0.5.jar.asc }extscript-spring-1.0.5.jar.asc }} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 2.1 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.5/myfaces20-example-1.0.5.war} myfaces20-example-1.0.5.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.5/myfaces20-example-1.0.5.war.md5} myfaces20-example-1.0.5.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.5/myfaces20-example-1.0.5.war.asc}myfaces20-example-1.0.5.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank Application JSF2 (war)      | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.5/myfaces20-extscript-helloworld-1.0.5.war} myfaces20-extscript-helloworld-1.0.5.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.5/myfaces20-extscript-helloworld-1.0.5.war.md5} myfaces20-extscript-helloworld-1.0.5.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.5/myfaces20-extscript-helloworld-1.0.5.war.asc} myfaces20-extscript-helloworld-1.0.5.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank CDI Application (war) | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces21-extscript-cdi/1.0.5/myfaces21-extscript-cdi-1.0.5.war} myfaces21-extscript-cdi-1.0.5.war }} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces21-extscript-cdi/1.0.5/myfaces21-extscript-cdi-1.0.5.war.md5}myfaces21-extscript-cdi-1.0.5.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces21-extscript-cdi/1.0.5/myfaces21-extscript-cdi-1.0.5.war.asc}myfaces21-extscript-cdi-1.0.5.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank Spring Application (war) | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/spring-example/1.0.5/spring-example-1.0.5.war} spring-example-1.0.5.war }} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/spring-example/1.0.5/spring-example-1.0.5.war.md5}spring-example-1.0.5.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/spring-example/1.0.5/spring-example-1.0.5.war.asc}spring-example-1.0.5.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script sources      |    {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.5/extscript-root-1.0.5-source-release.zip}extscript-root-1.0.5-source-release.zip}}     |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.5/extscript-root-1.0.5-source-release.zip.md5} extscript-root-1.0.5-source-release.zip.md5 }}       |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.5/extscript-root-1.0.5-source-release.zip.asc}extscript-root-1.0.5-source-release.zip.asc}}       |
*-------------------------+---------+----------+-----------+


Apache MyFaces Ext-Scripting 1.0.4

 Apache MyFaces Ext-Scripting 1.0.4 is the version. With OpenWebbeans support and reenabled Windows support.

 Releasenotes can be found  {{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310964&version=12320341 } here}}

*-------------------------+---------+----------+-----------+
|                         | Server | Checksum | Signature |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 2.1 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.4/extscript-myfaces20-bundle-1.0.4.jar} extscript-myfaces20-bundle-1.0.4.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.4/extscript-myfaces20-bundle-1.0.4.jar.md5} extscript-myfaces20-bundle-1.0.4.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.4/extscript-myfaces20-bundle-1.0.4.jar.asc}extscript-myfaces20-bundle-1.0.4.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script OpenWebbeans support library | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-cdi/1.0.4/extscript-cdi-1.0.4.jar}extscript-cdi-1.0.4.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-cdi/1.0.4/extscript-cdi-1.0.4.jar.md5}extscript-cdi-1.0.4.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-cdi/1.0.4/extscript-cdi-1.0.4.jar.asc }extscript-cdi-1.0.4.jar.asc }} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 2.1 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.4/myfaces20-example-1.0.4.war} myfaces20-example-1.0.4.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.4/myfaces20-example-1.0.4.war.md5} myfaces20-example-1.0.4.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.4/myfaces20-example-1.0.4.war.asc}myfaces20-example-1.0.4.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank Application JSF2 (war)      | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.4/myfaces20-extscript-helloworld-1.0.4.war} myfaces20-extscript-helloworld-1.0.4.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.4/myfaces20-extscript-helloworld-1.0.4.war.md5} myfaces20-extscript-helloworld-1.0.4.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.4/myfaces20-extscript-helloworld-1.0.4.war.asc} myfaces20-extscript-helloworld-1.0.4.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank CDI Application (war) | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces21-extscript-cdi/1.0.4/myfaces21-extscript-cdi-1.0.4.war} myfaces21-extscript-cdi-1.0.4.war }} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces21-extscript-cdi/1.0.4/myfaces21-extscript-cdi-1.0.4.war.md5}myfaces21-extscript-cdi-1.0.4.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces21-extscript-cdi/1.0.4/myfaces21-extscript-cdi-1.0.4.war.asc}myfaces21-extscript-cdi-1.0.4.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script sources      |    {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.4/extscript-root-1.0.4-source-release.zip}extscript-root-1.0.4-source-release.zip}}     |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.4/extscript-root-1.0.4-source-release.zip.md5} extscript-root-1.0.4-source-release.zip.md5 }}       |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.4/extscript-root-1.0.4-source-release.zip.asc}extscript-root-1.0.4-source-release.zip.asc}}       |
*-------------------------+---------+----------+-----------+




Apache MyFaces Ext-Scripting 1.0.3

 is a general refactoring release for maintainability was performed and basic Scala support has been added.
 Note, this is the first release, which is Java 6 and MyFaces 2.1.6+ and Servlet 3.0 only. For older versions of
 MyFaces and Java 5, download Ext-Scripting 1.0.2.

  Release notes can be found {{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12320165&styleName=Text&projectId=12310964}here}}

*-------------------------+---------+----------+-----------+
|                         | Server | Checksum | Signature |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 2.1 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.3/extscript-myfaces20-bundle-1.0.3.jar} extscript-myfaces20-bundle-1.0.3.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.3/extscript-myfaces20-bundle-1.0.3.jar.md5} extscript-myfaces20-bundle-1.0.3.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.3/extscript-myfaces20-bundle-1.0.3.jar.asc}extscript-myfaces20-bundle-1.0.3.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 2.1 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.3/myfaces20-example-1.0.3.war} myfaces20-example-1.0.3.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.3/myfaces20-example-1.0.3.war.md5} myfaces20-example-1.0.3.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.3/myfaces20-example-1.0.3.war.asc}myfaces20-example-1.0.3.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank Application JSF2 (war)      | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.3/myfaces20-extscript-helloworld-1.0.3.war} myfaces20-extscript-helloworld-1.0.3.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.3/myfaces20-extscript-helloworld-1.0.3.war.md5} myfaces20-extscript-helloworld-1.0.3.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.3/myfaces20-extscript-helloworld-1.0.3.war.asc} myfaces20-extscript-helloworld-1.0.3.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script sources      |    {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.3/extscript-root-1.0.3-source-release.zip}extscript-root-1.0.3-source-release.zip}}     |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.3/extscript-root-1.0.3-source-release.zip.md5} extscript-root-1.0.3-source-release.zip.md5 }}       |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.3/extscript-root-1.0.3-source-release.zip.asc}extscript-root-1.0.3-source-release.zip.asc}}       |
*-------------------------+---------+----------+-----------+


Ext-Scripting 1.0.2 (latest version supporting MyFaces 1.2.x)

 Apache MyFaces Extension Scripting now has a 1.0.2 bugfix release which reenables compatibility with newer MyFaces
 versions:
 Apache MyFaces is distributed as jar archives for inclusion and as war archives for the
 examples.

 Note: this is the last release, which supports Java 5 and MyFaces 1.2.x from version 1.0.3 onwards
 only Java 6 and JSF 2.1 and Servlet 3.0 will be supported.

 Use the links below to download


  Release notes can be found {{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310964&version=12316367}here}}

*-------------------------+---------+----------+-----------+
|                         | Server | Checksum | Signature |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 1.2 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0.2/extscript-myfaces12-bundle-1.0.2.jar} extscript-myfaces12-bundle-1.0.2.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0.2/extscript-myfaces12-bundle-1.0.2.jar.md5} extscript-myfaces12-bundle-1.0.2.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0.2/extscript-myfaces12-bundle-1.0.2.jar.asc}extscript-myfaces12-bundle-1.0.2.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 2.1 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.2/extscript-myfaces20-bundle-1.0.2.jar} extscript-myfaces20-bundle-1.0.2.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.2/extscript-myfaces20-bundle-1.0.2.jar.md5} extscript-myfaces20-bundle-1.0.2.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.2/extscript-myfaces20-bundle-1.0.2.jar.asc}extscript-myfaces20-bundle-1.0.2.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 1.2 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0.2/myfaces12-example-1.0.2.war} myfaces12-example-1.0.2.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0.2/myfaces12-example-1.0.2.war.md5} myfaces12-example-1.0.2.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0.2/myfaces12-example-1.0.2.war.asc}myfaces12-example-1.0.2.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 2.0 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.2/myfaces20-example-1.0.2.war} myfaces20-example-1.0.2.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.2/myfaces20-example-1.0.2.war.md5} myfaces20-example-1.0.2.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.2/myfaces20-example-1.0.2.war.asc}myfaces20-example-1.0.2.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank Application JSF2 (war)      | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.2/myfaces20-extscript-helloworld-1.0.2.war} myfaces20-extscript-helloworld-1.0.2.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.2/myfaces20-extscript-helloworld-1.0.2.war.md5} myfaces20-extscript-helloworld-1.0.2.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.2/myfaces20-extscript-helloworld-1.0.2.war.asc} myfaces20-extscript-helloworld-1.0.2.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script sources      |    {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.2/extscript-root-1.0.2-source-release.zip}extscript-root-1.0.2-source-release.zip}}     |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.2/extscript-root-1.0.2-source-release.zip.md5} extscript-root-1.0.2-source-release.zip.md5 }}       |   {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-root/1.0.2/extscript-root-1.0.2-source-release.zip.asc}extscript-root-1.0.2-source-release.zip.asc}}       |
*-------------------------+---------+----------+-----------+


Older Versions


 Apache MyFaces Extension Scripting now has a 1.0.1 bugfix release which reenables compatibility with newer MyFaces
 versions:
 Apache MyFaces is distributed as jar archives for inclusion and as war archives for the
 examples.


 Use the links below to download


  Release notes can be found {{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310964&version=12316367}here}}

*-------------------------+---------+----------+-----------+
|                         | Server | Checksum | Signature |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 1.2 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0.1/extscript-myfaces12-bundle-1.0.1.jar} extscript-myfaces12-bundle-1.0.1.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0.1/extscript-myfaces12-bundle-1.0.1.jar.md5} extscript-myfaces12-bundle-1.0.1.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0.1/extscript-myfaces12-bundle-1.0.1.jar.asc}extscript-myfaces12-bundle-1.0.1.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 2.0 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.1/extscript-myfaces20-bundle-1.0.1.jar} extscript-myfaces20-bundle-1.0.1.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.1/extscript-myfaces20-bundle-1.0.1.jar.md5} extscript-myfaces20-bundle-1.0.1.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0.1/extscript-myfaces20-bundle-1.0.1.jar.asc}extscript-myfaces20-bundle-1.0.1.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 1.2 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0.1/myfaces12-example-1.0.1.war} myfaces12-example-1.0.1.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0.1/myfaces12-example-1.0.1.war.md5} myfaces12-example-1.0.1.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0.1/myfaces12-example-1.0.1.war.asc}myfaces12-example-1.0.1.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 2.0 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.1/myfaces20-example-1.0.1.war} myfaces20-example-1.0.1.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.1/myfaces20-example-1.0.1.war.md5} myfaces20-example-1.0.1.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0.1/myfaces20-example-1.0.1.war.asc}myfaces20-example-1.0.1.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank Application JSF2 (war)      | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.1/myfaces20-extscript-helloworld-1.0.1.war} myfaces20-extscript-helloworld-1.0.1.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.1/myfaces20-extscript-helloworld-1.0.1.war.md5} myfaces20-extscript-helloworld-1.0.1.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0.1/myfaces20-extscript-helloworld-1.0.1.war.asc} myfaces20-extscript-helloworld-1.0.1.war.asc}} |
*-------------------------+---------+----------+-----------+


 As of now the project has an initial 1.0 release.
 The initial release will only run with Apache MyFaces up to 2.0.2.
 A subsequent release will follow soon which will support later versions
 of Apache MyFaces.

 Apache MyFaces is distributed as jar archives for inclusion and as war archives for the
 examples.


 Use the links below to download


  Release notes can be found {{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10600&version=12316153}here}}

*-------------------------+---------+----------+-----------+
|                         | Server | Checksum | Signature |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 1.2 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0/extscript-myfaces12-bundle-1.0.jar} extscript-myfaces12-bundle-1.0.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0/extscript-myfaces12-bundle-1.0.jar.md5} extscript-myfaces12-bundle-1.0.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces12-bundle/1.0/extscript-myfaces12-bundle-1.0.jar.asc}extscript-myfaces12-bundle-1.0.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script MyFaces 2.0 bundle(jar)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0/extscript-myfaces20-bundle-1.0.jar} extscript-myfaces20-bundle-1.0.jar}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0/extscript-myfaces20-bundle-1.0.jar.md5} extscript-myfaces20-bundle-1.0.jar.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/extscript-myfaces20-bundle/1.0/extscript-myfaces20-bundle-1.0.jar.asc}extscript-myfaces20-bundle-1.0.jar.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 1.2 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0/myfaces12-example-1.0.war} myfaces12-example-1.0.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0/myfaces12-example-1.0.war.md5} myfaces12-example-1.0.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces12-example/1.0/myfaces12-example-1.0.war.asc}myfaces12-example-1.0.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Demo Application MyFaces 2.0 (war)     | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0/myfaces20-example-1.0.war} myfaces20-example-1.0.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0/myfaces20-example-1.0.war.md5} myfaces20-example-1.0.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-example/1.0/myfaces20-example-1.0.war.asc}myfaces20-example-1.0.war.asc}} |
*-------------------------+---------+----------+-----------+
| Ext-Script Blank Application JSF2 (war)      | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0/myfaces20-extscript-helloworld-1.0.war} myfaces20-extscript-helloworld-1.0.war}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0/myfaces20-extscript-helloworld-1.0.war.md5} myfaces20-extscript-helloworld-1.0.war.md5}} | {{{https://repository.apache.org/content/repositories/releases/org/apache/myfaces/extensions/scripting/myfaces20-extscript-helloworld/1.0/myfaces20-extscript-helloworld-1.0.war.asc} myfaces20-extscript-helloworld-1.0.war.asc}} |
*-------------------------+---------+----------+-----------+


Manual Checkout and Build

 For manual checkout and building instructions of the Ext-Scripting Trunk  {{{installation.html}Ext-Scripting installation page}}


Latest source code from SVN repository

  If you want to use the latest Apache MyFaces Ext-Scripting features, the source code is under
  version control with SVN.  Click {{{./source-repository.html} here }}
  for information on how to use the ASF MyFaces Ext-Scripting SVN Repository.

  Building instructions can be found under {{{./installation.html}Ext-Scripting installation page}}

Latest source code from SVN repository

    If you want to use the latest Apache MyFaces Test features, the source code is under
    version control with SVN.  Click {{{source-repository.html} here }}
    for information on how to use the ASF Test SVN Repository.

Verifying checksums

    It is essential that you verify the integrity of the downloaded
    files using the PGP and MD5 signatures. MD5 verification ensures the
    file was not corrupted during the download process. PGP verification
    ensures that the file came from a certain person.

    To verify the MD5 signature on the files, you need to use a program
    called <<<md5>>> or <<<md5sum>>>, which is
    included in many UNIX distributions.  It is also available as part of
    {{{http://www.gnu.org/software/textutils/textutils.html}GNU Textutils}}.
    Windows users can get binary md5 programs from {{{http://www.fourmilab.ch/md5/}here}},
    {{{http://www.pc-tools.net/win32/freeware/console/}here}}, or
    {{{http://www.slavasoft.com/fsum/}here}}.

Verifying signatures

  	PGP verification ensures that the file came from a certain person.  We strongly recommend
	  you verify your downloads with both PGP and MD5.

	The PGP signatures can be verified using {{{http://www.pgpi.org/}PGP}} or
	{{{http://www.gnupg.org/}GPG}}.  First download the Apache MyFaces
	{{{http://www.apache.org/dist/myfaces/KEYS}KEYS}}	as well as the <<<asc>>> signature file
	for the particular distribution. It is important that you get these files from the ultimate
	trusted source - the main ASF distribution site, rather than from a mirror.
	Then verify the signatures using ...

	  <<<
	  % pgpk -a KEYS
	  % pgpv extscript-myfaces20-bundle-1.0.3.jar.asc extscript-myfaces20-bundle-1.0.3.jar
	  >>>

	  <or>

	  <<<
	  % pgp -ka KEYS
	  % pgp extscript-myfaces20-bundle-1.0.3.jar.asc extscript-myfaces20-bundle-1.0.3.jar
	  >>>

	  <or>

	  <<<
  	% gpg --import KEYS
	  % gpg --verify extscript-myfaces20-bundle-1.0.3.jar.asc extscript-myfaces20-bundle-1.0.3.jar
	  >>>

