 ~~ 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 1.0.3 is the newest version. Significant changes have been made,
 a general refactoring for maintainability was performed and basicScala support added.
 Note, this is the first release, which is Java 6 and MyFaces 2.1.x 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.asc.md5} extscript-myfaces20-bundle-1.0.3.jar.asc.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.0 (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.asc.md5} myfaces20-example-1.0.3.war.asc.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-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 will support java 5 and MyFaces 1.x from version 1.0.3 onwards
 only Java 6 and JSF 2.1 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.asc.md5} extscript-myfaces12-bundle-1.0.2.jar.asc.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.asc.md5} extscript-myfaces20-bundle-1.0.2.jar.asc.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.asc.md5} myfaces12-example-1.0.2.war.asc.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.asc.md5} myfaces20-example-1.0.2.war.asc.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}} |
*-------------------------+---------+----------+-----------+


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.asc.md5} extscript-myfaces12-bundle-1.0.1.jar.asc.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.asc.md5} extscript-myfaces20-bundle-1.0.1.jar.asc.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.asc.md5} myfaces12-example-1.0.1.war.asc.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.asc.md5} myfaces20-example-1.0.1.war.asc.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.asc.md5} extscript-myfaces12-bundle-1.0.jar.asc.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.asc.md5} extscript-myfaces20-bundle-1.0.jar.asc.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.asc.md5} myfaces12-example-1.0.war.asc.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.asc.md5} myfaces20-example-1.0.war.asc.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}}

  
