 ~~ 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 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.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.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.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 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.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}}

  
