diff --git a/src/site/mdtext/configentries.mdtext b/src/site/mdtext/configentries.mdtext
index 5cf02f7..4aed9b2 100644
--- a/src/site/mdtext/configentries.mdtext
+++ b/src/site/mdtext/configentries.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
 #Navigation Top
  [&lt;&lt;Back to the appendix: Setup steps](./setupSteps.html)
  or
diff --git a/src/site/mdtext/configentries102.mdtext b/src/site/mdtext/configentries102.mdtext
index 8543e19..02dfce4 100644
--- a/src/site/mdtext/configentries102.mdtext
+++ b/src/site/mdtext/configentries102.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
 #Navigation Top
  [&lt;&lt;Back to the appendix: Setup steps](./setupSteps.html)
  or
@@ -90,36 +107,36 @@
  
 #Normal configuration entries
  all configuration entries except for the scripting filter follow the context parameter convention
-        <context-param>
-            <description>
-                Initializes the plugins for our scripting support
-            </description>
-            <param-name>org.apache.myfaces.FACES_INIT_PLUGINS</param-name>
-            <param-value>org.apache.myfaces.extensions.scripting.servlet.StartupServletContextPluginChainLoader</param-value>
-        </context-param>
+                <context-param>
+                    <description>
+                        Initializes the plugins for our scripting support
+                    </description>
+                    <param-name>org.apache.myfaces.FACES_INIT_PLUGINS</param-name>
+                    <param-value>org.apache.myfaces.extensions.scripting.servlet.StartupServletContextPluginChainLoader</param-value>
+                </context-param>
              
              
  
 #Scripting Filter
- <a name="ScriptingFilter" />
+ []()
  All configuration entries are context parameters, the only exception is the scripting filter which is a servlet filter
  The scripting filter differs in its configuration by having to provide a servlet filter tag and a pattern:
-            <!-- ======================================================================================
-                    Scripting Filter
-                    Second step to enable Ext-Scripting
-                 ====================================================================================== -->
-            <filter>
-                <filter-name>scriptingFilter</filter-name>
-                <filter-class>org.apache.myfaces.extensions.scripting.servlet.ScriptingServletFilter</filter-class>
-            </filter>
-            <filter-mapping>
-                <filter-name>scriptingFilter</filter-name>
-                <url-pattern>/*</url-pattern>
-                <dispatcher>REQUEST</dispatcher>
-                <dispatcher>FORWARD</dispatcher>
-                <dispatcher>INCLUDE</dispatcher>
-                <dispatcher>ERROR</dispatcher>
-            </filter-mapping>
+                <!-- ======================================================================================
+                        Scripting Filter
+                        Second step to enable Ext-Scripting
+                     ====================================================================================== -->
+                <filter>
+                    <filter-name>scriptingFilter</filter-name>
+                    <filter-class>org.apache.myfaces.extensions.scripting.servlet.ScriptingServletFilter</filter-class>
+                </filter>
+                <filter-mapping>
+                    <filter-name>scriptingFilter</filter-name>
+                    <url-pattern>/*</url-pattern>
+                    <dispatcher>REQUEST</dispatcher>
+                    <dispatcher>FORWARD</dispatcher>
+                    <dispatcher>INCLUDE</dispatcher>
+                    <dispatcher>ERROR</dispatcher>
+                </filter-mapping>
             
             
  Note for further examples of the configuration go to the section [On to the
diff --git a/src/site/mdtext/download.mdtext b/src/site/mdtext/download.mdtext
new file mode 100644
index 0000000..5d340de
--- /dev/null
+++ b/src/site/mdtext/download.mdtext
@@ -0,0 +1,15 @@
+
+# Download Apache MyFaces Extension Scripting
+
+## Apache MyFaces Ext-Scripting 1.0.4
+
+ Apache MyFaces Ext-Scripting 1.0.4 is the newest version. With OpenWebbeans support and reenabled Windows support.
+
+ Releasenotes can be found [here](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310964&version=12320341)
+
+
+<table>
+    <thead>
+        <tr>
+
+        </tr>
\ No newline at end of file
diff --git a/src/site/mdtext/exampleconfig.mdtext b/src/site/mdtext/exampleconfig.mdtext
index 65f9032..250325b 100644
--- a/src/site/mdtext/exampleconfig.mdtext
+++ b/src/site/mdtext/exampleconfig.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
 #Navigation Top
  [&lt;&lt;appendix Configuration Entries](./configentries.html)
  
diff --git a/src/site/mdtext/exampleconfig102.mdtext b/src/site/mdtext/exampleconfig102.mdtext
index 52d3bb5..789a7cd 100644
--- a/src/site/mdtext/exampleconfig102.mdtext
+++ b/src/site/mdtext/exampleconfig102.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
 #Navigation Top
  [&lt;&lt;appendix Configuration Entries](./configentries.html)
  
diff --git a/src/site/mdtext/index.mdtext b/src/site/mdtext/index.mdtext
index dd089ac..65e85f4 100644
--- a/src/site/mdtext/index.mdtext
+++ b/src/site/mdtext/index.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/install102.mdtext b/src/site/mdtext/install102.mdtext
index 90cc1b1..997875d 100644
--- a/src/site/mdtext/install102.mdtext
+++ b/src/site/mdtext/install102.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
@@ -54,7 +71,7 @@
  For Download information please visit the [ download page](./download.html).
  
  
- Once you downloaded the necessary artifacts please check the [manual setup section](#Manual_Setup) of this document.
+                Once you downloaded the necessary artifacts please check the [manual setup section](#Manual_Setup) of this document.
  
  
 #Checkout and Build
@@ -64,7 +81,9 @@
  All other installation steps will have this step as prerequisite if you want to
  use the latest codebase instead of one of the beta releases!
  First you have to check out the latest codebase from
- [http://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk](http://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk)
+ [
+ http://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk
+ ](http://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk)
  via a subversion client.
  
  
diff --git a/src/site/mdtext/installation.mdtext b/src/site/mdtext/installation.mdtext
index 40ce782..40633f4 100644
--- a/src/site/mdtext/installation.mdtext
+++ b/src/site/mdtext/installation.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/issuetracking.mdtext b/src/site/mdtext/issuetracking.mdtext
index 3728931..5bb9187 100644
--- a/src/site/mdtext/issuetracking.mdtext
+++ b/src/site/mdtext/issuetracking.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
 #Issue Tracking
  This project uses JIRA a J2EE-based, issue tracking and project management application.
  Issues, bugs, and feature requests should be submitted to the following issue tracking system for this project.
diff --git a/src/site/mdtext/setupSteps.mdtext b/src/site/mdtext/setupSteps.mdtext
index 8e5e324..10328e6 100644
--- a/src/site/mdtext/setupSteps.mdtext
+++ b/src/site/mdtext/setupSteps.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/usersguide.mdtext b/src/site/mdtext/usersguide.mdtext
index 5114dd5..078697b 100644
--- a/src/site/mdtext/usersguide.mdtext
+++ b/src/site/mdtext/usersguide.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/usingAdvanced.mdtext b/src/site/mdtext/usingAdvanced.mdtext
index 614b34e..71deeba 100644
--- a/src/site/mdtext/usingAdvanced.mdtext
+++ b/src/site/mdtext/usingAdvanced.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/usingEclipse.mdtext b/src/site/mdtext/usingEclipse.mdtext
index 332cdf5..4c54808 100644
--- a/src/site/mdtext/usingEclipse.mdtext
+++ b/src/site/mdtext/usingEclipse.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/usingGeneral.mdtext b/src/site/mdtext/usingGeneral.mdtext
index 0db057f..7b98951 100644
--- a/src/site/mdtext/usingGeneral.mdtext
+++ b/src/site/mdtext/usingGeneral.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/usingIntellij.mdtext b/src/site/mdtext/usingIntellij.mdtext
index ccba7e8..f2e72db 100644
--- a/src/site/mdtext/usingIntellij.mdtext
+++ b/src/site/mdtext/usingIntellij.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
diff --git a/src/site/mdtext/usingNetbeans.mdtext b/src/site/mdtext/usingNetbeans.mdtext
index 1f8ffeb..1ea3244 100644
--- a/src/site/mdtext/usingNetbeans.mdtext
+++ b/src/site/mdtext/usingNetbeans.mdtext
@@ -1,4 +1,21 @@
+<!--
+    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.
+-->
  
  
 #Navigation Top
