EXTSCRIPT-160: rebranching for the release




git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/branches/1_0_3_prepare@1303439 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/Configuration.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/Configuration.java
index a93b26e..f29b228 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/Configuration.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/Configuration.java
@@ -121,18 +121,7 @@
         return WeavingContext.getInstance().getEngine(scriptingEngine).getSourcePaths();
     }
 
-    public Collection<String> getAllSourceDirs()
-    {
-        List<String> result = new LinkedList<String>();
-        Collection<ScriptingEngine> engines = WeavingContext.getInstance().getEngines();
-        for (ScriptingEngine engine : engines)
-        {
-            result.addAll(engine.getSourcePaths());
-        }
-        return result;
-    }
-
-    /**
+        /**
          * returns a set of whitelisted subdirs hosting the source
          *
          * @param scriptingEngine the scripting engine for which the dirs have to be determined
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java
index 73433a9..a8584c1 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/ScriptingConst.java
@@ -39,6 +39,8 @@
     public static final String INIT_PARAM_CUSTOM_GROOVY_LOADER_PATHS = "org.apache.myfaces.extensions.scripting.groovy.LOADER_PATHS";
     public static final String INIT_PARAM_CUSTOM_SCALA_LOADER_PATHS = "org.apache.myfaces.extensions.scripting.scala" +
             ".LOADER_PATHS";
+    //TODO add this
+
 
     public static final String INIT_PARAM_CUSTOM_JAVA_LOADER_PATHS = "org.apache.myfaces.extensions.scripting.java.LOADER_PATHS";
     public static final String INIT_PARAM_INITIAL_COMPILE="org.apache.myfaces.extensions.scripting.INITIAL_COMPILE_AND_SCAN";
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
index a11fba1..8e1018e 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/BaseScanner.java
@@ -97,6 +97,7 @@
         scanRegistry.clearFilters();
         //We have to dynamically readjust the filters
         scanRegistry.addFilter(new WhitelistFilter(possibleDynamicClasses));
+        //here we have a clear boundary into the ASM part
         _depencyScanner.fetchDependencies(loader, getEngineType(), dynamicClass,
                 WeavingContext.getInstance().getEngine(getEngineType()).getDependencyRegistry());
     }
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineScala.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineScala.java
index 8009366..a540e55 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineScala.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/EngineScala.java
@@ -124,7 +124,7 @@
     public void scanDependencies()
     {
         log.info("[EXT-SCRIPTING] starting dependency scan");
-        GroovyDependencyScanner scanner = new GroovyDependencyScanner();
+        ScalaDependencyScanner scanner = new ScalaDependencyScanner();
         scanner.scanPaths();
         log.info("[EXT-SCRIPTING] ending dependency scan");
     }
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/ScalaDependencyScanner.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/ScalaDependencyScanner.java
new file mode 100644
index 0000000..6f9fc6c
--- /dev/null
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/ScalaDependencyScanner.java
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+
+package org.apache.myfaces.extensions.scripting.core.engine;
+
+import org.apache.myfaces.extensions.scripting.core.api.ScriptingConst;
+import org.apache.myfaces.extensions.scripting.core.engine.api.ClassScanner;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class ScalaDependencyScanner extends BaseScanner implements ClassScanner
+{
+
+    public ScalaDependencyScanner() {
+    }
+
+    public int getEngineType() {
+        return ScriptingConst.ENGINE_TYPE_JSF_SCALA;
+    }
+    public String getFileEnding() {
+        return ScriptingConst.SCALA_FILE_ENDING;
+    }
+
+
+}
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/StandardDependencyScanner.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/StandardDependencyScanner.java
index d4860c9..f30560a 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/StandardDependencyScanner.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/dependencyScan/StandardDependencyScanner.java
@@ -51,7 +51,7 @@
         _cp.setEngineType(engineType);
         _cp.setRootClass(className);
         _cp.setDependencyRegistry(registry);
-        investigateInheritanceHierarchy(loader, className);
+        scanClass(loader, className);
         registry.flush(engineType);
     }
 
@@ -65,7 +65,7 @@
      * @param loader    the classLoader which should be used for the hierarchy scanning
      * @param className the className which has to be investigated
      */
-    private void investigateInheritanceHierarchy(ClassLoader loader, String className) {
+    private void scanClass(ClassLoader loader, String className) {
         //we now have to fetch the parent hierarchy
 
         try {
@@ -81,7 +81,7 @@
             //our asm code normally covers this but since the scanner has to work outside of asm we do it twice, the same goes for the hierarchy
             scanInterfaces(loader, toCheck);
         } catch (ClassNotFoundException e) {
-            _logger.log(Level.SEVERE, "DefaultDependencyScanner.investigateInheritanceHierarchy() ", e);
+            _logger.log(Level.SEVERE, "DefaultDependencyScanner.scanClass() ", e);
         }
     }
 
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java
index 163e9fe..4d90ae2 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/GenericAnnotationScanner.java
@@ -86,7 +86,7 @@
     }
 
     private void initDefaultListeners() {
-        _listeners.add(new BeanImplementationListener());
+        _listeners.add(new MyFacesBeanImplementationListener());
         _listeners.add(new BehaviorImplementationListener());
         _listeners.add(new ComponentImplementationListener());
         _listeners.add(new ConverterImplementationListener());
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/BeanImplementationListener.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/MyFacesBeanImplementationListener.java
similarity index 98%
rename from extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/BeanImplementationListener.java
rename to extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/MyFacesBeanImplementationListener.java
index ac5811e..9aecf12 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/BeanImplementationListener.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/jsf/annotation/MyFacesBeanImplementationListener.java
@@ -39,7 +39,7 @@
  * @version $Revision$ $Date$
  */
 
-public class BeanImplementationListener extends BaseAnnotationScanListener implements AnnotationScanListener
+public class MyFacesBeanImplementationListener extends BaseAnnotationScanListener implements AnnotationScanListener
 {
 
     public boolean supportsAnnotation(String annotation) {
diff --git a/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompiler.scala b/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompiler.scala
index 3c59352..5c31b38 100644
--- a/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompiler.scala
+++ b/extscript-core-root/extscript-core/src/main/scala/org/apache/myfaces/extensions/scripting/core/engine/compiler/ScalaCompiler.scala
@@ -38,6 +38,31 @@
     println("[EXT-SCRIPTING] Error in scala compile:" + message)
   }
 
+  /**
+   * fetches a list of jars from a given dir and appends it to the given classpath
+   *
+   * @param libDir the library directory
+   * @param _cp
+   * @param classesDir
+   * @return
+   */
+  def fetchJarPath(libDir: String, _cp: String, classesDir: String): String =
+  {
+    var cp: String = _cp
+    val libs = FileUtils.fetchSourceFiles(new File(libDir), "*.jar")
+    val finalPath = new StringBuilder
+    finalPath.append(cp)
+    finalPath.append(File.pathSeparator)
+    finalPath.append(classesDir)
+    for (singleLib: File <- libs)
+    {
+      finalPath.append(File.pathSeparator)
+      finalPath.append(singleLib.getAbsolutePath)
+    }
+    cp = finalPath.toString()
+    cp
+  }
+
   def compile(sourcePath: File, targetPath: File, classLoader: ClassLoader): CompilationResult =
   {
     val context = WeavingContext.getInstance()
@@ -60,17 +85,11 @@
       val classesDir = ClassUtils.getContextClassLoader().getResource("./").getFile();
 
       val libDir = classesDir+".."+File.separator+"lib"
-      val libs = FileUtils.fetchSourceFiles(new File(libDir),"*.jar")
-      val finalPath = new StringBuilder
-      finalPath.append(cp)
-      finalPath.append(File.pathSeparator)
-      finalPath.append(classesDir)
-      for(singleLib:File <- libs){
-        finalPath.append(File.pathSeparator)
-        finalPath.append(singleLib.getAbsolutePath)
-      }
-      cp = finalPath.toString()
+      cp = fetchJarPath(libDir, cp, classesDir)
     }
+
+
+
     settings.classpath.value = cp
     val reporter = new CompilationResultReporter(settings)
 
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index fb61f50..37b8244 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -51,8 +51,8 @@
                 </p>
                 <p>
                     As the video shows, you can make changes to almost all JSF artifacts on the fly, and at the next
-                    reload the
-                    changes are present. The result is a reduction in server restarts and better turn around times. The
+                    reload the changes are present.
+                    The result is a reduction in server restarts and better turn around times. The
                     same rapid prototyping approach which is normally present in scripting languages and scripting
                     language based frameworks.
 
@@ -83,7 +83,7 @@
         <section name="Short Overview over Ext-Scripting">
             <subsection name="Supported for Scripting Languages">
                 <p>
-                    Ext-Scripting currently only supports Groovy Java and Scala as dynamic languages.
+                    Ext-Scripting currently only supports Groovy Java and Scala (1.0.3+) as dynamic languages.
                     Additional languages will be provided in subsequent releases.
                 </p>
             </subsection>
@@ -99,7 +99,7 @@
                     Extensions scripting supports MyFaces only for now. Following versions are supported.
                 </p>
                 <ul>
-                    <li>1.2.8+ (note support will be dropped soon)</li>
+                    <li>1.2.8+ (note support will be dropped soon post 1.0.2)</li>
                     <li>2.0+</li>
                 </ul>
                 <p>
@@ -108,8 +108,8 @@
                 <p>
                     The JSF RI and Mojarra as time of writing are not supported due to missing framework hooks needed,
                     but Mojarra supports Groovy out of the box within the core engine. So for the time being only
-                    MyFaces can be used. Also Portlets for 1.0 are not supported, this limitation will be eliminated in
-                    future versions. Support for Mojarra will come post 1.0.
+                    MyFaces can be used. Also Portlets for 1.0.x are not supported, this limitation will be eliminated
+                    in future versions. Support for Mojarra maybe will come post 1.0.x.
                 </p>
             </subsection>
 
diff --git a/src/site/xdoc/installation.xml b/src/site/xdoc/installation.xml
index cc4ee10..f85b39e 100644
--- a/src/site/xdoc/installation.xml
+++ b/src/site/xdoc/installation.xml
@@ -47,14 +47,15 @@
             <subsection name="General Setup Information" >
              <p>
 
-                Ext-Scripting has a complete appendix list over all configuration and setup options
-                for a quick overview please visit the following links. If you need detailed
+                Ext-Scripting has a complete appendix list over all <a href="./configentries.html">configuration and
+                 setup</a> options as well as <a href="./exampleconfig.html">example configurations</a>.
+                For a quick overview please visit the following links. If you need detailed
                 setup information, then read further on.
              </p>
             </subsection>
             <subsection name="Links">
                 <p>
-                    <ul><a href="setup_steps.html">Appendix: Configuration Setup Steps</a> </ul>
+                    <ul><a href="setup_steps.html">Appendix: Configuration Setup Step Overview</a> </ul>
                     <ul><a href="exampleconfig.html">Appendix: Example Configurations</a> </ul>
                     <ul><a href="configentries.html">Appendix: List of Configuration Options</a> </ul>
                 </p>
@@ -73,7 +74,7 @@
 
         <section name="Download">
             <p>
-                With version 1.0 Ext-Scripting provides all necessary artifacts
+                With version 1.0.x Ext-Scripting provides all necessary artifacts
                 as download artifacts to get quickly started.
                 A kickstart project is provided which can be used as shell for your own
                 projects.
@@ -316,9 +317,9 @@
                 </ul>
 
                 <h4>Dynamic resource reloading</h4>
-                <p>additionally Ext-Scripting allows the reloading of dynamic webresources
-                like facelets templates images css files etc... For that additiona  an additional config param is
-                    available
+                <p>additionally Ext-Scripting allows the reloading of dynamic web resources
+                like facelets templates images css files etc...  An additional config param is
+                    available to enable this functionality.
                     </p>
                 <p>
                 <ul>
@@ -364,10 +365,10 @@
             <h4>Package Whitelisting</h4>
             <p>The last possible config entry is the ability to whitelist packages. If you have set this option
             then only whitelisted packages will be picked up for dynamic recompilation</p>
-            <p>With this option you can point your sourcedir to the normal compile source and mark
+            <p>With this option you can point your source dir to the normal compile source and mark
             special packages as dynamic (to isolate the dynamic part from the rest)</p>
 
-            For enabling this option add following entry to your web.xml:
+            To enalbe this option, add following entry to your web.xml:
              <source><![CDATA[
 <!-- ======================================================================================
     Optional: Whitelist of root packages where your sources should come from
diff --git a/src/site/xdoc/setup_steps.xml b/src/site/xdoc/setup_steps.xml
index d7fcfa2..3d54b67 100644
--- a/src/site/xdoc/setup_steps.xml
+++ b/src/site/xdoc/setup_steps.xml
@@ -43,10 +43,11 @@
                     <ul>
                         <li>Check if your installation environment is setup</li>
                         <li>Download the appropriate meta bundle and place it in WEB-INF/lib</li>
-                        <li>Download groovy-all.jar and place it in WEB-INF/lib</li>
-                        <li>Prepare your script paths</li>
-                        <li>Add your web.xml entries</li>
-                        <li>mvn clean install ...</li>
+                        <li>Download groovy-all.jar and or (scala-lang.jar and scala-compiler.jar) and place it in
+                            WEB-INF/lib</li>
+                        <li>Prepare your script paths (WEB-INF/java, WEB-INF/groovy, WEB-INF/scala)</li>
+                        <li>Add your <a href="./exampleconfig.html">web.xml</a> entries</li>
+                        <li>start the web application ...</li>
                     </ul>
                 </p>
                 <p>
@@ -54,8 +55,8 @@
                     <ul>
                         <li>Check if your installation environment is setup</li>
                         <li>Add your pom xml dependencies and the repository entry</li>
-                        <li>Prepare your script paths</li>
-                        <li>Add your web.xml entries</li>
+                        <li>Prepare your script paths (WEB-INF/java, WEB-INF/groovy, WEB-INF/scala)</li>
+                        <li>Add your <a href="./exampleconfig.html">web.xml</a> entries</li>
                         <li>mvn clean install ...</li>
                     </ul>
                 </p>
@@ -69,8 +70,8 @@
                         </li>
                         <li>Download groovy-all.jar and add it to your dependency and deployment settings</li>
                         <li>Prepare your script paths</li>
-                        <li>Add your web.xml entries</li>
-                        <li>mvn clean install ...</li>
+                        <li>Add your <a href="./exampleconfig.html">web.xml</a> entries</li>
+                        <li>start the web application ...</li>
                     </ul>
                 </p>
             </subsection>