<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>commits@myfaces.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/"/>
<id>http://mail-archives.apache.org/mod_mbox/myfaces-commits/</id>
<updated>2009-12-09T06:29:34Z</updated>
<entry>
<title>svn commit: r888699 - /myfaces/tomahawk/trunk/examples/pom.xml</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209044348.C524823889BF@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209044348-C524823889BF@eris-apache-org%3e</id>
<updated>2009-12-09T04:43:48Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Wed Dec  9 04:43:48 2009
New Revision: 888699

URL: http://svn.apache.org/viewvc?rev=888699&amp;view=rev
Log:
update groupid for ri jsf 2.0

Modified:
    myfaces/tomahawk/trunk/examples/pom.xml

Modified: myfaces/tomahawk/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/examples/pom.xml?rev=888699&amp;r1=888698&amp;r2=888699&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/examples/pom.xml (original)
+++ myfaces/tomahawk/trunk/examples/pom.xml Wed Dec  9 04:43:48 2009
@@ -358,12 +358,12 @@
             &lt;/activation&gt;
             &lt;dependencies&gt;
                 &lt;dependency&gt;
-                    &lt;groupId&gt;javax.faces&lt;/groupId&gt;
+                    &lt;groupId&gt;com.sun.faces&lt;/groupId&gt;
                     &lt;artifactId&gt;jsf-api&lt;/artifactId&gt;
                     &lt;version&gt;2.0.1&lt;/version&gt;
                 &lt;/dependency&gt;
                 &lt;dependency&gt;
-                    &lt;groupId&gt;javax.faces&lt;/groupId&gt;
+                    &lt;groupId&gt;com.sun.faces&lt;/groupId&gt;
                     &lt;artifactId&gt;jsf-impl&lt;/artifactId&gt;
                     &lt;version&gt;2.0.1&lt;/version&gt;
                     &lt;scope&gt;runtime&lt;/scope&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888690 - /myfaces/tomahawk/trunk/examples/pom.xml</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209032831.D0F1B23889BF@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209032831-D0F1B23889BF@eris-apache-org%3e</id>
<updated>2009-12-09T03:28:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Wed Dec  9 03:28:31 2009
New Revision: 888690

URL: http://svn.apache.org/viewvc?rev=888690&amp;view=rev
Log:
fix profile id

Modified:
    myfaces/tomahawk/trunk/examples/pom.xml

Modified: myfaces/tomahawk/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/examples/pom.xml?rev=888690&amp;r1=888689&amp;r2=888690&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/examples/pom.xml (original)
+++ myfaces/tomahawk/trunk/examples/pom.xml Wed Dec  9 03:28:31 2009
@@ -77,7 +77,7 @@
             &lt;/dependencies&gt;
         &lt;/profile&gt;
         &lt;profile&gt;
-            &lt;id&gt;tomahawk-current12&lt;/id&gt;
+            &lt;id&gt;tomahawk-current20&lt;/id&gt;
             &lt;activation&gt;
                 &lt;property&gt;
                     &lt;name&gt;tomahawk&lt;/name&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888664 [4/5] - in /myfaces/tomahawk/trunk: ./ core/ core/src/main/resources-filtered/ core/src/main/resources-filtered/org/ core/src/main/resources-filtered/org/apache/ core/src/main/resources-filtered/org/apache/myfaces/ core/src/main/res...</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209004435.87D1F2388A24@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209004435-87D1F2388A24@eris-apache-org%3e</id>
<updated>2009-12-09T00:44:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/NOTICE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/NOTICE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/NOTICE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/NOTICE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,32 @@
+Apache MyFaces
+Copyright 2004-2007 The Apache Software Foundation
+
+This product includes software developed by:
+The Apache Software Foundation (http://www.apache.org/).
+
+------------------------------------------------------------------------
+See the file LICENSE.txt
+See licenses for accompanying products in the "/licenses" subdirectory.
+------------------------------------------------------------------------
+
+This product includes software developed by Heng Yuan (jscookmenu)
+http://www.cs.ucla.edu/~heng/JSCookMenu
+
+This product includes software developed by Sam Stephenson (the ProtoType library)
+http://conio.net/
+
+This product includes software developed by Thomas Fuchs (the Ruby on Rails Ajax javascript extensions, script.aculo.us)
+http://script.aculo.us/
+
+This product includes software developed by the Kupu Project
+(http://kupu.oscom.org/).
+
+This product includes Sarissa ECMAScript written by Manos Batsis, released under
+the Kupu License with kind permission by the author (used by the Kupu HTML editor). See the Sarissa
+homepage at http://sarissa.sourceforge.net/ for more information.
+
+This product includes software developed by Guido Wesdorp (i18n.js, used by the KUPU html editor)
+(http://kupu.oscom.org/).
+
+This product includes software developed by Dojo Foundation (http://dojotoolkit.org/foundation/)
+http://www.dojotoolkit.org/

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/componentClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/componentClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/componentClass12.vm (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/componentClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,256 @@
+## Velocity template used to generate JSF1.2-compatible component classes
+## from component meta-data.
+##
+## Note that there are two types of component generation:
+##  * "subclass mode" (use annotated class as a parent class)
+##  * "template mode" (use annotated class as a template)
+## This template file is used for both.
+##
+## Variable $component refers to a ComponentMeta object to process
+## Variable $utils refers to an instance of MyfacesUtils.
+##
+## When "template mode" is being used then variable $innersource
+## holds a String containing all the non-abstract functions defined
+## in the annotated class.
+##
+## The java package of the generated class is always the same as
+## the package in which the annotated class exists.
+##
+/*
+ *  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 ${component.packageName};
+
+import javax.el.ValueExpression;
+import javax.faces.context.FacesContext;
+$utils.importTagClasses($component)
+
+#if ($component.isTemplate())
+#set ($generatedClassParent = $component.sourceClassParentClassName)
+#else
+#set ($generatedClassParent = $component.sourceClassName)
+#end
+// Generated from class ${component.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class ${utils.getClassFromFullClass($component.className)} extends $generatedClassParent
+#if ($component.implements)
+    implements $component.implements
+#end
+{
+#if ($component.serialuid)
+    private static final long serialVersionUID = ${component.serialuid}; 
+#end  
+
+    static public final String COMPONENT_FAMILY =
+        "$component.family";
+    static public final String COMPONENT_TYPE =
+        "$component.type";
+#if ($component.rendererType)
+#if (!($component.rendererType == ""))
+    static public final String DEFAULT_RENDERER_TYPE = 
+        "$component.rendererType";
+#end
+#end
+
+#if ($innersource)
+    //BEGIN CODE COPIED FROM $component.sourceClassName 
+$innersource
+    //END CODE COPIED FROM $component.sourceClassName
+#end
+
+    public ${utils.getClassFromFullClass($component.className)}()
+    {
+#if ($component.rendererType)
+#if ($component.rendererType == "")
+        setRendererType(null);
+#else
+        setRendererType("$component.rendererType");
+#end
+#else
+        setRendererType(null);
+#end
+    }
+
+## On myfaces 1.1 the family is inherited, so this could be commented
+## On other this should not be commented    
+    public String getFamily()
+    {
+        return COMPONENT_FAMILY;
+    }
+    
+#set ($propertyList = ${component.propertyComponentList})
+
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if($utils.getDefaultValueField($property)) 
+#set ($defaultValue = $utils.getDefaultValueField($property))
+#else
+#set ($defaultValue = false)
+#end
+    // Property: $property.name
+#if ($property.isLiteralOnly() || $property.isTagExcluded() )
+    private $type $field #if($defaultValue) = $defaultValue;#{else};#{end}
+
+     
+#else
+    private $type $field;
+    
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded()
+    &amp;&amp; !$property.isLiteralOnly() )
+    private boolean ${field}Set;
+    
+#if ($property.isSetMethod())
+    $property.setMethodScope boolean $utils.getPrefixedPropertyName("isSet", $property.name)()
+    {
+        return ${field}Set;
+    }
+#end
+#end
+#if($property.isLocalMethod())
+#if("boolean" == $type)
+#set ($methodName = $utils.getPrefixedPropertyName("isLocal", $property.name))
+#else
+#set ($methodName = $utils.getPrefixedPropertyName("getLocal", $property.name))
+#end
+    final $property.localMethodScope $type ${methodName}()
+    {
+        return $field;
+    }
+     
+#end
+    public $type $utils.getMethodReaderFromProperty($property.name, $type)()
+    {
+#if ($property.isTagExcluded() || $property.isLiteralOnly())
+        return $field;
+#else
+#if ($utils.isPrimitiveClass($type))
+        if (${field}Set)
+#else
+        if ($field != null)
+#end
+        {
+            return $field;
+        }
+        ValueExpression vb = getValueExpression("$property.name");
+        if (vb != null)
+        {
+#if ($utils.isPrimitiveClass($type))
+            return ($utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext())).${type}Value();
+#else
+#set ($pritype = $utils.getPrimitiveType($property.className))
+#if ($utils.isPrimitiveClass($pritype))
+            Object value = vb == null ? null : vb.getValue(getFacesContext().getELContext());
+            if (!(value instanceof $type)){
+                value = ${type}.valueOf(value.toString());
+            }            
+            return $utils.castIfNecessary($type) value;
+#else
+            return $utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext());
+#end
+#end
+        }
+#if ($defaultValue)
+        return $defaultValue; 
+#elseif ($utils.isPrimitiveClass($type))
+        return $utils.primitiveDefaultValue($type);
+#else       
+        return null;
+#end
+#end
+    }
+
+    public void $utils.getPrefixedPropertyName("set", $property.name)($type $utils.getVariableFromName($property.name))
+    {
+        this.$field = $utils.getVariableFromName($property.name);
+#if ($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() 
+     &amp;&amp; !$property.isLiteralOnly())
+        this.${field}Set = true;        
+#end
+    }
+#end
+
+    public Object saveState(FacesContext facesContext)
+    {
+#set ($primitiveCount = $propertyList.size() + 1)
+#foreach( $property in $propertyList )
+#if($utils.isPrimitiveClass($property.className) &amp;&amp; 
+    !$property.isLiteralOnly())
+#set ($primitiveCount = $primitiveCount + 1)
+#end
+#end
+        Object[] values = new Object[$primitiveCount];
+        values[0] = super.saveState(facesContext);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        values[$arrayIndex] = saveAttachedState(facesContext,${field}List);
+#elseif ( $property.isStateHolder() )## || $utils.isConverter($type)
+        values[$arrayIndex] = saveAttachedState(facesContext,$field);
+#elseif($utils.isPrimitiveClass($type))
+        values[$arrayIndex] = ${utils.getBoxedClass($type)}.valueOf($field);
+#else
+        values[$arrayIndex] = $field;
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded()
+    &amp;&amp; !$property.isLiteralOnly() )
+#set ($arrayIndex = $arrayIndex + 1)
+        values[$arrayIndex] = Boolean.valueOf(${field}Set);
+#end
+#end
+        return values; 
+    }
+
+    public void restoreState(FacesContext facesContext, Object state)
+    {
+        Object[] values = (Object[])state;
+        super.restoreState(facesContext,values[0]);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ( $property.isStateHolder() )
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        ${field}List = (List&lt;Validator&gt;) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isList($type))
+        $field = (List) restoreAttachedState(facesContext,values[$arrayIndex]);
+#else
+        $field = $utils.castIfNecessary($type) restoreAttachedState(facesContext,values[$arrayIndex]); 
+#end
+#elseif ($utils.isConverter($type)) 
+        $field = (Converter) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isPrimitiveClass($type))
+        $field = ($utils.castIfNecessary($type) values[$arrayIndex]).${type}Value();
+#else
+        $field = $utils.castIfNecessary($type) values[$arrayIndex];
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded()
+    &amp;&amp; !$property.isLiteralOnly() )
+#set ($arrayIndex = $arrayIndex + 1)
+        ${field}Set = ((Boolean) values[$arrayIndex]).booleanValue();
+#end
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/facelets-taglib.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/facelets-taglib.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/facelets-taglib.vm (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/facelets-taglib.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,95 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;!DOCTYPE facelet-taglib
+  PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/facelet-taglib_1_0.dtd"&gt;
+&lt;facelet-taglib xmlns="http://java.sun.com/JSF/Facelet"&gt;
+
+    &lt;namespace&gt;$uri&lt;/namespace&gt;
+
+    &lt;!-- Component Tags --&gt;
+#set ($componentList = ${model.getComponents()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if (!$component.isConfigExcluded())
+    &lt;tag&gt;
+        &lt;tag-name&gt;$utils.getTagName($component.name)&lt;/tag-name&gt;
+        &lt;component&gt;
+            &lt;component-type&gt;$component.type&lt;/component-type&gt;
+#if ($component.rendererType)
+#if (!($component.rendererType == ""))
+            &lt;renderer-type&gt;$component.rendererType&lt;/renderer-type&gt;
+#end
+#end
+#if ($component.tagHandler)
+            &lt;handler-class&gt;$component.tagHandler&lt;/handler-class&gt;
+#end
+        &lt;/component&gt;
+    &lt;/tag&gt;
+#end
+#end
+#end
+
+   &lt;!-- Converter tags --&gt;
+#set ($componentList = ${model.getConverters()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($component.converterId) 
+    &lt;tag&gt;
+        &lt;tag-name&gt;$utils.getTagName($component.name)&lt;/tag-name&gt;
+        &lt;converter&gt;
+            &lt;converter-id&gt;$component.converterId&lt;/converter-id&gt;
+        &lt;/converter&gt;
+    &lt;/tag&gt;
+#end
+#end
+#end
+
+   &lt;!-- Validator tags --&gt;
+#set ($componentList = ${model.getValidators()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($component.validatorId)
+    &lt;tag&gt;
+        &lt;tag-name&gt;$utils.getTagName($component.name)&lt;/tag-name&gt;
+        &lt;validator&gt;
+            &lt;validator-id&gt;$component.validatorId&lt;/validator-id&gt;
+        &lt;/validator&gt;      
+    &lt;/tag&gt;
+#end
+#end
+#end
+    
+   &lt;!-- Single Tags --&gt;
+#set ($tagList = $model.getTags())
+#foreach( $tag in $tagList )
+#if ($modelIds.contains($tag.modelId))
+#if ($tag.tagHandler)
+   &lt;tag&gt;
+      &lt;tag-name&gt;$utils.getTagName($tag.name)&lt;/tag-name&gt;
+      &lt;handler-class&gt;$tag.tagHandler&lt;/handler-class&gt;
+   &lt;/tag&gt;
+#end
+#end
+#end
+
+&lt;/facelet-taglib&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/faces-config12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/faces-config12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/faces-config12.vm (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/faces-config12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,77 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+
+&lt;!--
+ * 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.
+--&gt;
+
+&lt;faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" 
+              version="1.2"&gt;
+
+$baseContent
+
+#set ($componentList = ${model.getComponents()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; !($component.className.contains("UIComponent"))
+    &amp;&amp; !($component.isConfigExcluded()))
+  &lt;component&gt;
+    &lt;component-type&gt;$component.type&lt;/component-type&gt;
+    &lt;component-class&gt;$component.className&lt;/component-class&gt;
+  &lt;/component&gt;    
+#end
+#end
+#set ($converterList = ${model.getConverters()})
+#foreach( $converter in $converterList )
+#if ($modelIds.contains($converter.modelId))
+  &lt;converter&gt;
+    &lt;converter-id&gt;$converter.converterId&lt;/converter-id&gt;
+    &lt;converter-class&gt;$converter.className&lt;/converter-class&gt;
+  &lt;/converter&gt;
+#end
+#end
+#set ($validatorList = ${model.getValidators()})
+#foreach( $validator in $validatorList )
+#if ($modelIds.contains($validator.modelId) &amp;&amp;
+    !($validator.isConfigExcluded().booleanValue()) &amp;&amp;
+    $validator.validatorId)
+  &lt;validator&gt;
+    &lt;validator-id&gt;$validator.validatorId&lt;/validator-id&gt;
+    &lt;validator-class&gt;$validator.className&lt;/validator-class&gt;
+  &lt;/validator&gt;
+#end
+#end
+#set ($renderKitList = ${model.getRenderKits()})
+#foreach( $renderKit in $renderKitList )
+  &lt;render-kit&gt;
+    &lt;render-kit-id&gt;$renderKit.renderKitId&lt;/render-kit-id&gt;
+#if ($renderKit.className)
+    &lt;render-kit-class&gt;$renderKit.className&lt;/render-kit-class&gt;
+#end
+#set ($rendererList = ${renderKit.getRenderers()})
+#foreach( $renderer in $rendererList )
+      &lt;renderer&gt;
+        &lt;component-family&gt;$renderer.componentFamily&lt;/component-family&gt;
+        &lt;renderer-type&gt;$renderer.rendererType&lt;/renderer-type&gt;
+        &lt;renderer-class&gt;$renderer.className&lt;/renderer-class&gt;
+      &lt;/renderer&gt;
+#end
+  &lt;/render-kit&gt;
+#end
+&lt;/faces-config&gt;

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,31 @@
+Copyright (c) 2004, Guido Wesdorp
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of i18n.js nor the names of its contributors may
+      be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/iText-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/iText-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/iText-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/iText-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,475 @@
+iText is a Free Java-Pdf library by Bruno Lowagie and Paulo Soares.
+Copyright © 1999-2007 by Bruno Lowagie, Adolf Baeyensstraat 121, 9040 Gent, BELGIUM
+
+The source code is available at: http://www.lowagie.com/iText
+
+                          MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ---------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (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.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
+

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,19 @@
+JSCookMenu (c) Copyright 2002-2005 by Heng Yuan
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,31 @@
+Copyright (c) 2003-2004, Kupu Contributors
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Kupu nor the names of its contributors may
+      be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,16 @@
+	Copyright (c) 2005 Sam Stephenson
+
+ 	Permission is hereby granted, free of charge, to any person obtaining a copy
+ 	of this software and associated documentation files (the "Software"), to deal
+ 	in the Software without restriction, including without limitation the rights
+ 	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ 	copies of the Software, and to permit persons to whom the Software is
+ 	furnished to do so, subject to the following conditions:
+
+ 	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ 	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ 	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ 	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ 	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ 	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ 	SOFTWARE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,20 @@
+Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagClass12.vm (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,179 @@
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+/*
+ *  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 ${component.tagPackage};
+
+import javax.faces.component.UIComponent;
+import javax.el.ValueExpression;
+import javax.el.MethodExpression;
+import javax.faces.context.FacesContext;
+$utils.importTagClasses12($component)
+
+// Generated from class ${component.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class $utils.getClassFromFullClass($component.tagClass)
+#if (${component.tagSuperclass})
+    extends ${component.tagSuperclass}
+#else
+    extends javax.faces.webapp.UIComponentTag
+#end
+{
+    public $utils.getClassFromFullClass($component.tagClass)()
+    {    
+    }
+    
+    public String getComponentType()
+    {
+#if ($component.type)
+        return "$component.type";
+#else
+        return null;
+#end
+    }
+
+    public String getRendererType()
+    {
+#if ($component.rendererType &amp;&amp; !($component.rendererType == ""))
+        return "$component.rendererType";
+#else
+        return null;
+#end
+    }
+
+#set ($propertyList = ${component.propertyTagList})
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#if ($property.isLiteralOnly() &amp;&amp; $property.className == "boolean")
+#set ($type = "String")
+#end
+    private $type $field;
+    
+#set ($var = $utils.getVariableFromName($property.name))
+    public void $utils.getPrefixedPropertyName("set", $property.jspName)($type $var)
+    {
+        $field = $var;
+    }
+#end
+
+    protected void setProperties(UIComponent component)
+    {
+        if (!(component instanceof $component.className))
+        {
+            throw new IllegalArgumentException("Component "+
+                component.getClass().getName() +" is no $component.className");
+        }
+        
+        $component.className comp = ($component.className) component;
+        
+        super.setProperties(component);
+        
+        FacesContext context = getFacesContext();
+
+#foreach( $property in $propertyList )##            1
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#if ($property.isLiteralOnly() &amp;&amp; $property.className == "boolean")
+#set ($type = "String")
+#end
+#if ($utils.isConverter($property.className))##                   2
+        if ($field != null)
+        {
+            if (!${field}.isLiteralText())
+            {
+                comp.setValueExpression("$property.name", $field);
+            }
+            else
+            {
+                String s = ${field}.getExpressionString();
+                if (s != null)
+                {            
+                    Converter converter = getFacesContext().getApplication().createConverter(s);
+                    comp.setConverter(converter);
+                }
+            }
+        }
+#elseif ($property.isMethodBinding())##                 2
+        if ($field != null)
+        {
+#if ($property.jspName == "actionListener")
+            comp.addActionListener(new MethodExpressionActionListener($field));
+#elseif ($property.jspName == "valueChangeListener")
+            comp.addValueChangeListener(new MethodExpressionValueChangeListener($field));
+#elseif ($property.jspName == "validator")
+            comp.addValidator(new MethodExpressionValidator($field));
+#elseif ($utils.isStringMethodBindingReturnType($property.methodBindingSignature))##3
+            MethodBinding mb;
+            if (isValueReference($field))
+            {
+                mb = context.getApplication().createMethodBinding(
+                    $field, $utils.getSignatureParams($property.methodBindingSignature));            
+            }
+            else
+            {
+                throw new IllegalStateException("Invalid expression " + $field);
+            }
+            comp.${utils.getPrefixedPropertyName("set",$property.name)}(mb);
+#else##                                                 3
+            MethodBinding mb = context.getApplication().createMethodBinding(
+                $field, $utils.getSignatureParams($property.methodBindingSignature));
+            comp.${utils.getPrefixedPropertyName("set",$property.name)}(mb);
+#end##                                                  3
+        }
+#elseif ($property.isMethodExpression())##            2
+        if ($field != null)
+        {
+#if ($property.jspName == "action")
+            comp.setActionExpression($field);
+#elseif ($property.jspName == "actionListener")
+            comp.addActionListener(new MethodExpressionActionListener($field));
+#else
+            comp.${utils.getPrefixedPropertyName("set",$property.name)}($field);
+#end        
+        }        
+#else##                                               2
+        if ($field != null)
+        {
+#if ($property.isLiteralOnly())##                         3
+#if ($utils.isPrimitiveClass($property.className))##               4
+            comp.getAttributes().put("$property.name", ${utils.getBoxedClass($property.className)}.valueOf($field));
+#else##                                                   4
+            comp.getAttributes().put("$property.name", $field);
+#end##                                                    4
+#else##                                                 3
+            comp.setValueExpression("$property.name", $field);
+#end##                                                  3
+        } 
+#end##                                                2
+#end##                                              1
+    }
+
+    public void release()
+    {
+        super.release();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($empty = "null")
+        $field = $empty;
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagConverterClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagConverterClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagConverterClass12.vm (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagConverterClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,171 @@
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+/*
+ *  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 $utils.getPackageFromFullClass($converter.tagClass);
+
+import javax.faces.context.FacesContext;
+import javax.el.ELContext;
+import javax.faces.convert.Converter;
+import javax.el.ValueExpression;
+import javax.faces.webapp.UIComponentTag;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+$utils.importTagClasses($converter)
+
+// Generated from class ${converter.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class $utils.getClassFromFullClass($converter.tagClass)
+#if (${converter.tagSuperclass})
+    extends ${converter.tagSuperclass}
+#else
+    extends org.apache.myfaces.converter.ConverterTag
+#end
+{
+#if ($converter.serialuidtag)
+    private static final long serialVersionUID = ${converter.serialuidtag}; 
+#end  
+
+    public $utils.getClassFromFullClass($converter.tagClass)()
+    {
+        setConverterIdString("$converter.converterId");
+    }
+#set ($propertyList = ${converter.propertyTagList})
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+ 
+    private $type $field;
+    
+#set ($var = $utils.getVariableFromName($property.name))
+    public void $utils.getPrefixedPropertyName("set", $property.jspName)($type $var)
+    {
+        $field = $var;
+    }
+#end
+
+    public void setPageContext(PageContext context) {
+        super.setPageContext(context);
+        setConverterIdString("$converter.converterId");
+    }
+
+    protected Converter createConverter() throws JspException {
+    
+        ELContext elContext = FacesContext.getCurrentInstance().getELContext();            
+        $converter.className converter = ($converter.className)super.createConverter();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#set ($className = $utils.getPrimitiveType($property.className))
+        if ($field != null)
+        {
+            if (${field}.isLiteralText())
+            {
+#if ($utils.isPrimitiveClass($property.className))
+                String ${field}Value = ${field}.getExpressionString();
+                if (${field}Value != null)
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf(${field}Value).${property.className}Value());
+#elseif ($utils.isPrimitiveClass($className))
+                String ${field}Value = ${field}.getExpressionString();
+                if (${field}Value != null)
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf(${field}Value));
+                else
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(null);
+#elseif ($utils.getClassFromFullClass($property.className) == "String")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(${field}.getExpressionString());
+#elseif ($utils.getClassFromFullClass($property.className) == "Object")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(${field}.getExpressionString());
+#elseif ($utils.getClassFromFullClass($property.className) == "Locale")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                    org.apache.myfaces.shared_tomahawk.util.LocaleUtils.converterTagLocaleFromString(${field}.getExpressionString()));
+#elseif ($utils.getClassFromFullClass($property.className) == "Class")
+                try
+                {
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                    org.apache.myfaces.shared_tomahawk.util.ClassUtils.classForName(${field}.getExpressionString()));
+                }
+                catch (ClassNotFoundException e)
+                {
+                    throw new JspException(e);
+                }
+#elseif ($utils.getClassFromFullClass($property.className) == "TimeZone")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                    java.util.TimeZone.getTimeZone(${field}.getExpressionString()));                
+#else
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(($property.className) ${field}.getValue(elContext));
+#end
+            }
+            else
+            {
+#if ($utils.isPrimitiveClass($property.className))
+                Object ${field}Value = ${field}.getValue(elContext);
+                if (${field}Value != null)
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}( ((${utils.getBoxedClass($className)}) ${field}Value ).${property.className}Value());
+#elseif ($utils.isPrimitiveClass($className))
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}( (${utils.getBoxedClass($className)}) ${field}.getValue(elContext) );
+#elseif ($utils.getClassFromFullClass($property.className) == "Locale")
+                Object ${field}Value = ${field}.getValue(elContext);
+                if (${field}Value == null)
+                {
+                    ${field}Value = FacesContext.getCurrentInstance().getViewRoot().getLocale();                
+                }
+                if(!(${field}Value instanceof java.util.Locale))
+                {
+                    ${field}Value = org.apache.myfaces.shared_tomahawk.util.LocaleUtils.converterTagLocaleFromString(${field}.getExpressionString());                    
+                }
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}((java.util.Locale)${field}Value);                
+#elseif ($utils.getClassFromFullClass($property.className) == "TimeZone")
+                Object ${field}Value = ${field}.getValue(elContext);
+                if(${field}Value instanceof java.util.TimeZone)
+                {
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                        (java.util.TimeZone) ${field}Value);
+                }
+                else
+                {
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                        java.util.TimeZone.getTimeZone(${field}Value.toString()));
+                }
+#elseif ($utils.getClassFromFullClass($property.className) == "String")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}( (String) ${field}.getValue(elContext));
+#else
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(($property.className) ${field}.getValue(elContext));
+#end
+            }
+        }
+#end
+        return converter;
+    }
+
+    public void release()
+    {
+        super.release();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#if($utils.getJspPropertyType12($property) == "boolean")
+#set ($empty = "false")
+#else
+#set ($empty = "null")
+#end
+        $field = $empty;
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagValidatorClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagValidatorClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagValidatorClass12.vm (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagValidatorClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,162 @@
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+/*
+ *  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 $utils.getPackageFromFullClass($validator.tagClass);
+
+import javax.faces.context.FacesContext;
+import javax.el.ValueExpression;
+import javax.faces.validator.Validator;
+import javax.faces.application.Application;
+import javax.servlet.jsp.JspException;
+$utils.importTagClasses($validator)
+
+// Generated from class ${validator.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class $utils.getClassFromFullClass($validator.tagClass)
+#if (${validator.tagSuperclass})
+    extends ${validator.tagSuperclass}
+#else
+    extends javax.faces.webapp.ValidatorELTag
+#end
+{
+#if ($validator.serialuidtag)
+    private static final long serialVersionUID = ${validator.serialuidtag}; 
+#end  
+
+    public $utils.getClassFromFullClass($validator.tagClass)()
+    {    
+    }    
+#set ($propertyList = ${validator.propertyTagList})
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+ 
+    private $type $field;
+    
+#set ($var = $utils.getVariableFromName($property.name))
+    public void $utils.getPrefixedPropertyName("set", $property.jspName)($type $var)
+    {
+        $field = $var;
+    }
+#end
+
+    protected Validator createValidator() throws JspException {
+        String validatorId = "$validator.validatorId";
+        Application appl = FacesContext.getCurrentInstance().getApplication();
+        Validator validator = (Validator)appl.createValidator(validatorId);
+        _setProperties(validator);
+        return validator;
+    }
+    
+    protected void _setProperties(Validator val) throws JspException {
+        super._setProperties(val);    
+        FacesContext facesContext = FacesContext.getCurrentInstance();
+
+        $validator.className validator = ($validator.className) val;
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#set ($className = $utils.getPrimitiveType($property.className))
+        if ($field != null)
+        {
+#if ($property.isLiteralOnly())
+#if ($utils.isPrimitiveClass($property.className))
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf($field).${property.className}Value());
+#elseif ($utils.isPrimitiveClass($className))
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf($field));
+#else
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}($field);
+#end
+#else        
+            if (!${field}.isLiteralText())
+            {
+                validator.setValueExpression("$property.name", $field);
+            }
+            else
+            {
+#if ($utils.isPrimitiveClass($property.className))
+                Object ${field}Value = ${field}.getValue(facesContext.getELContext());
+                if (${field}Value != null){
+                    if (${field}Value instanceof ${utils.getBoxedClass($className)}){
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ((${utils.getBoxedClass($className)})${field}Value).${property.className}Value());                        
+                    }
+                    else
+                    {
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ${utils.getBoxedClass($className)}.valueOf(${field}Value.toString()).${property.className}Value());
+                    }                    
+                }
+#elseif ($utils.isPrimitiveClass($className))
+                Object ${field}Value = ${field}.getValue(facesContext.getELContext());
+                if (${field}Value != null){
+                    if (${field}Value instanceof ${utils.getBoxedClass($className)}){
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ((${utils.getBoxedClass($className)})${field}Value));                        
+                    }
+                    else
+                    {
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ${utils.getBoxedClass($className)}.valueOf(${field}Value.toString()));
+                    }                    
+                }
+#elseif ($utils.getClassFromFullClass($property.className) == "String")
+                Object ${field}Value = ${field}.getValue(facesContext.getELContext());
+                if (${field}Value != null)
+                {
+                    validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                        ($property.className)  ${field}Value.toString());                
+                }
+#elseif ($property.className == "java.lang.String[]")
+                try
+                {
+                    String[] value = org.apache.myfaces.commons.util.TagUtils.getStringArray(${field}.getValue(facesContext.getELContext()));
+                    validator.${utils.getPrefixedPropertyName("set",$property.name)}(value);
+                }
+                catch (java.text.ParseException pe)
+                {
+                  throw new JspException(
+                    pe.getMessage() + ": " + "Position " + pe.getErrorOffset());
+                }
+#else
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}(($property.className)  ${field}.getValue(facesContext.getELContext()));
+#end
+            }
+#end
+        }
+#end
+    }
+
+    public void release()
+    {
+        super.release();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#if($utils.getJspPropertyType12($property) == "boolean")
+#set ($empty = "false")
+#else
+#set ($empty = "null")
+#end
+        $field = $empty;
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tomahawk12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tomahawk12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tomahawk12.vm (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tomahawk12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,229 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;taglib xmlns="http://java.sun.com/xml/ns/javaee" 
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 
+        version="2.1"&gt;
+  &lt;tlib-version&gt;1.1.7&lt;/tlib-version&gt;
+   &lt;short-name&gt;$shortname&lt;/short-name&gt;
+   &lt;uri&gt;$uri&lt;/uri&gt;
+   &lt;display-name&gt;$displayname&lt;/display-name&gt;
+   &lt;description&gt;$description&lt;/description&gt;
+
+$baseContent
+
+    &lt;!-- Component Tags --&gt;
+#set ($componentList = ${model.getComponents()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($utils.getTagPrefix($component.name) == $shortname) 
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($component.name)&lt;/name&gt;
+      &lt;tag-class&gt;$component.tagClass&lt;/tag-class&gt;
+#if ($component.bodyContent)
+      &lt;body-content&gt;$component.bodyContent&lt;/body-content&gt;
+#else
+      &lt;body-content&gt;JSP&lt;/body-content&gt;
+#end
+      &lt;description&gt;&lt;![CDATA[$component.longDescription]]&gt;&lt;/description&gt;
+      
+#set ($propertyList = ${component.propertyList})
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+      &lt;attribute&gt;
+         &lt;name&gt;$property.jspName&lt;/name&gt;
+#if ($property.isRequired())
+         &lt;required&gt;$property.isRequired()&lt;/required&gt;
+#end
+#if ($property.isMethodExpression() || $property.isMethodBinding())
+#if ($property.getMethodBindingSignature())
+        &lt;deferred-method&gt;
+#set ($sig = $property.getMethodBindingSignature())
+            &lt;method-signature&gt;$sig.returnType myMethod( $sig.parameterTypesAsString )&lt;/method-signature&gt;
+
+        &lt;/deferred-method&gt;
+#else
+## This is a very special case. If a property is MethodBinding or MethodExpression
+## this should have a signature. If not, for allow multiple MethodBinding
+## simulate a ValueExpression and write a custom code like in 
+## org.apache.myfaces.custom.suggestajax.AbstractSuggestAjaxTag
+         &lt;deferred-value/&gt;
+#end
+#elseif ($property.isLiteralOnly())
+         &lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
+#else
+#if ( "$!property.isRtexprvalue()" == "")
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if ($type == "String")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;deferred-value&gt;
+             &lt;type&gt;$property.className&lt;/type&gt;
+         &lt;/deferred-value&gt;
+#end
+#else
+         &lt;rtexprvalue&gt;$property.isRtexprvalue().booleanValue()&lt;/rtexprvalue&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+#end
+   &lt;/tag&gt;
+#end
+#end
+#end
+   &lt;!-- Converter tags --&gt;
+#set ($componentList = ${model.getConverters()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($utils.getTagPrefix($component.name) == $shortname) 
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($component.name)&lt;/name&gt;
+      &lt;tag-class&gt;$component.tagClass&lt;/tag-class&gt;
+#if ($component.bodyContent)
+      &lt;body-content&gt;$component.bodyContent&lt;/body-content&gt;
+#else
+      &lt;body-content&gt;empty&lt;/body-content&gt;
+#end
+      &lt;description&gt;&lt;![CDATA[$component.longDescription]]&gt;&lt;/description&gt;
+      
+#set ($propertyList = ${component.propertyList})
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+      &lt;attribute&gt;
+         &lt;name&gt;$property.name&lt;/name&gt;
+#if ($property.isRequired())
+         &lt;required&gt;$property.isRequired()&lt;/required&gt;
+#end
+#if ($property.isLiteralOnly())
+         &lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
+#else
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if ($type == "String")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;deferred-value&gt;
+             &lt;type&gt;$property.className&lt;/type&gt;
+         &lt;/deferred-value&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+#end
+   &lt;/tag&gt;
+#end
+#end
+#end
+   &lt;!-- Validator tags --&gt;
+#set ($componentList = ${model.getValidators()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($utils.getTagPrefix($component.name) == $shortname) 
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($component.name)&lt;/name&gt;
+      &lt;tag-class&gt;$component.tagClass&lt;/tag-class&gt;
+#if ($component.bodyContent)
+      &lt;body-content&gt;$component.bodyContent&lt;/body-content&gt;
+#else
+      &lt;body-content&gt;empty&lt;/body-content&gt;
+#end
+      &lt;description&gt;&lt;![CDATA[$component.longDescription]]&gt;&lt;/description&gt;
+      
+#set ($propertyList = ${component.propertyList})
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+      &lt;attribute&gt;
+         &lt;name&gt;$property.name&lt;/name&gt;
+#if ($property.isRequired())
+         &lt;required&gt;$property.isRequired()&lt;/required&gt;
+#end
+#if ($property.isLiteralOnly())
+         &lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
+#else
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if ($type == "String")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;deferred-value&gt;
+             &lt;type&gt;$property.className&lt;/type&gt;
+         &lt;/deferred-value&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+#end
+   &lt;/tag&gt;
+#end
+#end
+#end
+   &lt;!-- Single Tags --&gt;
+#set ($tagList = $model.getTags())
+#foreach( $tag in $tagList )
+#if ($modelIds.contains($tag.modelId))
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($tag.name)&lt;/name&gt;
+      &lt;tag-class&gt;$tag.className&lt;/tag-class&gt;
+      &lt;body-content&gt;$tag.bodyContent&lt;/body-content&gt;
+      &lt;description&gt;&lt;![CDATA[$tag.longDescription]]&gt;&lt;/description&gt;
+#set ($attributeList = ${tag.attributeList})
+#foreach( $attribute in $attributeList )
+      &lt;attribute&gt;
+         &lt;name&gt;$attribute.name&lt;/name&gt;
+         &lt;required&gt;$attribute.isRequired()&lt;/required&gt;
+#set ($type = $utils.getClassFromFullClass($attribute.className))
+#if ($type == "ValueExpression")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;rtexprvalue&gt;$attribute.isRtexprvalue()&lt;/rtexprvalue&gt;
+#if ($attribute.className)         
+         &lt;type&gt;$attribute.className&lt;/type&gt;
+#else
+         &lt;type&gt;java.lang.String&lt;/type&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+   &lt;/tag&gt;
+#end
+#end
+&lt;/taglib&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888664 [5/5] - in /myfaces/tomahawk/trunk: ./ core/ core/src/main/resources-filtered/ core/src/main/resources-filtered/org/ core/src/main/resources-filtered/org/apache/ core/src/main/resources-filtered/org/apache/myfaces/ core/src/main/res...</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209004435.8D2012388A32@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209004435-8D2012388A32@eris-apache-org%3e</id>
<updated>2009-12-09T00:44:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/validatorClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/validatorClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/validatorClass12.vm
(added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/validatorClass12.vm
Wed Dec  9 00:44:27 2009
@@ -0,0 +1,215 @@
+## Velocity template used to generate JSF1.2-compatible validator classes
+## from validator meta-data.
+##
+## Note that there are only one type of validator generation:
+##  * "subclass mode" (use annotated class as a parent class)
+##
+## Variable $validator refers to a ValidatorMeta object to process
+## Variable $utils refers to an instance of MyfacesUtils.
+##
+##
+## The java package of the generated class is always the same as
+## the package in which the annotated class exists.
+##
+/*
+ *  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 ${validator.packageName};
+
+import javax.el.ValueExpression;
+import javax.faces.context.FacesContext;
+$utils.importTagClasses($validator)
+
+#if ($validator.isTemplate())
+#set ($generatedClassParent = $validator.sourceClassParentClassName)
+#else
+#set ($generatedClassParent = $validator.sourceClassName)
+#end
+// Generated from class ${validator.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class ${utils.getClassFromFullClass($validator.className)} extends $generatedClassParent
+#if ($validator.implements)
+    implements $validator.implements
+#end
+{
+
+#if ($validator.validatorId)
+    static public final String VALIDATOR_ID = 
+        "$validator.validatorId";
+#end
+
+    public ${utils.getClassFromFullClass($validator.className)}()
+    {
+    }
+    
+#set ($propertyList = ${validator.propertyValidatorList})
+
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if($utils.getDefaultValueField($property)) 
+#set ($defaultValue = $utils.getDefaultValueField($property))
+#else
+#set ($defaultValue = false)
+#end
+    // Property: $property.name
+#if ($property.isLiteralOnly() || $property.isTagExcluded() )
+    private $type $field #if($defaultValue) = $defaultValue;#{else};#{end}
+
+     
+#else
+    private $type $field;
+    
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() )
+    private boolean ${field}Set;
+    
+#if ($property.isSetMethod())
+    $property.setMethodScope boolean $utils.getPrefixedPropertyName("isSet", $property.name)()
+    {
+        return ${field}Set;
+    }
+#end
+#end
+#if($property.isLocalMethod())
+#if("boolean" == $type)
+#set ($methodName = $utils.getPrefixedPropertyName("isLocal", $property.name))
+#else
+#set ($methodName = $utils.getPrefixedPropertyName("getLocal", $property.name))
+#end
+    final $property.localMethodScope $type ${methodName}()
+    {
+        return $field;
+    }
+     
+#end
+    public $type $utils.getMethodReaderFromProperty($property.name, $type)()
+    {
+#if ($property.isTagExcluded() || $property.isLiteralOnly())
+        return $field;
+#else
+#if ($utils.isPrimitiveClass($type))
+        if (${field}Set)
+#else
+        if ($field != null)
+#end
+        {
+            return $field;
+        }
+        ValueExpression vb = getValueExpression("$property.name");
+        if (vb != null)
+        {
+#if ($utils.isPrimitiveClass($type))
+            return ($utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext())).${type}Value();
+#else
+#set ($pritype = $utils.getPrimitiveType($property.className))
+#if ($utils.isPrimitiveClass($pritype))
+            Object value = vb == null ? null : vb.getValue(getFacesContext().getELContext());
+            if (!(value instanceof $type)){
+                value = ${type}.valueOf(value.toString());
+            }            
+            return $utils.castIfNecessary($type) value;
+#else
+            return $utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext());
+#end
+#end
+        }
+#if ($defaultValue)
+        return $defaultValue; 
+#elseif ($utils.isPrimitiveClass($type))
+        return $utils.primitiveDefaultValue($type);
+#else       
+        return null;
+#end
+#end
+    }
+
+    public void $utils.getPrefixedPropertyName("set", $property.name)($type $utils.getVariableFromName($property.name))
+    {
+        this.$field = $utils.getVariableFromName($property.name);
+#if ($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() )
+        this.${field}Set = true;        
+#end
+    }
+#end
+
+    public Object saveState(FacesContext facesContext)
+    {
+#set ($primitiveCount = $propertyList.size() + 1)
+#foreach( $property in $propertyList )
+#if($utils.isPrimitiveClass($property.className))
+#set ($primitiveCount = $primitiveCount + 1)
+#end
+#end
+        Object[] values = new Object[$primitiveCount];
+        values[0] = super.saveState(facesContext);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        values[$arrayIndex] = saveAttachedState(facesContext,${field}List);
+#elseif ( $property.isStateHolder() )## || $utils.isConverter($type)
+        values[$arrayIndex] = saveAttachedState(facesContext,$field);
+#elseif($utils.isPrimitiveClass($type))
+        values[$arrayIndex] = ${utils.getBoxedClass($type)}.valueOf($field);
+#else
+        values[$arrayIndex] = $field;
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded())
+#set ($arrayIndex = $arrayIndex + 1)
+        values[$arrayIndex] = Boolean.valueOf(${field}Set);
+#end
+#end
+        return values; 
+    }
+
+    public void restoreState(FacesContext facesContext, Object state)
+    {
+        Object[] values = (Object[])state;
+        super.restoreState(facesContext,values[0]);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ( $property.isStateHolder() )
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        ${field}List = (List&lt;Validator&gt;) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isList($type))
+        $field = (List) restoreAttachedState(facesContext,values[$arrayIndex]);
+#else
+        $field = $utils.castIfNecessary($type) restoreAttachedState(facesContext,values[$arrayIndex]);

+#end
+#elseif ($utils.isConverter($type)) 
+        $field = (Converter) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isPrimitiveClass($type))
+        $field = ($utils.castIfNecessary($type) values[$arrayIndex]).${type}Value();
+#else
+        $field = $utils.castIfNecessary($type) values[$arrayIndex];
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() )
+#set ($arrayIndex = $arrayIndex + 1)
+        ${field}Set = ((Boolean) values[$arrayIndex]).booleanValue();
+#end
+#end
+    }
+}

Modified: myfaces/tomahawk/trunk/sandbox/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/pom.xml?rev=888664&amp;r1=888663&amp;r2=888664&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/pom.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/pom.xml Wed Dec  9 00:44:27 2009
@@ -40,6 +40,7 @@
   &lt;modules&gt;
     &lt;module&gt;core&lt;/module&gt;
     &lt;module&gt;core12&lt;/module&gt;
+    &lt;module&gt;core20&lt;/module&gt;
     &lt;module&gt;examples&lt;/module&gt;
   &lt;/modules&gt;
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888664 [1/5] - in /myfaces/tomahawk/trunk: ./ core/ core/src/main/resources-filtered/ core/src/main/resources-filtered/org/ core/src/main/resources-filtered/org/apache/ core/src/main/resources-filtered/org/apache/myfaces/ core/src/main/res...</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209004435.731FA23889DF@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209004435-731FA23889DF@eris-apache-org%3e</id>
<updated>2009-12-09T00:44:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Wed Dec  9 00:44:27 2009
New Revision: 888664

URL: http://svn.apache.org/viewvc?rev=888664&amp;view=rev
Log:
TOMAHAWK-1470 Setup tomahawk core and sandbox code module for JSF 2.0

Added:
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/html/
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/html/util/
    myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/html/util/AddResource.properties
    myfaces/tomahawk/trunk/core20/   (with props)
    myfaces/tomahawk/trunk/core20/pom.xml
    myfaces/tomahawk/trunk/core20/src/
    myfaces/tomahawk/trunk/core20/src/main/
    myfaces/tomahawk/trunk/core20/src/main/conf/
    myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/
    myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/facelets-taglib-base.xml
    myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/faces-config-base.xml
    myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/tomahawk-base.tld
    myfaces/tomahawk/trunk/core20/src/main/java/
    myfaces/tomahawk/trunk/core20/src/main/java/org/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeanTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeansScopeTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/facelets/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/facelets/tag/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/facelets/tag/MethodRule.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/schedule/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlPanelTabbedPaneTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/TabChangeListenerTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/IconProviderTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeSelectionListenerTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/updateactionlistener/
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/updateactionlistener/UpdateActionListenerTagHandler.java
    myfaces/tomahawk/trunk/core20/src/main/resources/
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/LICENSE.txt
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/NOTICE.txt
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/componentClass12.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/facelets-taglib.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/faces-config12.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/dojo-LICENSE.TXT
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagClass12.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagConverterClass12.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagValidatorClass12.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tomahawk12.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/validatorClass12.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-component.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-converter.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-tag.vm
    myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-validator.vm
    myfaces/tomahawk/trunk/core20/src/test/
    myfaces/tomahawk/trunk/core20/src/test/java/
    myfaces/tomahawk/trunk/core20/src/test/resources/
    myfaces/tomahawk/trunk/sandbox/core20/   (with props)
    myfaces/tomahawk/trunk/sandbox/core20/pom.xml
    myfaces/tomahawk/trunk/sandbox/core20/src/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/facelets-taglib-base.xml
    myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/faces-config-base.xml
    myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/myfaces_sandbox-base.tld
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/ajaxchildcombobox/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/ajaxchildcombobox/AjaxChildComboBoxTagHandler.java
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxTagHandler.java
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxTagHandler.java
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/LICENSE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/NOTICE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/componentClass12.vm
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/facelets-taglib.vm
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/faces-config12.vm
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/iText-LICENSE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagClass12.vm
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagConverterClass12.vm
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tagValidatorClass12.vm
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/tomahawk12.vm
    myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/validatorClass12.vm
Removed:
    myfaces/tomahawk/trunk/core/src/main/resources/org/apache/myfaces/renderkit/html/util/
Modified:
    myfaces/tomahawk/trunk/core/pom.xml
    myfaces/tomahawk/trunk/core12/pom.xml
    myfaces/tomahawk/trunk/examples/pom.xml
    myfaces/tomahawk/trunk/pom.xml
    myfaces/tomahawk/trunk/sandbox/core/pom.xml
    myfaces/tomahawk/trunk/sandbox/core12/pom.xml
    myfaces/tomahawk/trunk/sandbox/pom.xml

Modified: myfaces/tomahawk/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/pom.xml?rev=888664&amp;r1=888663&amp;r2=888664&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/pom.xml (original)
+++ myfaces/tomahawk/trunk/core/pom.xml Wed Dec  9 00:44:27 2009
@@ -126,12 +126,6 @@
       &lt;version&gt;1.6-1&lt;/version&gt;
     &lt;/dependency&gt;   
 
-    &lt;dependency&gt;
-      &lt;groupId&gt;com.lowagie&lt;/groupId&gt;
-      &lt;artifactId&gt;itext&lt;/artifactId&gt;
-      &lt;version&gt;1.4.8&lt;/version&gt;
-    &lt;/dependency&gt; 
-
     &lt;!-- provided dependencies --&gt;
 
     &lt;dependency&gt;
@@ -299,18 +293,27 @@
         &lt;/excludes&gt;
       &lt;/resource&gt;
       &lt;resource&gt;
+        &lt;directory&gt;src/main/resources-filtered&lt;/directory&gt;
+        &lt;filtering&gt;true&lt;/filtering&gt;
+      &lt;/resource&gt;
+      
+      &lt;!-- 
+      &lt;resource&gt;
         &lt;directory&gt;src/main/resources&lt;/directory&gt;
         &lt;filtering&gt;true&lt;/filtering&gt;
         &lt;includes&gt;
+         --&gt;
             &lt;!-- Used in the resources URL, to enable caching the 
                resources on the client.
                See MyfacesResourceLoader.getLastModified() --&gt;
+               &lt;!-- 
             &lt;include&gt;**/AddResource.properties&lt;/include&gt;
         &lt;/includes&gt;
         &lt;excludes&gt;
            &lt;exclude&gt;**/*.vm&lt;/exclude&gt;
         &lt;/excludes&gt;
       &lt;/resource&gt;
+       --&gt;
       &lt;!--       
       &lt;resource&gt;
         &lt;directory&gt;src/main/resources-facesconfig&lt;/directory&gt;
@@ -489,7 +492,7 @@
                 &lt;artifactItem&gt;
                    &lt;groupId&gt;org.apache.myfaces.shared&lt;/groupId&gt;
                    &lt;artifactId&gt;myfaces-shared-tomahawk&lt;/artifactId&gt;
-                   &lt;version&gt;${myfaces-shared.version}&lt;/version&gt;
+                   &lt;version&gt;${myfaces-shared11-version}&lt;/version&gt;
                  &lt;/artifactItem&gt;
                &lt;/artifactItems&gt;
                &lt;outputDirectory&gt;${project.build.directory}/classes&lt;/outputDirectory&gt;
@@ -508,7 +511,7 @@
                     &lt;artifactItem&gt;
                         &lt;groupId&gt;org.apache.myfaces.shared&lt;/groupId&gt;
                         &lt;artifactId&gt;myfaces-shared-tomahawk&lt;/artifactId&gt;
-                        &lt;version&gt;${myfaces-shared.version}&lt;/version&gt;
+                        &lt;version&gt;${myfaces-shared11-version}&lt;/version&gt;
                         &lt;classifier&gt;sources&lt;/classifier&gt;
                     &lt;/artifactItem&gt;
                 &lt;/artifactItems&gt;
@@ -551,6 +554,14 @@
           &lt;/execution&gt;
         &lt;/executions&gt;
       &lt;/plugin&gt;
+      &lt;plugin&gt;
+        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+        &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+        &lt;configuration&gt;
+          &lt;source&gt;1.4&lt;/source&gt;
+          &lt;target&gt;1.4&lt;/target&gt;
+        &lt;/configuration&gt;
+      &lt;/plugin&gt;
     &lt;/plugins&gt;
 
   &lt;/build&gt;

Added: myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/html/util/AddResource.properties
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/html/util/AddResource.properties?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/html/util/AddResource.properties (added)
+++ myfaces/tomahawk/trunk/core/src/main/resources-filtered/org/apache/myfaces/renderkit/html/util/AddResource.properties Wed Dec  9 00:44:27 2009
@@ -0,0 +1,3 @@
+# Used in the resources URL, to enable caching the resources on the client.
+# See MyfacesResourceLoader.getLastModified()
+lastModified=${tomahawk.lastModified}

Modified: myfaces/tomahawk/trunk/core12/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core12/pom.xml?rev=888664&amp;r1=888663&amp;r2=888664&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core12/pom.xml (original)
+++ myfaces/tomahawk/trunk/core12/pom.xml Wed Dec  9 00:44:27 2009
@@ -118,12 +118,6 @@
       &lt;artifactId&gt;batik-awt-util&lt;/artifactId&gt;
       &lt;version&gt;1.6-1&lt;/version&gt;
     &lt;/dependency&gt;   
-
-    &lt;dependency&gt;
-      &lt;groupId&gt;com.lowagie&lt;/groupId&gt;
-      &lt;artifactId&gt;itext&lt;/artifactId&gt;
-      &lt;version&gt;1.4.8&lt;/version&gt;
-    &lt;/dependency&gt; 
       
       &lt;!--
       &lt;dependency&gt;

Propchange: myfaces/tomahawk/trunk/core20/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Dec  9 00:44:27 2009
@@ -0,0 +1,10 @@
+*.iml
+*.ipr
+*.iws
+*.jdbc
+.classpath
+.externalToolBuilders
+.project
+.settings
+maven-eclipse.xml
+target

Added: myfaces/tomahawk/trunk/core20/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/pom.xml?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/pom.xml (added)
+++ myfaces/tomahawk/trunk/core20/pom.xml Wed Dec  9 00:44:27 2009
@@ -0,0 +1,785 @@
+&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+
+  &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+  &lt;artifactId&gt;tomahawk20&lt;/artifactId&gt;
+  &lt;packaging&gt;jar&lt;/packaging&gt;
+  &lt;name&gt;Tomahawk 2.0 Core&lt;/name&gt;
+  &lt;description&gt;
+    JSF components and utilities that can be used with any JSF implementation.
+    This library is based on the JSF1.1 version of Tomahawk, but with minor source code and build
+    changes to take advantage of JSF2.0 features. A JSF2.0 implementation is required to use this
+    version of the Tomahawk library.
+  &lt;/description&gt;
+
+  &lt;parent&gt;
+    &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+    &lt;artifactId&gt;tomahawk-project&lt;/artifactId&gt;
+    &lt;version&gt;1.1.10-SNAPSHOT&lt;/version&gt;
+  &lt;/parent&gt;
+
+  &lt;scm&gt;
+    &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/myfaces/tomahawk/trunk/core20&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/myfaces/tomahawk/trunk/core20&lt;/developerConnection&gt;
+    &lt;url&gt;http://svn.apache.org/viewcvs.cgi/myfaces/tomahawk/trunk/core20&lt;/url&gt;
+  &lt;/scm&gt;
+
+  &lt;dependencies&gt;
+
+    &lt;!-- compile dependencies --&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;commons-logging&lt;/groupId&gt;
+      &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
+      &lt;version&gt;1.1.1&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+    
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;commons-validator&lt;/groupId&gt;
+      &lt;artifactId&gt;commons-validator&lt;/artifactId&gt;
+      &lt;version&gt;1.3.1&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;commons-fileupload&lt;/groupId&gt;
+      &lt;artifactId&gt;commons-fileupload&lt;/artifactId&gt;
+      &lt;version&gt;1.2.1&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;!-- Transitive dependency from commons-fileupload.
+    in 2.0 it was declared optional, but t:inputFileUpload
+    uses it indirectly, so it is necessary to include it
+    in our pom as runtime dependency  --&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;commons-io&lt;/groupId&gt;
+      &lt;artifactId&gt;commons-io&lt;/artifactId&gt;
+      &lt;version&gt;1.3.2&lt;/version&gt;
+      &lt;scope&gt;runtime&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;commons-collections&lt;/groupId&gt;
+      &lt;artifactId&gt;commons-collections&lt;/artifactId&gt;
+      &lt;version&gt;3.2.1&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;struts&lt;/groupId&gt;
+      &lt;artifactId&gt;struts&lt;/artifactId&gt;
+      &lt;version&gt;1.2.9&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+      &lt;optional&gt;true&lt;/optional&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.tiles&lt;/groupId&gt;
+      &lt;artifactId&gt;tiles-core&lt;/artifactId&gt;
+      &lt;version&gt;2.0.6&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+      &lt;optional&gt;true&lt;/optional&gt;        
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;commons-codec&lt;/groupId&gt;
+      &lt;artifactId&gt;commons-codec&lt;/artifactId&gt;
+      &lt;version&gt;1.3&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;oro&lt;/groupId&gt;
+      &lt;artifactId&gt;oro&lt;/artifactId&gt;
+      &lt;version&gt;2.0.8&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;commons-lang&lt;/groupId&gt;
+      &lt;artifactId&gt;commons-lang&lt;/artifactId&gt;
+      &lt;version&gt;2.4&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+      &lt;artifactId&gt;jstl&lt;/artifactId&gt;
+      &lt;version&gt;1.2&lt;/version&gt;
+      &lt;scope&gt;compile&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;batik&lt;/groupId&gt;
+      &lt;artifactId&gt;batik-awt-util&lt;/artifactId&gt;
+      &lt;version&gt;1.6-1&lt;/version&gt;
+    &lt;/dependency&gt;   
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;com.lowagie&lt;/groupId&gt;
+      &lt;artifactId&gt;itext&lt;/artifactId&gt;
+      &lt;version&gt;1.4.8&lt;/version&gt;
+    &lt;/dependency&gt; 
+      
+      &lt;!--
+      &lt;dependency&gt;
+          &lt;groupId&gt;org.apache.myfaces.commons&lt;/groupId&gt;
+          &lt;artifactId&gt;myfaces-validators&lt;/artifactId&gt;
+          &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
+          &lt;scope&gt;runtime&lt;/scope&gt;
+      &lt;/dependency&gt;      
+      --&gt;
+    &lt;!-- provided dependencies --&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.myfaces.core&lt;/groupId&gt;
+      &lt;artifactId&gt;myfaces-api&lt;/artifactId&gt;
+      &lt;version&gt;${myfaces-core20-version}&lt;/version&gt;
+      &lt;scope&gt;provided&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.myfaces.shared&lt;/groupId&gt;
+      &lt;artifactId&gt;myfaces-shared-tomahawk&lt;/artifactId&gt;
+      &lt;version&gt;${myfaces-shared20-version}&lt;/version&gt;
+      &lt;scope&gt;provided&lt;/scope&gt; &lt;!-- because we add all classes to the jar directly --&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;javax.servlet.jsp&lt;/groupId&gt;
+      &lt;artifactId&gt;jsp-api&lt;/artifactId&gt;
+      &lt;version&gt;2.1&lt;/version&gt;
+      &lt;scope&gt;provided&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+      &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
+      &lt;version&gt;2.5&lt;/version&gt;
+      &lt;scope&gt;provided&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;portlet-api&lt;/groupId&gt;
+      &lt;artifactId&gt;portlet-api&lt;/artifactId&gt;
+      &lt;version&gt;1.0&lt;/version&gt;
+      &lt;scope&gt;provided&lt;/scope&gt;
+    &lt;/dependency&gt;
+    
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
+      &lt;artifactId&gt;myfaces-builder-annotations&lt;/artifactId&gt; 
+      &lt;version&gt;1.0.4&lt;/version&gt;
+      &lt;scope&gt;provided&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;!-- 
+    &lt;dependency&gt;
+      &lt;groupId&gt;com.sun.facelets&lt;/groupId&gt;
+      &lt;artifactId&gt;jsf-facelets&lt;/artifactId&gt;
+      &lt;scope&gt;provided&lt;/scope&gt;
+    &lt;/dependency&gt;
+     --&gt;
+    
+    &lt;!-- test dependencies --&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.myfaces.core&lt;/groupId&gt;
+      &lt;artifactId&gt;myfaces-impl&lt;/artifactId&gt;
+      &lt;version&gt;${myfaces-core20-version}&lt;/version&gt;
+      &lt;!--
+        Since Tomahawk must stay compatible to other JSF implementations we
+        must not have any (compile time) dependency on myfaces-impl other than
+        test classes.
+      --&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;joda-time&lt;/groupId&gt;
+      &lt;artifactId&gt;joda-time&lt;/artifactId&gt;
+      &lt;version&gt;1.5.2&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;cactus&lt;/groupId&gt;
+      &lt;artifactId&gt;cactus&lt;/artifactId&gt;
+      &lt;version&gt;13-1.7.2&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
+      &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt;
+      &lt;version&gt;1.5.4&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;easymock&lt;/groupId&gt;
+      &lt;artifactId&gt;easymock&lt;/artifactId&gt;
+      &lt;version&gt;1.1&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;easymock&lt;/groupId&gt;
+      &lt;artifactId&gt;easymockclassextension&lt;/artifactId&gt;
+      &lt;version&gt;1.1&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.shale&lt;/groupId&gt;
+      &lt;artifactId&gt;shale-test&lt;/artifactId&gt;
+      &lt;version&gt;1.0.4&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+      &lt;exclusions&gt;
+        &lt;exclusion&gt;
+          &lt;groupId&gt;org.apache.myfaces&lt;/groupId&gt;
+          &lt;artifactId&gt;myfaces-api&lt;/artifactId&gt;
+        &lt;/exclusion&gt;
+        &lt;exclusion&gt;
+          &lt;groupId&gt;org.apache.myfaces&lt;/groupId&gt;
+          &lt;artifactId&gt;myfaces-impl&lt;/artifactId&gt;
+        &lt;/exclusion&gt;
+        &lt;exclusion&gt;
+          &lt;groupId&gt;myfaces&lt;/groupId&gt;
+          &lt;artifactId&gt;myfaces-api&lt;/artifactId&gt;
+        &lt;/exclusion&gt;
+        &lt;exclusion&gt;
+          &lt;groupId&gt;myfaces&lt;/groupId&gt;
+          &lt;artifactId&gt;myfaces-impl&lt;/artifactId&gt;
+        &lt;/exclusion&gt;
+      &lt;/exclusions&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;jmock&lt;/groupId&gt;
+      &lt;artifactId&gt;jmock&lt;/artifactId&gt;
+      &lt;version&gt;1.0.1&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;jmock&lt;/groupId&gt;
+      &lt;artifactId&gt;jmock-cglib&lt;/artifactId&gt;
+      &lt;version&gt;1.0.1&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+      &lt;groupId&gt;maven-taglib&lt;/groupId&gt;
+      &lt;artifactId&gt;maven-taglib-plugin&lt;/artifactId&gt;
+      &lt;version&gt;1.4.2&lt;/version&gt;
+      &lt;scope&gt;test&lt;/scope&gt;
+    &lt;/dependency&gt;   
+
+  &lt;/dependencies&gt;
+
+  &lt;build&gt;
+
+    &lt;resources&gt;
+      &lt;resource&gt;
+        &lt;directory&gt;src/main/resources&lt;/directory&gt;
+        &lt;excludes&gt;
+           &lt;exclude&gt;**/*.vm&lt;/exclude&gt;
+        &lt;/excludes&gt;
+      &lt;/resource&gt;
+      &lt;!--       
+      &lt;resource&gt;
+        &lt;directory&gt;src/main/resources-facesconfig&lt;/directory&gt;
+      &lt;/resource&gt;
+       --&gt;
+      &lt;resource&gt;
+        &lt;directory&gt;target/tomahawk12_resources&lt;/directory&gt;
+      &lt;/resource&gt;       
+    &lt;/resources&gt;
+    &lt;pluginManagement&gt;
+      &lt;plugins&gt;
+        &lt;plugin&gt;
+          &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;
+          &lt;configuration&gt;
+            &lt;archive&gt;
+              &lt;manifestEntries&gt;
+                &lt;X-Compile-Source-JDK&gt;1.5&lt;/X-Compile-Source-JDK&gt;
+                &lt;X-Compile-Target-JDK&gt;1.5&lt;/X-Compile-Target-JDK&gt;
+              &lt;/manifestEntries&gt;
+            &lt;/archive&gt;
+          &lt;/configuration&gt;
+        &lt;/plugin&gt;
+      &lt;/plugins&gt;
+    &lt;/pluginManagement&gt;
+    &lt;plugins&gt;
+      &lt;plugin&gt;
+        &lt;!-- 
+          - Add two new source directories to the compile path. Other plugins will write files into
+          - those directories. Note that when building the source jars, these directories are
+          - automatically used too.
+          -
+          - * shared_sources: contains code from the 2.0.x branch of the myfaces-shared project
+          - * tomahawk12_sources: contains all the source code from the "main" branch of tomahawk,
+          -   which is written to be JSF1.1-compatible.
+          --&gt;
+        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+        &lt;artifactId&gt;build-helper-maven-plugin&lt;/artifactId&gt;
+        &lt;executions&gt;
+            &lt;execution&gt;
+                &lt;id&gt;add-source&lt;/id&gt;
+                &lt;phase&gt;generate-sources&lt;/phase&gt;
+                &lt;!-- &lt;phase&gt;process-sources&lt;/phase&gt; --&gt;
+                &lt;goals&gt;
+                    &lt;goal&gt;add-source&lt;/goal&gt;
+                &lt;/goals&gt;
+                &lt;configuration&gt;
+                    &lt;sources&gt;
+                        &lt;source&gt;
+                            ${project.build.directory}/shared_sources
+                        &lt;/source&gt;
+                        &lt;source&gt;
+                            ${project.build.directory}/tomahawk12_sources
+                        &lt;/source&gt;
+                    &lt;/sources&gt;
+                &lt;/configuration&gt;
+            &lt;/execution&gt;
+        &lt;/executions&gt;
+      &lt;/plugin&gt;    
+      &lt;plugin&gt;
+        &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
+        &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
+        &lt;version&gt;1.0.4&lt;/version&gt;
+        &lt;executions&gt;
+          &lt;execution&gt;
+            &lt;id&gt;unpack-tomahawk&lt;/id&gt;
+            &lt;phase&gt;generate-sources&lt;/phase&gt;
+            &lt;!-- &lt;phase&gt;process-resources&lt;/phase&gt; --&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;unpack&lt;/goal&gt;
+            &lt;/goals&gt;
+            &lt;configuration&gt;
+              &lt;scanModel&gt;true&lt;/scanModel&gt;
+              &lt;artifactItems&gt;
+                &lt;artifactItem&gt;
+                  &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+                  &lt;artifactId&gt;tomahawk12&lt;/artifactId&gt;
+                  &lt;version&gt;${pom.version}&lt;/version&gt;
+                  &lt;classifier&gt;sources&lt;/classifier&gt;                   
+                  &lt;!-- &lt;outputDirectory&gt;${project.build.directory}/unpacktomahawksources&lt;/outputDirectory&gt; --&gt;
+                  &lt;outputDirectory&gt;${project.build.directory}/tomahawk12_sources&lt;/outputDirectory&gt;
+                  &lt;includes&gt;**/*.java&lt;/includes&gt;
+                  &lt;excludes&gt;**/*.class,**/META-INF/**,org/apache/myfaces/shared_tomahawk/**/*.java&lt;/excludes&gt;
+                &lt;/artifactItem&gt;
+              &lt;/artifactItems&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;
+          &lt;execution&gt;
+            &lt;id&gt;unpack-tomahawk-resources&lt;/id&gt;
+            &lt;phase&gt;generate-resources&lt;/phase&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;unpack&lt;/goal&gt;
+            &lt;/goals&gt;
+            &lt;configuration&gt;
+              &lt;baseDirectory1&gt;${basedir}/src/main/resources&lt;/baseDirectory1&gt;
+              &lt;artifactItems&gt;
+                &lt;artifactItem&gt;
+                  &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+                  &lt;artifactId&gt;tomahawk12&lt;/artifactId&gt;
+                  &lt;version&gt;${pom.version}&lt;/version&gt;                                   
+                  &lt;outputDirectory&gt;${project.build.directory}/tomahawk12_resources&lt;/outputDirectory&gt;
+                  &lt;excludes&gt;**/*.class,**/META-INF/**&lt;/excludes&gt;
+                &lt;/artifactItem&gt;
+              &lt;/artifactItems&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;
+          &lt;execution&gt;
+            &lt;!-- A hierarchy of different tag classes must be created, 
+            because this classes are not part of the public api. The
+            generation of all html package is the same. Please note that
+            we need only a subset --&gt;
+            &lt;configuration&gt;
+                &lt;replacePackagePrefixTagFrom&gt;org.apache.myfaces.taglib&lt;/replacePackagePrefixTagFrom&gt;
+                &lt;replacePackagePrefixTagTo&gt;org.apache.myfaces.shared_tomahawk.taglib&lt;/replacePackagePrefixTagTo&gt;
+            &lt;/configuration&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;build-metadata&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;
+          &lt;execution&gt;
+            &lt;id&gt;makefacesconfig&lt;/id&gt;
+            &lt;configuration&gt;
+                &lt;templateFile&gt;faces-config12.vm&lt;/templateFile&gt;
+                &lt;xmlFile&gt;META-INF/faces-config.xml&lt;/xmlFile&gt;
+            &lt;/configuration&gt;
+            &lt;goals&gt;
+                &lt;goal&gt;make-config&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;
+          &lt;execution&gt;
+            &lt;id&gt;makecomp&lt;/id&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;make-components&lt;/goal&gt;
+            &lt;/goals&gt;
+            &lt;configuration&gt;
+               &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+               &lt;templateComponentName&gt;componentClass12.vm&lt;/templateComponentName&gt;
+               &lt;mainSourceDirectory2&gt;${project.build.directory}/tomahawk12_sources&lt;/mainSourceDirectory2&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;          
+          &lt;execution&gt;
+            &lt;id&gt;makeval&lt;/id&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;make-validators&lt;/goal&gt;
+            &lt;/goals&gt;
+            &lt;configuration&gt;
+               &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+               &lt;templateValidatorName&gt;validatorClass12.vm&lt;/templateValidatorName&gt;
+               &lt;mainSourceDirectory2&gt;${project.build.directory}/tomahawk12_sources&lt;/mainSourceDirectory2&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;
+          &lt;execution&gt;
+            &lt;id&gt;make_tags_myfaces_core&lt;/id&gt;
+            &lt;configuration&gt;
+                &lt;packageContains&gt;org.apache.myfaces.shared_tomahawk.taglib&lt;/packageContains&gt;
+                &lt;typePrefix&gt;javax.faces&lt;/typePrefix&gt;
+                &lt;modelIds&gt;
+                    &lt;!-- All the info needed is on myfaces-api package --&gt;
+                    &lt;modelId&gt;myfaces-api&lt;/modelId&gt;
+                &lt;/modelIds&gt;
+                &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+                &lt;templateTagName&gt;tagClass12.vm&lt;/templateTagName&gt;
+            &lt;/configuration&gt;
+            &lt;goals&gt;
+                &lt;goal&gt;make-tags&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;
+          &lt;execution&gt;
+            &lt;id&gt;make_tags_tomahawk&lt;/id&gt;
+            &lt;configuration&gt;
+               &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+               &lt;templateTagName&gt;tagClass12.vm&lt;/templateTagName&gt;
+               &lt;mainSourceDirectory2&gt;${project.build.directory}/tomahawk12_sources&lt;/mainSourceDirectory2&gt;
+            &lt;/configuration&gt;            
+            &lt;goals&gt;
+                &lt;goal&gt;make-tags&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;
+          &lt;execution&gt;
+            &lt;id&gt;make_validator_tags_tomahawk&lt;/id&gt;
+            &lt;configuration&gt;
+               &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+               &lt;mainSourceDirectory2&gt;${project.build.directory}/tomahawk12_sources&lt;/mainSourceDirectory2&gt;
+            &lt;/configuration&gt;            
+            &lt;goals&gt;
+                &lt;goal&gt;make-validator-tags&lt;/goal&gt;
+                &lt;goal&gt;make-converter-tags&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;          
+          &lt;execution&gt;
+            &lt;id&gt;maketomahawktld&lt;/id&gt;
+            &lt;configuration&gt;
+                &lt;xmlFile&gt;META-INF/tomahawk.tld&lt;/xmlFile&gt;
+                &lt;xmlBaseFile&gt;src/main/conf/META-INF/tomahawk-base.tld&lt;/xmlBaseFile&gt;
+                &lt;templateFile&gt;tomahawk12.vm&lt;/templateFile&gt;
+                &lt;params&gt;
+                   &lt;shortname&gt;t&lt;/shortname&gt;
+                   &lt;uri&gt;http://myfaces.apache.org/tomahawk&lt;/uri&gt;
+                   &lt;displayname&gt;Tomahawk tag library 2.0.&lt;/displayname&gt;
+                   &lt;description&gt; MyFaces subproject that contains components and other goodies to be used with any JSF implementation.&lt;/description&gt;
+                &lt;/params&gt;
+                &lt;modelIds&gt;
+                    &lt;modelId&gt;tomahawk20&lt;/modelId&gt;
+                &lt;/modelIds&gt;
+            &lt;/configuration&gt;
+            &lt;goals&gt;
+                &lt;goal&gt;make-config&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;        
+          &lt;execution&gt;
+            &lt;id&gt;maketomahawktaglib&lt;/id&gt;
+            &lt;configuration&gt;
+                &lt;xmlFile&gt;META-INF/tomahawk.taglib.xml&lt;/xmlFile&gt;
+                &lt;xmlBaseFile&gt;src/main/conf/META-INF/facelets-taglib-base.xml&lt;/xmlBaseFile&gt;
+                &lt;templateFile&gt;facelets-taglib.vm&lt;/templateFile&gt;
+                &lt;params&gt;
+                   &lt;shortname&gt;t&lt;/shortname&gt;
+                   &lt;uri&gt;http://myfaces.apache.org/tomahawk&lt;/uri&gt;
+                &lt;/params&gt;
+                &lt;modelIds&gt;
+                    &lt;modelId&gt;tomahawk20&lt;/modelId&gt;
+                &lt;/modelIds&gt;
+            &lt;/configuration&gt;
+            &lt;goals&gt;
+                &lt;goal&gt;make-config&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;        
+        &lt;/executions&gt;
+      &lt;/plugin&gt;
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.4.2&lt;/version&gt;
+        &lt;configuration&gt;
+          &lt;excludes&gt;
+            &lt;exclude&gt;**/Abstract*.java&lt;/exclude&gt;
+            &lt;exclude&gt;**/*HtmlDateRendererTest*&lt;/exclude&gt;
+            &lt;exclude&gt;**/TestUtils.java&lt;/exclude&gt;
+          &lt;/excludes&gt;
+        &lt;/configuration&gt;
+      &lt;/plugin&gt;
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.0&lt;/version&gt;
+        &lt;executions&gt;
+          &lt;execution&gt;
+            &lt;id&gt;unpack-shared-tomahawk&lt;/id&gt;
+            &lt;phase&gt;process-classes&lt;/phase&gt;
+            &lt;goals&gt;&lt;goal&gt;unpack&lt;/goal&gt;&lt;/goals&gt;
+            &lt;configuration&gt;
+              &lt;excludes&gt;META-INF/*.*&lt;/excludes&gt;
+              &lt;artifactItems&gt;
+                &lt;artifactItem&gt;
+                   &lt;groupId&gt;org.apache.myfaces.shared&lt;/groupId&gt;
+                   &lt;artifactId&gt;myfaces-shared-tomahawk&lt;/artifactId&gt;
+                   &lt;version&gt;${myfaces-shared20-version}&lt;/version&gt;
+                 &lt;/artifactItem&gt;
+               &lt;/artifactItems&gt;
+               &lt;outputDirectory&gt;${project.build.directory}/classes&lt;/outputDirectory&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;
+          &lt;!-- unpack the shared sources into target/shared_sources--&gt;
+          &lt;execution&gt;
+            &lt;id&gt;unpack-shared-impl-sources&lt;/id&gt;
+            &lt;phase&gt;process-sources&lt;/phase&gt;
+            &lt;goals&gt;
+                &lt;goal&gt;unpack&lt;/goal&gt;
+            &lt;/goals&gt;
+            &lt;configuration&gt;
+                &lt;excludes&gt;META-INF/*.*&lt;/excludes&gt;
+                &lt;artifactItems&gt;
+                    &lt;artifactItem&gt;
+                        &lt;groupId&gt;org.apache.myfaces.shared&lt;/groupId&gt;
+                        &lt;artifactId&gt;myfaces-shared-tomahawk&lt;/artifactId&gt;
+                        &lt;version&gt;${myfaces-shared20-version}&lt;/version&gt;
+                        &lt;classifier&gt;sources&lt;/classifier&gt;
+                    &lt;/artifactItem&gt;
+                &lt;/artifactItems&gt;
+                &lt;outputDirectory&gt;${project.build.directory}/shared_sources&lt;/outputDirectory&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;
+        &lt;/executions&gt;
+      &lt;/plugin&gt;
+      &lt;!-- the following will add the unpacked shared sources directory as source directory into the pom,
+           so also the shared sources are automaticaly included by the attach source plugin --&gt;
+      &lt;plugin&gt;
+        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+        &lt;artifactId&gt;build-helper-maven-plugin&lt;/artifactId&gt;
+        &lt;version&gt;1.0&lt;/version&gt;
+        &lt;executions&gt;
+          &lt;execution&gt;
+            &lt;id&gt;add-source&lt;/id&gt;
+            &lt;phase&gt;process-sources&lt;/phase&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;add-source&lt;/goal&gt;
+            &lt;/goals&gt;
+            &lt;configuration&gt;
+              &lt;sources&gt;
+                &lt;source&gt;${project.build.directory}/shared_sources&lt;/source&gt;
+              &lt;/sources&gt;
+            &lt;/configuration&gt;
+          &lt;/execution&gt;
+        &lt;/executions&gt;
+      &lt;/plugin&gt;
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;
+        &lt;executions&gt;
+          &lt;execution&gt;
+            &lt;id&gt;attach-source&lt;/id&gt;
+            &lt;goals&gt;
+              &lt;goal&gt;jar&lt;/goal&gt;
+            &lt;/goals&gt;
+          &lt;/execution&gt;
+        &lt;/executions&gt;
+      &lt;/plugin&gt;
+
+      &lt;plugin&gt;
+        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+        &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+        &lt;configuration&gt;
+          &lt;source&gt;1.5&lt;/source&gt;
+          &lt;target&gt;1.5&lt;/target&gt;
+        &lt;/configuration&gt;
+      &lt;/plugin&gt;
+
+    &lt;/plugins&gt;
+
+  &lt;/build&gt;
+
+  &lt;reporting&gt;
+
+    &lt;plugins&gt;
+
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-changelog-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.1&lt;/version&gt;
+        &lt;reportSets&gt;
+          &lt;reportSet&gt;
+            &lt;id&gt;dual-report&lt;/id&gt;
+            &lt;configuration&gt;
+              &lt;type&gt;range&lt;/type&gt;
+              &lt;range&gt;30&lt;/range&gt;
+            &lt;/configuration&gt;
+            &lt;reports&gt;
+              &lt;report&gt;changelog&lt;/report&gt;
+              &lt;report&gt;file-activity&lt;/report&gt;
+              &lt;report&gt;dev-activity&lt;/report&gt;
+            &lt;/reports&gt;
+          &lt;/reportSet&gt;
+        &lt;/reportSets&gt;
+      &lt;/plugin&gt;
+
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.4&lt;/version&gt;
+      &lt;/plugin&gt;
+
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-jxr-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.1&lt;/version&gt;
+      &lt;/plugin&gt;
+
+      &lt;plugin&gt;
+        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+        &lt;artifactId&gt;taglist-maven-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.0&lt;/version&gt;
+      &lt;/plugin&gt;
+
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-surefire-report-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.4&lt;/version&gt;
+      &lt;/plugin&gt;
+      &lt;!-- This plugin is reffered on myfaces master pom, but
+           this is needed to set targetJdk to 1.5 --&gt;
+      &lt;plugin&gt;
+        &lt;artifactId&gt;maven-pmd-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.2&lt;/version&gt;
+        &lt;configuration&gt;
+          &lt;rulesets&gt;
+            &lt;ruleset&gt;/rulesets/basic.xml&lt;/ruleset&gt;
+            &lt;ruleset&gt;/rulesets/unusedcode.xml&lt;/ruleset&gt;
+          &lt;/rulesets&gt;
+          &lt;linkXref&gt;true&lt;/linkXref&gt;
+          &lt;minimumTokens&gt;100&lt;/minimumTokens&gt;
+          &lt;targetJdk&gt;1.5&lt;/targetJdk&gt;
+        &lt;/configuration&gt;
+      &lt;/plugin&gt;
+    &lt;/plugins&gt;
+
+  &lt;/reporting&gt;
+
+  &lt;profiles&gt;
+    &lt;profile&gt;
+      &lt;id&gt;generate-site&lt;/id&gt;
+      &lt;build&gt;
+        &lt;plugins&gt;
+          &lt;plugin&gt;
+            &lt;!-- Generate content for custom tagdoc report --&gt;
+            &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
+            &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
+            &lt;version&gt;1.0.4&lt;/version&gt;
+            &lt;configuration&gt;
+              &lt;taglibs&gt;
+                &lt;t&gt;http://myfaces.apache.org/tomahawk&lt;/t&gt;
+              &lt;/taglibs&gt;
+            &lt;/configuration&gt;
+            &lt;executions&gt;
+              &lt;execution&gt;
+                &lt;goals&gt;&lt;goal&gt;tagdoc-content&lt;/goal&gt;&lt;/goals&gt;
+              &lt;/execution&gt;
+            &lt;/executions&gt;
+          &lt;/plugin&gt;          
+        &lt;/plugins&gt;
+      &lt;/build&gt;
+      &lt;reporting&gt;
+        &lt;plugins&gt;
+          &lt;plugin&gt;
+            &lt;groupId&gt;net.sourceforge.maven-taglib&lt;/groupId&gt;
+            &lt;artifactId&gt;maven-taglib-plugin&lt;/artifactId&gt;
+            &lt;configuration&gt;
+              &lt;taglib.src.dir&gt;${basedir}/target/classes/META-INF&lt;/taglib.src.dir&gt;
+              &lt;tldDocDir&gt;${basedir}/target/site/tlddoc&lt;/tldDocDir&gt;
+            &lt;/configuration&gt;
+          &lt;/plugin&gt;
+          &lt;plugin&gt;
+            &lt;!-- which goal is run here? --&gt;
+            &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
+            &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
+            &lt;version&gt;1.0.4&lt;/version&gt;
+            &lt;configuration&gt;
+              &lt;taglibs&gt;
+                &lt;t&gt;http://myfaces.apache.org/tomahawk&lt;/t&gt;
+              &lt;/taglibs&gt;
+            &lt;/configuration&gt;
+          &lt;/plugin&gt;
+        &lt;/plugins&gt;
+      &lt;/reporting&gt;
+    &lt;/profile&gt;
+
+    &lt;profile&gt;
+      &lt;!--
+        - Build and install into the repository some additional artifacts that we don't
+        - want to build during normal development because they take too long.
+        --&gt;
+      &lt;id&gt;generate-assembly&lt;/id&gt;
+      &lt;activation&gt;
+        &lt;property&gt;
+          &lt;name&gt;performRelease&lt;/name&gt;
+          &lt;value&gt;true&lt;/value&gt;
+        &lt;/property&gt;
+      &lt;/activation&gt;
+      &lt;build&gt;
+        &lt;plugins&gt;
+          &lt;plugin&gt;
+            &lt;!-- Install in the repository a "-javadoc.jar" file --&gt;
+            &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;
+            &lt;version&gt;2.4&lt;/version&gt;
+            &lt;executions&gt;
+              &lt;execution&gt;
+                &lt;id&gt;attach-javadoc&lt;/id&gt;
+                &lt;goals&gt;&lt;goal&gt;jar&lt;/goal&gt;&lt;/goals&gt;
+              &lt;/execution&gt;
+            &lt;/executions&gt;
+          &lt;/plugin&gt;
+          &lt;plugin&gt;
+            &lt;!-- Install in the repository a "-tlddoc.jar" file --&gt;
+            &lt;groupId&gt;net.sourceforge.maven-taglib&lt;/groupId&gt;
+            &lt;artifactId&gt;maven-taglib-plugin&lt;/artifactId&gt;
+            &lt;configuration&gt;
+              &lt;taglib.src.dir&gt;${basedir}/target/classes/META-INF&lt;/taglib.src.dir&gt;
+              &lt;tldDocDir&gt;${basedir}/target/tlddoc&lt;/tldDocDir&gt;
+            &lt;/configuration&gt;
+            &lt;executions&gt;
+              &lt;execution&gt;
+                &lt;id&gt;attach-javadoc&lt;/id&gt;
+                &lt;goals&gt;&lt;goal&gt;taglibdocjar&lt;/goal&gt;&lt;/goals&gt;
+              &lt;/execution&gt;
+            &lt;/executions&gt;
+          &lt;/plugin&gt;
+          &lt;plugin&gt;
+            &lt;!-- Install in the repository a "-sources.jar" file --&gt;
+            &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;
+            &lt;executions&gt;
+              &lt;execution&gt;
+                &lt;id&gt;attach-source&lt;/id&gt;
+                &lt;goals&gt;&lt;goal&gt;jar&lt;/goal&gt;&lt;/goals&gt;
+              &lt;/execution&gt;
+            &lt;/executions&gt;
+          &lt;/plugin&gt;
+        &lt;/plugins&gt;
+      &lt;/build&gt;
+    &lt;/profile&gt;
+  &lt;/profiles&gt;
+
+&lt;/project&gt;

Added: myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/facelets-taglib-base.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/facelets-taglib-base.xml?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/facelets-taglib-base.xml (added)
+++ myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/facelets-taglib-base.xml Wed Dec  9 00:44:27 2009
@@ -0,0 +1,24 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;!DOCTYPE facelet-taglib
+  PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/facelet-taglib_1_0.dtd"&gt;
+&lt;facelet-taglib xmlns="http://java.sun.com/JSF/Facelet"&gt;
+
+&lt;/facelet-taglib&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/faces-config-base.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/faces-config-base.xml?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/faces-config-base.xml (added)
+++ myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/faces-config-base.xml Wed Dec  9 00:44:27 2009
@@ -0,0 +1,60 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+
+&lt;!--
+ * 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.
+--&gt;
+
+&lt;faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" 
+              version="1.2"&gt;
+
+  &lt;lifecycle&gt;
+
+      &lt;phase-listener&gt;org.apache.myfaces.webapp.filter.ServeResourcePhaseListener&lt;/phase-listener&gt;
+
+      &lt;phase-listener&gt;org.apache.myfaces.renderkit.html.util.ExtensionsPhaseListener&lt;/phase-listener&gt;
+      &lt;!-- This PhaseListener is only necessary if the autoscroll feature is used --&gt;
+      &lt;phase-listener&gt;org.apache.myfaces.renderkit.html.util.AutoScrollPhaseListener&lt;/phase-listener&gt;
+  &lt;/lifecycle&gt;
+
+  &lt;factory&gt;
+      &lt;faces-context-factory&gt;org.apache.myfaces.webapp.filter.TomahawkFacesContextFactory&lt;/faces-context-factory&gt;
+  &lt;/factory&gt;
+
+    &lt;!-- additional "by type" converters --&gt;
+
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;java.util.Date&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;javax.faces.convert.DateTimeConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+
+
+    &lt;!-- non standard converters --&gt;
+
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;[Ljava.lang.String;&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.StringArrayConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;org.apache.myfaces.custom.fileupload.UploadedFile&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;org.apache.myfaces.custom.fileupload.UploadedFileConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+
+&lt;/faces-config&gt;

Added: myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/tomahawk-base.tld
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/tomahawk-base.tld?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/tomahawk-base.tld (added)
+++ myfaces/tomahawk/trunk/core20/src/main/conf/META-INF/tomahawk-base.tld Wed Dec  9 00:44:27 2009
@@ -0,0 +1,25 @@
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;taglib xmlns="http://java.sun.com/xml/ns/javaee" 
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 
+        version="2.1"&gt;
+   
+&lt;/taglib&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeanTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeanTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeanTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeanTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,105 @@
+/*
+ * 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.custom.aliasbean;
+
+import java.io.IOException;
+
+import javax.el.ELException;
+import javax.faces.FacesException;
+import javax.faces.application.Application;
+import javax.faces.component.UIComponent;
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.webapp.UIComponentTag;
+
+/**
+ * Tag handler used in facelets
+ * 
+ * @since 1.1.7
+ * @author Leonardo Uribe (latest modification by $Author: lu4242 $)
+ * @version $Revision: 691856 $ $Date: 2008-09-03 21:40:30 -0500 (miÃ©, 03 sep 2008) $
+ *
+ */
+public class AliasBeanTagHandler extends ComponentHandler
+{
+    private TagAttribute valueAttr;
+    private TagAttribute aliasAttr;
+
+    public AliasBeanTagHandler(ComponentConfig tagConfig)
+    {
+        super(tagConfig);
+
+        valueAttr = getRequiredAttribute("value");
+        aliasAttr = getRequiredAttribute("alias");
+    }
+
+    public void setAttributes(FaceletContext ctx, Object instance)
+    {
+        super.setAttributes(ctx, instance);
+        
+        Application app = ctx.getFacesContext().getApplication();
+        
+        AliasBean aliasBean = (AliasBean) instance;
+
+        String value = valueAttr.getValue();
+        if (UIComponentTag.isValueReference(value))
+        {
+            aliasBean.setValueBinding("value", app.createValueBinding(valueAttr
+                    .getValue()));
+        }
+        else
+        {
+            aliasBean.setValue(value);
+        }
+
+        String alias = aliasAttr.getValue();
+        if (UIComponentTag.isValueReference(alias))
+        {
+            aliasBean.setValueBinding("alias", app.createValueBinding(aliasAttr
+                    .getValue()));
+        }
+        else
+        {
+            aliasBean.setAlias(alias);
+        }
+    }
+    
+    public void applyNextHandler(FaceletContext ctx, UIComponent component)
+            throws IOException, FacesException, ELException
+    {
+        AliasBean aliasBean = (AliasBean) component;
+        aliasBean.makeAlias(ctx.getFacesContext());
+        super.applyNextHandler(ctx, component);
+        aliasBean.removeAlias(ctx.getFacesContext());
+    }
+    
+    /**
+     * We have to add the children to the parent, for ensure proper
+     * behavior between aliasBean and aliasBeansScope.
+     * 
+     */
+    public void onComponentCreated(FaceletContext faceletcontext,
+            UIComponent component, UIComponent parent)    
+    {
+        parent.getChildren().add(component);
+    }
+
+}

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeansScopeTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeansScopeTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeansScopeTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/aliasbean/AliasBeansScopeTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,54 @@
+/*
+ * 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.custom.aliasbean;
+
+import java.io.IOException;
+
+import javax.el.ELException;
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.FaceletContext;
+
+/**
+ * Tag handler used in facelets
+ * 
+ * @since 1.1.7
+ * @author Leonardo Uribe (latest modification by $Author: lu4242 $)
+ * @version $Revision: 691856 $ $Date: 2008-09-03 21:40:30 -0500 (miÃ©, 03 sep 2008) $
+ *
+ */
+public class AliasBeansScopeTagHandler extends ComponentHandler
+{
+
+    public AliasBeansScopeTagHandler(ComponentConfig tagConfig)
+    {
+        super(tagConfig);
+    }
+    
+    public void applyNextHandler(FaceletContext ctx, UIComponent c)
+            throws IOException, FacesException, ELException
+    {
+        AliasBeansScope aliasBean = (AliasBeansScope) c;              
+        aliasBean.makeAliases(ctx.getFacesContext());
+        super.applyNextHandler(ctx, c);
+        aliasBean.removeAliases(ctx.getFacesContext());
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/facelets/tag/MethodRule.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/facelets/tag/MethodRule.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/facelets/tag/MethodRule.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/facelets/tag/MethodRule.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,108 @@
+/*
+ * 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.custom.facelets.tag;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.el.MethodExpression;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.MetaRule;
+import javax.faces.view.facelets.Metadata;
+import javax.faces.view.facelets.MetadataTarget;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.TagAttributeException;
+
+/**
+ * Optional Rule for binding Method[Binding|Expression] properties
+ * 
+ * @author Mike Kienenberger
+ * @author Jacob Hookom
+ */
+public final class MethodRule extends MetaRule
+{
+
+    private final String methodName;
+
+    private final Class&lt;?&gt; returnTypeClass;
+
+    private final Class&lt;?&gt;[] params;
+
+    public MethodRule(String methodName, Class&lt;?&gt; returnTypeClass, Class&lt;?&gt;[] params)
+    {
+        this.methodName = methodName;
+        this.returnTypeClass = returnTypeClass;
+        this.params = params;
+    }
+
+    public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta)
+    {
+        if (false == name.equals(this.methodName))
+            return null;
+
+        if (MethodExpression.class.equals(meta.getPropertyType(name)))
+        {
+            Method method = meta.getWriteMethod(name);
+            if (method != null)
+            {
+                return new MethodExpressionMetadata(method, attribute, this.returnTypeClass, this.params);
+            }
+        }
+
+        return null;
+    }
+
+    private class MethodExpressionMetadata extends Metadata
+    {
+        private final Method _method;
+
+        private final TagAttribute _attribute;
+
+        private Class&lt;?&gt;[] _paramList;
+
+        private Class&lt;?&gt; _returnType;
+
+        public MethodExpressionMetadata(Method method, TagAttribute attribute, Class&lt;?&gt; returnType, 
+                                        Class&lt;?&gt;[] paramList)
+        {
+            _method = method;
+            _attribute = attribute;
+            _paramList = paramList;
+            _returnType = returnType;
+        }
+
+        public void applyMetadata(FaceletContext ctx, Object instance)
+        {
+            MethodExpression expr = _attribute.getMethodExpression(ctx, _returnType, _paramList);
+
+            try
+            {
+                _method.invoke(instance, new Object[] { expr });
+            }
+            catch (InvocationTargetException e)
+            {
+                throw new TagAttributeException(_attribute, e.getCause());
+            }
+            catch (Exception e)
+            {
+                throw new TagAttributeException(_attribute, e);
+            }
+        }
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/schedule/ScheduleTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,49 @@
+/*
+ * 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.custom.schedule;
+
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.MetaRuleset;
+
+import org.apache.myfaces.custom.facelets.tag.MethodRule;
+
+/**
+ * 
+ * @since 1.1.7
+ */
+public class ScheduleTagHandler extends ComponentHandler {
+ 
+    private static final String MOUSE_LISTENER = "mouseListener";
+    
+    private static final Class [] mouseListenerParamList = new Class[]{ScheduleMouseEvent.class}; 
+
+    public ScheduleTagHandler(ComponentConfig tagConfig) {
+        super(tagConfig);
+    }
+
+    protected MetaRuleset createMetaRuleset(Class type)
+    {       
+        return super.createMetaRuleset(type).alias("class", "styleClass")
+            .addRule(
+                new MethodRule(MOUSE_LISTENER, 
+                        String.class, mouseListenerParamList));
+    }
+
+ }
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlPanelTabbedPaneTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlPanelTabbedPaneTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlPanelTabbedPaneTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/HtmlPanelTabbedPaneTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,51 @@
+/*
+ * 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.custom.tabbedpane;
+
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.MetaRuleset;
+
+import org.apache.myfaces.custom.facelets.tag.MethodRule;
+
+/**
+ * 
+ * @since 1.1.7
+ *
+ */
+public class HtmlPanelTabbedPaneTagHandler extends ComponentHandler
+{
+    static final String METHOD_BINDING_ATTR_NAME = "tabChangeListener";
+    static final Class[] METHOD_BINDING_SIGNATURE = { TabChangeEvent.class };
+
+    protected final static MethodRule actionListenerTagRule = new MethodRule(
+            METHOD_BINDING_ATTR_NAME, void.class, METHOD_BINDING_SIGNATURE);
+
+    public HtmlPanelTabbedPaneTagHandler(ComponentConfig config)
+    {
+        super(config);
+    }
+
+    protected MetaRuleset createMetaRuleset(Class type)
+    {
+        return super.createMetaRuleset(type).alias("class", "styleClass")
+            .addRule(actionListenerTagRule);
+    }
+
+}
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/TabChangeListenerTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/TabChangeListenerTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/TabChangeListenerTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tabbedpane/TabChangeListenerTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,96 @@
+/*
+ * 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.custom.tabbedpane;
+
+import java.io.IOException;
+
+import javax.el.ELException;
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.FaceletException;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.TagConfig;
+import javax.faces.view.facelets.TagHandler;
+
+import org.apache.myfaces.shared_tomahawk.util.ClassUtils;
+
+/**
+ * Custom Facelets taghandler for the TabChangeListener class.
+ *  
+ * @since 1.1.7
+ */
+public class TabChangeListenerTagHandler extends TagHandler
+{
+    private final TagAttribute typeAttr;
+
+    public TabChangeListenerTagHandler(TagConfig config)
+    {
+        super(config);
+        typeAttr = getRequiredAttribute("type");
+    }
+
+    public void apply(FaceletContext faceletContext, UIComponent parent)
+            throws IOException, FacesException, FaceletException, ELException
+    {
+        // only process this tag if the parent has just been created..
+        if (parent.getParent() == null)
+        {
+            if (parent instanceof HtmlPanelTabbedPane)
+            {
+                Object listenerRef;
+                if (typeAttr.isLiteral())
+                {
+                    listenerRef = typeAttr.getValue();
+                }
+                else
+                {
+                    listenerRef = typeAttr.getObject(faceletContext);
+                }
+                
+                if (listenerRef instanceof String)
+                {
+                    String className = (String) listenerRef;
+                    TabChangeListener listener = (TabChangeListener) ClassUtils.newInstance(className);
+                    ((HtmlPanelTabbedPane) parent).addTabChangeListener(listener);
+                }
+                else if (listenerRef instanceof TabChangeListener)
+                {
+                    TabChangeListener listener = (TabChangeListener) listenerRef;
+                    ((HtmlPanelTabbedPane) parent).addTabChangeListener(listener);
+                }
+                else if (listenerRef == null)
+                {
+                    throw new FaceletException("Property 'type' must not be null.");
+                }
+                else
+                {
+                    throw new FaceletException(
+                       "Property 'type' must be either a string (containing a class name) " +
+                       "or a TabChangeListener instance.");
+                }
+            }
+            else
+            {
+                throw new FaceletException(
+                        "Component " + parent.getId() + " is not of type HtmlPanelTabbedPane");
+            }
+        }
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/IconProviderTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/IconProviderTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/IconProviderTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/IconProviderTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,77 @@
+/*
+ * 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.custom.tree.taglib;
+
+import java.io.IOException;
+
+import javax.el.ELException;
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.FaceletException;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.TagConfig;
+import javax.faces.view.facelets.TagHandler;
+
+import org.apache.myfaces.custom.tree.HtmlTree;
+import org.apache.myfaces.custom.tree.IconProvider;
+import org.apache.myfaces.shared_tomahawk.util.ClassUtils;
+
+/**
+ * 
+ * @since 1.1.7
+ */
+public class IconProviderTagHandler extends TagHandler
+{
+
+    private final TagAttribute typeAttr;
+    
+    public IconProviderTagHandler(TagConfig config)
+    {
+        super(config);
+        typeAttr = getRequiredAttribute("type");
+    }
+
+    public void apply(FaceletContext faceletContext, UIComponent parent)
+            throws IOException, FacesException, FaceletException, ELException
+    {
+        if (parent.getParent() == null)
+        {
+            if (parent instanceof HtmlTree)
+            {
+                String className;
+                if (!typeAttr.isLiteral())
+                {
+                    className = typeAttr.getValue();
+                }
+                else
+                {
+                    className = typeAttr.getValue(faceletContext);
+                }
+                IconProvider provider = (IconProvider) ClassUtils.newInstance(className);
+                ((HtmlTree) parent).setIconProvider(provider);                
+            }
+            else
+            {
+                throw new FacesException(
+                        "Component is not HtmlTree children");
+            }            
+        }
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeSelectionListenerTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeSelectionListenerTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeSelectionListenerTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeSelectionListenerTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,77 @@
+/*
+ * 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.custom.tree.taglib;
+
+import java.io.IOException;
+
+import javax.el.ELException;
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.FaceletException;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.TagConfig;
+import javax.faces.view.facelets.TagHandler;
+
+import org.apache.myfaces.custom.tree.HtmlTree;
+import org.apache.myfaces.custom.tree.event.TreeSelectionListener;
+import org.apache.myfaces.shared_tomahawk.util.ClassUtils;
+
+/**
+ * 
+ * @since 1.1.7
+ */
+public class TreeSelectionListenerTagHandler extends TagHandler
+{
+
+    private final TagAttribute typeAttr;
+    
+    public TreeSelectionListenerTagHandler(TagConfig config)
+    {
+        super(config);
+        typeAttr = getRequiredAttribute("type");
+    }
+
+    public void apply(FaceletContext faceletContext, UIComponent parent)
+            throws IOException, FacesException, FaceletException, ELException
+    {
+        if (parent.getParent() == null)
+        {
+            if (parent instanceof HtmlTree)
+            {
+                String className;
+                if (!typeAttr.isLiteral())
+                {
+                    className = typeAttr.getValue();
+                }
+                else
+                {
+                    className = typeAttr.getValue(faceletContext);
+                }
+                TreeSelectionListener listener = (TreeSelectionListener) ClassUtils.newInstance(className);
+                ((HtmlTree) parent).addTreeSelectionListener(listener);
+            }
+            else
+            {
+                throw new FacesException(
+                        "Component is not HtmlTree children");
+            }            
+        }
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/tree/taglib/TreeTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,128 @@
+/*
+ * 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.custom.tree.taglib;
+
+import javax.faces.application.Application;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.MetaRuleset;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.webapp.UIComponentTag;
+
+import org.apache.myfaces.custom.tree.HtmlTree;
+import org.apache.myfaces.custom.tree.model.DefaultTreeModel;
+import org.apache.myfaces.custom.tree.model.TreeModel;
+import org.apache.myfaces.custom.tree.model.TreePath;
+
+/**
+ * 
+ * @since 1.1.7
+ */
+public class TreeTagHandler extends ComponentHandler
+{
+
+    private TagAttribute valueAttr;
+    private TagAttribute expandRootAttr;
+    
+    private boolean expandRoot;
+    
+    public TreeTagHandler(ComponentConfig config)
+    {
+        super(config);
+        valueAttr = getRequiredAttribute("value");
+        expandRootAttr = getRequiredAttribute("expandRoot");
+        expandRoot = false;
+    }
+    
+    public void setAttributes(FaceletContext ctx, Object instance)
+    {
+        super.setAttributes(ctx, instance);
+        
+        Application app = ctx.getFacesContext().getApplication();
+        
+        HtmlTree tree = (HtmlTree) instance;
+        
+        if(valueAttr != null)
+        {
+            String value = valueAttr.getValue();
+            if (value != null &amp;&amp; UIComponentTag.isValueReference(value))
+            {
+                tree.setValueBinding("model", app.createValueBinding(valueAttr
+                        .getValue()));
+            }
+        }
+        else
+        {
+            ValueBinding binding = tree.getValueBinding("model");
+            if (binding == null) {
+                binding = app.createValueBinding("#{sessionScope.tree}");
+            }
+            tree.setValueBinding("model", binding);            
+        }
+        
+        if (expandRootAttr != null)
+        {
+            expandRoot = expandRootAttr.getBoolean(ctx);
+        }
+    }
+    
+    public void onComponentCreated(FaceletContext ctx,
+            UIComponent component, UIComponent parent)
+    {
+        FacesContext context = ctx.getFacesContext();
+        Application app = ctx.getFacesContext().getApplication();
+        
+        if (valueAttr != null) {
+            String value = valueAttr.getValue();
+            if (value != null){
+                ValueBinding valueBinding = app.createValueBinding(value);
+                TreeModel treeModel = (TreeModel) (valueBinding.getValue(context));
+        
+                if (treeModel == null) {
+                    // create default model
+                    treeModel = new DefaultTreeModel();
+                    valueBinding.setValue(context, treeModel);
+                }
+            }
+        }
+        
+        HtmlTree tree = (HtmlTree) component;
+        
+        if (expandRoot)
+        {
+            // component was created, so expand the root node
+            TreeModel model = tree.getModel(context);
+    
+            if (model != null) {
+                tree.expandPath(new TreePath(new Object[] { model.getRoot() }),
+                        context);
+            }
+        }
+        tree.addToModelListeners();
+    }
+    
+    protected MetaRuleset createMetaRuleset(Class type)
+    {
+        return super.createMetaRuleset(type).alias("class", "styleClass");
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/updateactionlistener/UpdateActionListenerTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/updateactionlistener/UpdateActionListenerTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/updateactionlistener/UpdateActionListenerTagHandler.java (added)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/updateactionlistener/UpdateActionListenerTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,129 @@
+/*
+ * 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.custom.updateactionlistener;
+
+import java.io.IOException;
+
+import javax.el.ELException;
+import javax.faces.FacesException;
+import javax.faces.application.Application;
+import javax.faces.component.ActionSource;
+import javax.faces.component.UIComponent;
+import javax.faces.convert.Converter;
+import javax.faces.event.ActionListener;
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.FaceletException;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.TagConfig;
+import javax.faces.view.facelets.TagHandler;
+import javax.faces.webapp.UIComponentTag;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Tag handler for the Tomahawk UpdateActionListener tag
+ * 
+ * @since 1.1.7
+ * @author arobinson74
+ */
+public class UpdateActionListenerTagHandler extends TagHandler
+{
+    private static Log logger = LogFactory
+            .getLog(UpdateActionListenerTagHandler.class);
+
+    private TagAttribute converterAttr;
+    private TagAttribute propertyAttr;
+    private TagAttribute valueAttr;
+
+    /**
+     * @param config
+     */
+    public UpdateActionListenerTagHandler(ComponentConfig config)
+    {
+        this((TagConfig) config);
+    }
+
+    /**
+     * @param config
+     */
+    public UpdateActionListenerTagHandler(TagConfig config)
+    {
+        super(config);
+        valueAttr = getRequiredAttribute("value");
+        propertyAttr = getRequiredAttribute("property");
+        converterAttr = getAttribute("converter");
+    }
+
+    /**
+     * @see com.sun.facelets.FaceletHandler#apply(com.sun.facelets.FaceletContext, javax.faces.component.UIComponent)
+     */
+    public void apply(FaceletContext ctx, UIComponent parent)
+            throws IOException, FacesException, FaceletException, ELException
+    {
+        logger.debug("Apply called. Component: " + parent);
+        ActionSource actionSource = (ActionSource) parent;
+
+        if (sourceHasProperty(actionSource))
+            return;
+
+        UpdateActionListener al = new UpdateActionListener();
+
+        Application app = ctx.getFacesContext().getApplication();
+        if (converterAttr != null)
+        {
+            Converter converter = app.createConverter(converterAttr
+                    .getValue(ctx));
+            al.setConverter(converter);
+        }
+
+        String value = valueAttr.getValue();
+        if (UIComponentTag.isValueReference(value))
+            al.setValueBinding(app.createValueBinding(valueAttr.getValue()));
+        else
+            al.setValue(value);
+
+        al.setPropertyBinding(app.createValueBinding(propertyAttr.getValue()));
+
+        actionSource.addActionListener(al);
+    }
+
+    private boolean sourceHasProperty(ActionSource source)
+    {
+        ActionListener[] listeners = source.getActionListeners();
+        for (int i = 0; i &lt; listeners.length; i++)
+        {
+            ActionListener listener = listeners[i];
+            if (listener instanceof UpdateActionListener == false)
+                continue;
+            UpdateActionListener al = (UpdateActionListener) listener;
+            if (al.getPropertyBinding().getExpressionString().equals(
+                    this.propertyAttr.getValue()))
+            {
+                logger.debug("Action listener already has a listener for "
+                        + this.propertyAttr.getValue());
+                return true;
+            }
+        }
+        logger.debug("Action listener for property is not present. Property: "
+                + this.propertyAttr.getValue());
+        return false;
+    }
+}




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888664 [3/5] - in /myfaces/tomahawk/trunk: ./ core/ core/src/main/resources-filtered/ core/src/main/resources-filtered/org/ core/src/main/resources-filtered/org/apache/ core/src/main/resources-filtered/org/apache/myfaces/ core/src/main/res...</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209004435.80EEF23889F7@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209004435-80EEF23889F7@eris-apache-org%3e</id>
<updated>2009-12-09T00:44:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/validatorClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/validatorClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/validatorClass12.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/validatorClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,215 @@
+## Velocity template used to generate JSF1.2-compatible validator classes
+## from validator meta-data.
+##
+## Note that there are only one type of validator generation:
+##  * "subclass mode" (use annotated class as a parent class)
+##
+## Variable $validator refers to a ValidatorMeta object to process
+## Variable $utils refers to an instance of MyfacesUtils.
+##
+##
+## The java package of the generated class is always the same as
+## the package in which the annotated class exists.
+##
+/*
+ *  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 ${validator.packageName};
+
+import javax.el.ValueExpression;
+import javax.faces.context.FacesContext;
+$utils.importTagClasses($validator)
+
+#if ($validator.isTemplate())
+#set ($generatedClassParent = $validator.sourceClassParentClassName)
+#else
+#set ($generatedClassParent = $validator.sourceClassName)
+#end
+// Generated from class ${validator.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class ${utils.getClassFromFullClass($validator.className)} extends $generatedClassParent
+#if ($validator.implements)
+    implements $validator.implements
+#end
+{
+
+#if ($validator.validatorId)
+    static public final String VALIDATOR_ID = 
+        "$validator.validatorId";
+#end
+
+    public ${utils.getClassFromFullClass($validator.className)}()
+    {
+    }
+    
+#set ($propertyList = ${validator.propertyValidatorList})
+
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if($utils.getDefaultValueField($property)) 
+#set ($defaultValue = $utils.getDefaultValueField($property))
+#else
+#set ($defaultValue = false)
+#end
+    // Property: $property.name
+#if ($property.isLiteralOnly() || $property.isTagExcluded() )
+    private $type $field #if($defaultValue) = $defaultValue;#{else};#{end}
+
+     
+#else
+    private $type $field;
+    
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() )
+    private boolean ${field}Set;
+    
+#if ($property.isSetMethod())
+    $property.setMethodScope boolean $utils.getPrefixedPropertyName("isSet", $property.name)()
+    {
+        return ${field}Set;
+    }
+#end
+#end
+#if($property.isLocalMethod())
+#if("boolean" == $type)
+#set ($methodName = $utils.getPrefixedPropertyName("isLocal", $property.name))
+#else
+#set ($methodName = $utils.getPrefixedPropertyName("getLocal", $property.name))
+#end
+    final $property.localMethodScope $type ${methodName}()
+    {
+        return $field;
+    }
+     
+#end
+    public $type $utils.getMethodReaderFromProperty($property.name, $type)()
+    {
+#if ($property.isTagExcluded() || $property.isLiteralOnly())
+        return $field;
+#else
+#if ($utils.isPrimitiveClass($type))
+        if (${field}Set)
+#else
+        if ($field != null)
+#end
+        {
+            return $field;
+        }
+        ValueExpression vb = getValueExpression("$property.name");
+        if (vb != null)
+        {
+#if ($utils.isPrimitiveClass($type))
+            return ($utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext())).${type}Value();
+#else
+#set ($pritype = $utils.getPrimitiveType($property.className))
+#if ($utils.isPrimitiveClass($pritype))
+            Object value = vb == null ? null : vb.getValue(getFacesContext().getELContext());
+            if (!(value instanceof $type)){
+                value = ${type}.valueOf(value.toString());
+            }            
+            return $utils.castIfNecessary($type) value;
+#else
+            return $utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext());
+#end
+#end
+        }
+#if ($defaultValue)
+        return $defaultValue; 
+#elseif ($utils.isPrimitiveClass($type))
+        return $utils.primitiveDefaultValue($type);
+#else       
+        return null;
+#end
+#end
+    }
+
+    public void $utils.getPrefixedPropertyName("set", $property.name)($type $utils.getVariableFromName($property.name))
+    {
+        this.$field = $utils.getVariableFromName($property.name);
+#if ($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() )
+        this.${field}Set = true;        
+#end
+    }
+#end
+
+    public Object saveState(FacesContext facesContext)
+    {
+#set ($primitiveCount = $propertyList.size() + 1)
+#foreach( $property in $propertyList )
+#if($utils.isPrimitiveClass($property.className))
+#set ($primitiveCount = $primitiveCount + 1)
+#end
+#end
+        Object[] values = new Object[$primitiveCount];
+        values[0] = super.saveState(facesContext);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        values[$arrayIndex] = saveAttachedState(facesContext,${field}List);
+#elseif ( $property.isStateHolder() )## || $utils.isConverter($type)
+        values[$arrayIndex] = saveAttachedState(facesContext,$field);
+#elseif($utils.isPrimitiveClass($type))
+        values[$arrayIndex] = ${utils.getBoxedClass($type)}.valueOf($field);
+#else
+        values[$arrayIndex] = $field;
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded())
+#set ($arrayIndex = $arrayIndex + 1)
+        values[$arrayIndex] = Boolean.valueOf(${field}Set);
+#end
+#end
+        return values; 
+    }
+
+    public void restoreState(FacesContext facesContext, Object state)
+    {
+        Object[] values = (Object[])state;
+        super.restoreState(facesContext,values[0]);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ( $property.isStateHolder() )
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        ${field}List = (List&lt;Validator&gt;) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isList($type))
+        $field = (List) restoreAttachedState(facesContext,values[$arrayIndex]);
+#else
+        $field = $utils.castIfNecessary($type) restoreAttachedState(facesContext,values[$arrayIndex]); 
+#end
+#elseif ($utils.isConverter($type)) 
+        $field = (Converter) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isPrimitiveClass($type))
+        $field = ($utils.castIfNecessary($type) values[$arrayIndex]).${type}Value();
+#else
+        $field = $utils.castIfNecessary($type) values[$arrayIndex];
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() )
+#set ($arrayIndex = $arrayIndex + 1)
+        ${field}Set = ((Boolean) values[$arrayIndex]).booleanValue();
+#end
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-component.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-component.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-component.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-component.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,104 @@
+&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;document&gt;
+ &lt;properties&gt;
+  &lt;title&gt;&amp;lt;${component.name}&amp;gt;&lt;/title&gt;
+ &lt;/properties&gt;
+ &lt;body&gt;
+  &lt;section name="Summary"&gt;
+  &lt;p&gt;
+   &lt;b&gt;Tag name:&lt;/b&gt; &amp;lt;${component.name}&amp;gt;
+   &lt;br/&gt;
+#set ($javadocPath = "../apidocs/" + $component.getClassName().replace('.', '/') )
+   &lt;b&gt;UIComponent class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${component.className}&lt;/a&gt;
+   &lt;br/&gt;
+#if ($component.tagClass)
+#set ($javadocPath = "../apidocs/" + $component.getTagClass().replace('.', '/') )
+   &lt;b&gt;Tag class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${component.tagClass}&lt;/a&gt;
+   &lt;br/&gt;
+#end
+   &lt;b&gt;Component type:&lt;/b&gt; ${component.type}
+   &lt;br/&gt;
+   &lt;b&gt;Component family:&lt;/b&gt; ${component.family}
+   &lt;br/&gt;
+#if (${component.rendererType})
+   &lt;b&gt;Renderer type:&lt;/b&gt; ${component.rendererType}
+   &lt;br/&gt;
+#set ($rendererClasses = $tagdocUtils.getRendererClasses($component,$model).values() )
+#foreach ($rendererClass in $rendererClasses)
+#set ($javadocPath = "../apidocs/" + $rendererClass.replace('.', '/') )
+   &lt;b&gt;Renderer class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${rendererClass}&lt;/a&gt;
+   &lt;br/&gt;
+#end
+#end
+   &lt;br/&gt;      
+${component.longDescription}   
+  &lt;/p&gt;
+  &lt;/section&gt;
+#if ($baseContent)
+$baseContent
+#end
+#set($facetList = ${tagdocUtils.getSortedFacetList($component)})
+#if ($facetList.size() != 0)
+  &lt;section name="Supported Facets"&gt;
+   &lt;p&gt;
+   &lt;table&gt;
+    &lt;tr&gt;
+     &lt;th&gt;Name&lt;/th&gt;
+     &lt;th&gt;Required&lt;/th&gt;
+     &lt;th&gt;Description&lt;/th&gt;
+    &lt;/tr&gt;
+#foreach( $facet in $facetList )
+    &lt;tr&gt;
+     &lt;td&gt;$facet.name&lt;/td&gt;
+     &lt;td&gt;$facet.isRequired()&lt;/td&gt;
+#if ($facet.longDescription)
+     &lt;td&gt;$facet.longDescription&lt;/td&gt;
+#else
+     &lt;td&gt;&lt;/td&gt;
+#end     
+    &lt;/tr&gt;
+#end
+   &lt;/table&gt;
+   &lt;/p&gt;
+  &lt;/section&gt;
+#end  
+#set ($propertyList = ${tagdocUtils.getSortedPropertyList($component)})
+#if ($propertyList.size() != 0)  
+  &lt;section name="Attributes"&gt;
+&lt;table&gt;
+ &lt;tr&gt;
+  &lt;th&gt;Name&lt;/th&gt;
+  &lt;th&gt;Type&lt;/th&gt;
+  &lt;th&gt;Supports EL?&lt;/th&gt;
+  &lt;th&gt;Description&lt;/th&gt;
+ &lt;/tr&gt;
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+ &lt;tr&gt;
+  &lt;td&gt;$property.jspName&lt;/td&gt;
+#set ($type = ${tagdocUtils.getDisplayType($component.className,$property.jspName,$property.className)})
+  &lt;td&gt;$type&lt;/td&gt;
+#if ($property.jspName == "action")
+  &lt;td&gt;Yes&lt;/td&gt;
+#elseif ($property.isMethodBinding() || $property.isMethodExpression())
+  &lt;td&gt;Only EL&lt;/td&gt;
+#elseif ($property.jspName == "binding")
+  &lt;td&gt;Only EL&lt;/td&gt;
+#elseif ($property.isLiteralOnly())
+  &lt;td&gt;No&lt;/td&gt;
+#else
+  &lt;td&gt;Yes&lt;/td&gt;
+#end
+#if ($property.longDescription)
+  &lt;td&gt;$property.longDescription&lt;/td&gt;
+#else
+  &lt;td&gt;&lt;/td&gt;
+#end
+ &lt;/tr&gt;
+#end
+#end
+&lt;/table&gt;
+#end
+  &lt;/section&gt;
+ &lt;/body&gt; 
+&lt;/document&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-converter.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-converter.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-converter.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-converter.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,66 @@
+&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;document&gt;
+ &lt;properties&gt;
+  &lt;title&gt;&amp;lt;${converter.name}&amp;gt;&lt;/title&gt;
+ &lt;/properties&gt;
+ &lt;body&gt;
+  &lt;section name="Summary"&gt;
+  &lt;p&gt;
+   &lt;b&gt;Tag name:&lt;/b&gt; &amp;lt;${converter.name}&amp;gt;
+   &lt;br/&gt;
+#set ($javadocPath = "../apidocs/" + $converter.getClassName().replace('.', '/') )
+   &lt;b&gt;Converter class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${converter.className}&lt;/a&gt;
+   &lt;br/&gt;
+#if ($converter.tagClass)
+#set ($javadocPath = "../apidocs/" + $converter.getTagClass().replace('.', '/') )
+   &lt;b&gt;Tag class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${converter.tagClass}&lt;/a&gt;
+   &lt;br/&gt;
+#end
+   &lt;b&gt;converter id:&lt;/b&gt; ${converter.converterId}
+   &lt;br/&gt;
+${converter.longDescription}   
+  &lt;/p&gt;
+  &lt;/section&gt;
+#if ($baseContent)
+$baseContent
+#end
+#set ($propertyList = ${tagdocUtils.getSortedPropertyList($converter)})
+#if ($propertyList.size() != 0)  
+  &lt;section name="Attributes"&gt;
+&lt;table&gt;
+ &lt;tr&gt;
+  &lt;th&gt;Name&lt;/th&gt;
+  &lt;th&gt;Type&lt;/th&gt;
+  &lt;th&gt;Supports EL?&lt;/th&gt;
+  &lt;th&gt;Description&lt;/th&gt;
+ &lt;/tr&gt;
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+ &lt;tr&gt;
+  &lt;td&gt;$property.jspName&lt;/td&gt;
+#set ($type = ${tagdocUtils.getDisplayType($converter.className,$property.jspName,$property.className)})
+  &lt;td&gt;$type&lt;/td&gt;
+#if ($property.jspName == "action")
+  &lt;td&gt;Yes&lt;/td&gt;
+#elseif ($property.isMethodBinding() || $property.isMethodExpression())
+  &lt;td&gt;Only EL&lt;/td&gt;
+#elseif ($property.jspName == "binding")
+  &lt;td&gt;Only EL&lt;/td&gt;
+#elseif ($property.isLiteralOnly())
+  &lt;td&gt;No&lt;/td&gt;
+#else
+  &lt;td&gt;Yes&lt;/td&gt;
+#end
+#if ($property.longDescription)
+  &lt;td&gt;$property.longDescription&lt;/td&gt;
+#else
+  &lt;td&gt;&lt;/td&gt;
+#end
+ &lt;/tr&gt;
+#end
+#end
+&lt;/table&gt;
+#end
+  &lt;/section&gt;
+ &lt;/body&gt; 
+&lt;/document&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-tag.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-tag.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-tag.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-tag.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,49 @@
+&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;document&gt;
+ &lt;properties&gt;
+  &lt;title&gt;&amp;lt;${tag.name}&amp;gt;&lt;/title&gt;
+ &lt;/properties&gt;
+ &lt;body&gt;
+  &lt;section name="Summary"&gt;
+  &lt;p&gt;
+   &lt;b&gt;Tag name:&lt;/b&gt; &amp;lt;${tag.name}&amp;gt;
+   &lt;br/&gt;
+#set ($javadocPath = "../apidocs/" + $tag.getClassName().replace('.', '/') )
+   &lt;b&gt;Tag class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${tag.className}&lt;/a&gt;
+   &lt;br/&gt;
+${tag.longDescription}   
+  &lt;/p&gt;
+  &lt;/section&gt;
+#if ($baseContent)
+$baseContent
+#end
+#set ($attributeList = ${tagdocUtils.getSortedAttributeList($tag)})
+#if ($attributeList.size() != 0)  
+  &lt;section name="Attributes"&gt;
+&lt;table&gt;
+ &lt;tr&gt;
+  &lt;th&gt;Name&lt;/th&gt;
+  &lt;th&gt;Type&lt;/th&gt;
+  &lt;th&gt;Required&lt;/th&gt;
+  &lt;th&gt;Description&lt;/th&gt;
+ &lt;/tr&gt;
+#foreach( $attribute in $attributeList )
+#if (!$attribute.isTagExcluded())
+ &lt;tr&gt;
+  &lt;td&gt;$attribute.name&lt;/td&gt;
+#set ($type = ${tagdocUtils.getDisplayType($tag.className,$attribute.name,$attribute.className)})
+  &lt;td&gt;$type&lt;/td&gt;
+  &lt;td&gt;$attribute.isRequired()&lt;/td&gt;
+#if ($attribute.longDescription)
+  &lt;td&gt;$attribute.longDescription&lt;/td&gt;
+#else
+  &lt;td&gt;&lt;/td&gt;
+#end
+ &lt;/tr&gt;
+#end
+#end
+&lt;/table&gt;
+#end
+  &lt;/section&gt;
+ &lt;/body&gt; 
+&lt;/document&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-validator.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-validator.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-validator.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/xdoc-validator.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,66 @@
+&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;document&gt;
+ &lt;properties&gt;
+  &lt;title&gt;&amp;lt;${validator.name}&amp;gt;&lt;/title&gt;
+ &lt;/properties&gt;
+ &lt;body&gt;
+  &lt;section name="Summary"&gt;
+  &lt;p&gt;
+   &lt;b&gt;Tag name:&lt;/b&gt; &amp;lt;${validator.name}&amp;gt;
+   &lt;br/&gt;
+#set ($javadocPath = "../apidocs/" + $validator.getClassName().replace('.', '/') )
+   &lt;b&gt;Validator class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${validator.className}&lt;/a&gt;
+   &lt;br/&gt;
+#if ($validator.tagClass)
+#set ($javadocPath = "../apidocs/" + $validator.getTagClass().replace('.', '/') )
+   &lt;b&gt;Tag class:&lt;/b&gt; &lt;a href="${tagdocUtils.platformAgnosticPath( $javadocPath )}.html"&gt;${validator.tagClass}&lt;/a&gt;
+   &lt;br/&gt;
+#end
+   &lt;b&gt;validator id:&lt;/b&gt; ${validator.validatorId}
+   &lt;br/&gt;
+${validator.longDescription}   
+  &lt;/p&gt;
+  &lt;/section&gt;
+#if ($baseContent)
+$baseContent
+#end
+#set ($propertyList = ${tagdocUtils.getSortedPropertyList($validator)})
+#if ($propertyList.size() != 0)  
+  &lt;section name="Attributes"&gt;
+&lt;table&gt;
+ &lt;tr&gt;
+  &lt;th&gt;Name&lt;/th&gt;
+  &lt;th&gt;Type&lt;/th&gt;
+  &lt;th&gt;Supports EL?&lt;/th&gt;
+  &lt;th&gt;Description&lt;/th&gt;
+ &lt;/tr&gt;
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+ &lt;tr&gt;
+  &lt;td&gt;$property.jspName&lt;/td&gt;
+#set ($type = ${tagdocUtils.getDisplayType($validator.className,$property.jspName,$property.className)})
+  &lt;td&gt;$type&lt;/td&gt;
+#if ($property.jspName == "action")
+  &lt;td&gt;Yes&lt;/td&gt;
+#elseif ($property.isMethodBinding() || $property.isMethodExpression())
+  &lt;td&gt;Only EL&lt;/td&gt;
+#elseif ($property.jspName == "binding")
+  &lt;td&gt;Only EL&lt;/td&gt;
+#elseif ($property.isLiteralOnly())
+  &lt;td&gt;No&lt;/td&gt;
+#else
+  &lt;td&gt;Yes&lt;/td&gt;
+#end
+#if ($property.longDescription)
+  &lt;td&gt;$property.longDescription&lt;/td&gt;
+#else
+  &lt;td&gt;&lt;/td&gt;
+#end
+ &lt;/tr&gt;
+#end
+#end
+&lt;/table&gt;
+#end
+  &lt;/section&gt;
+ &lt;/body&gt; 
+&lt;/document&gt;
\ No newline at end of file

Modified: myfaces/tomahawk/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/examples/pom.xml?rev=888664&amp;r1=888663&amp;r2=888664&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/examples/pom.xml (original)
+++ myfaces/tomahawk/trunk/examples/pom.xml Wed Dec  9 00:44:27 2009
@@ -48,7 +48,7 @@
             &lt;activation&gt;
                 &lt;property&gt;
                     &lt;name&gt;tomahawk&lt;/name&gt;
-		    &lt;value&gt;11&lt;/value&gt;
+		            &lt;value&gt;11&lt;/value&gt;
                 &lt;/property&gt;
             &lt;/activation&gt;
             &lt;dependencies&gt;
@@ -65,7 +65,7 @@
             &lt;activation&gt;
                 &lt;property&gt;
                     &lt;name&gt;tomahawk&lt;/name&gt;
-		    &lt;value&gt;12&lt;/value&gt;
+		            &lt;value&gt;12&lt;/value&gt;
                 &lt;/property&gt;
             &lt;/activation&gt;
             &lt;dependencies&gt;
@@ -76,6 +76,22 @@
                 &lt;/dependency&gt;
             &lt;/dependencies&gt;
         &lt;/profile&gt;
+        &lt;profile&gt;
+            &lt;id&gt;tomahawk-current12&lt;/id&gt;
+            &lt;activation&gt;
+                &lt;property&gt;
+                    &lt;name&gt;tomahawk&lt;/name&gt;
+                    &lt;value&gt;20&lt;/value&gt;
+                &lt;/property&gt;
+            &lt;/activation&gt;
+            &lt;dependencies&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+                    &lt;artifactId&gt;tomahawk20&lt;/artifactId&gt;
+                    &lt;version&gt;${project.version}&lt;/version&gt;
+                &lt;/dependency&gt;
+            &lt;/dependencies&gt;
+        &lt;/profile&gt;
 
         &lt;!-- To run the examples using MyFaces 1.1: do not specify a jsf property --&gt;
         &lt;profile&gt;
@@ -120,7 +136,6 @@
             &lt;/properties&gt;
         &lt;/profile&gt;
 
-
         &lt;!-- To run the examples using MyFaces 1.2: -Djsf=12 --&gt;
         &lt;profile&gt;
             &lt;id&gt;myfaces-1.2&lt;/id&gt;
@@ -164,7 +179,50 @@
                 &lt;jsf_implementation&gt;MyFaces 1.2&lt;/jsf_implementation&gt;
             &lt;/properties&gt;
         &lt;/profile&gt;
+        
+        &lt;!-- To run the examples using MyFaces 2.0: -Djsf=20 --&gt;
+        &lt;profile&gt;
+            &lt;id&gt;myfaces-2.0&lt;/id&gt;
+            &lt;activation&gt;
+                &lt;property&gt;
+                    &lt;name&gt;jsf&lt;/name&gt;
+                    &lt;value&gt;20&lt;/value&gt;
+                &lt;/property&gt;
+            &lt;/activation&gt;
+            &lt;dependencies&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;org.apache.myfaces.core&lt;/groupId&gt;
+                    &lt;artifactId&gt;myfaces-api&lt;/artifactId&gt;
+                    &lt;version&gt;${myfaces-core20-version}&lt;/version&gt;
+                &lt;/dependency&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;org.apache.myfaces.core&lt;/groupId&gt;
+                    &lt;artifactId&gt;myfaces-impl&lt;/artifactId&gt;
+                    &lt;version&gt;${myfaces-core20-version}&lt;/version&gt;
+                    &lt;scope&gt;runtime&lt;/scope&gt;
+                &lt;/dependency&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+                    &lt;artifactId&gt;jstl&lt;/artifactId&gt;
+                    &lt;version&gt;1.2&lt;/version&gt;
+                &lt;/dependency&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;taglibs&lt;/groupId&gt;
+                    &lt;artifactId&gt;standard&lt;/artifactId&gt;
+                    &lt;version&gt;1.1.2&lt;/version&gt;
+                &lt;/dependency&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
+                    &lt;artifactId&gt;geronimo-el_1.0_spec&lt;/artifactId&gt;
+                    &lt;version&gt;1.0-M1&lt;/version&gt;
+                    &lt;scope&gt;provided&lt;/scope&gt;
+                &lt;/dependency&gt;
+            &lt;/dependencies&gt;
 
+            &lt;properties&gt;
+                &lt;jsf_implementation&gt;MyFaces 2.0&lt;/jsf_implementation&gt;
+            &lt;/properties&gt;
+        &lt;/profile&gt;
 
         &lt;!-- To run the examples using Sun's JSF Reference Implementation 1.1: -Djsf=ri --&gt;
         &lt;profile&gt;
@@ -288,6 +346,48 @@
                 &lt;jsf_implementation&gt;JSF-RI 1.2&lt;/jsf_implementation&gt;
             &lt;/properties&gt;
         &lt;/profile&gt;
+        
+        &lt;!-- To use the examples using the Sun's JSF Reference Implementation 1.2 : -Djsf=ri12 --&gt;
+        &lt;profile&gt;
+            &lt;id&gt;jsfri-2.0&lt;/id&gt;
+            &lt;activation&gt;
+                &lt;property&gt;
+                    &lt;name&gt;jsf&lt;/name&gt;
+                    &lt;value&gt;ri20&lt;/value&gt;
+                &lt;/property&gt;
+            &lt;/activation&gt;
+            &lt;dependencies&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;javax.faces&lt;/groupId&gt;
+                    &lt;artifactId&gt;jsf-api&lt;/artifactId&gt;
+                    &lt;version&gt;2.0.1&lt;/version&gt;
+                &lt;/dependency&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;javax.faces&lt;/groupId&gt;
+                    &lt;artifactId&gt;jsf-impl&lt;/artifactId&gt;
+                    &lt;version&gt;2.0.1&lt;/version&gt;
+                    &lt;scope&gt;runtime&lt;/scope&gt;
+                &lt;/dependency&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
+                    &lt;artifactId&gt;geronimo-el_1.0_spec&lt;/artifactId&gt;
+                    &lt;version&gt;1.0-M1&lt;/version&gt;
+                    &lt;scope&gt;provided&lt;/scope&gt;
+                &lt;/dependency&gt;
+            &lt;/dependencies&gt;
+
+            &lt;repositories&gt;
+                &lt;repository&gt;
+                    &lt;id&gt;java.net.2&lt;/id&gt;
+                    &lt;name&gt;java.net Maven 2 Repository&lt;/name&gt;
+                    &lt;url&gt;http://download.java.net/maven/2&lt;/url&gt;
+                &lt;/repository&gt;
+            &lt;/repositories&gt;
+
+            &lt;properties&gt;
+                &lt;jsf_implementation&gt;JSF-RI 2.0&lt;/jsf_implementation&gt;
+            &lt;/properties&gt;
+        &lt;/profile&gt;
 
         &lt;!-- See http://myfaces.apache.org/tomahawk/testing/selenium.html --&gt;
         &lt;profile&gt;

Modified: myfaces/tomahawk/trunk/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/pom.xml?rev=888664&amp;r1=888663&amp;r2=888664&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/pom.xml (original)
+++ myfaces/tomahawk/trunk/pom.xml Wed Dec  9 00:44:27 2009
@@ -134,6 +134,7 @@
   &lt;modules&gt;
     &lt;module&gt;core&lt;/module&gt;
     &lt;module&gt;core12&lt;/module&gt;
+    &lt;module&gt;core20&lt;/module&gt;
     &lt;module&gt;examples&lt;/module&gt;
     &lt;module&gt;sandbox&lt;/module&gt;
   &lt;/modules&gt;
@@ -152,7 +153,7 @@
     &lt;!--  
       - Define what shared lib version tomahawk and sandbox code will be compiled with.
       --&gt;
-    &lt;myfaces-shared11-version&gt;2.0.10&lt;/myfaces-shared11-version&gt;
+    &lt;myfaces-shared11-version&gt;2.0.11-SNAPSHOT&lt;/myfaces-shared11-version&gt;
 
     &lt;!--
       - Define what version of myfaces core 1.2 the tomahawk core12 and sandbox12
@@ -168,6 +169,20 @@
       - Define what shared lib version tomahawk12 and sandbox12 code will be compiled with.
       --&gt;
     &lt;myfaces-shared12-version&gt;3.0.7&lt;/myfaces-shared12-version&gt;
+    &lt;!--
+      - Define what version of myfaces core 2.0 the tomahawk core20 and sandbox20
+      - code will be compiled and tested against.
+      -
+      - This also affects what version of myfaces the sandbox examples run
+      - against *when jsf2.0 is selected*. When jsf1.1 or a Sun implementation
+      - are selected for running the examples, this is ignored.
+      --&gt;
+    &lt;myfaces-core20-version&gt;2.0.0-SNAPSHOT&lt;/myfaces-core20-version&gt;
+
+    &lt;!--  
+      - Define what shared lib version tomahawk12 and sandbox12 code will be compiled with.
+      --&gt;
+    &lt;myfaces-shared20-version&gt;4.0.1-SNAPSHOT&lt;/myfaces-shared20-version&gt;
   &lt;/properties&gt;
 
 &lt;/project&gt;
\ No newline at end of file

Modified: myfaces/tomahawk/trunk/sandbox/core/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/pom.xml?rev=888664&amp;r1=888663&amp;r2=888664&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/pom.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/core/pom.xml Wed Dec  9 00:44:27 2009
@@ -151,6 +151,12 @@
            &lt;scope&gt;provided&lt;/scope&gt;
         &lt;/dependency&gt;
 
+        &lt;dependency&gt;
+           &lt;groupId&gt;com.lowagie&lt;/groupId&gt;
+           &lt;artifactId&gt;itext&lt;/artifactId&gt;
+           &lt;version&gt;1.4.8&lt;/version&gt;
+        &lt;/dependency&gt;
+
         &lt;!-- test dependencies --&gt;
 
         &lt;dependency&gt;
@@ -212,7 +218,7 @@
             &lt;plugin&gt;
               &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
               &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
-              &lt;version&gt;1.0.3&lt;/version&gt;
+              &lt;version&gt;1.0.4&lt;/version&gt;
               &lt;executions&gt;
                 &lt;execution&gt;
                   &lt;!-- A hierarchy of different tag classes must be created, 
@@ -370,7 +376,7 @@
                         &lt;!-- Generate report content --&gt;
                         &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
                         &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
-                        &lt;version&gt;1.0.3&lt;/version&gt;
+                        &lt;version&gt;1.0.4&lt;/version&gt;
                         &lt;configuration&gt;
                             &lt;taglibs&gt;
                                 &lt;s&gt;http://myfaces.apache.org/sandbox&lt;/s&gt;
@@ -400,7 +406,7 @@
                         &lt;!-- Generate report index --&gt;
                         &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
                         &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
-                        &lt;version&gt;1.0.3&lt;/version&gt;
+                        &lt;version&gt;1.0.4&lt;/version&gt;
                         &lt;configuration&gt;
                             &lt;taglibs&gt;
                                 &lt;s&gt;http://myfaces.apache.org/sandbox&lt;/s&gt;

Modified: myfaces/tomahawk/trunk/sandbox/core12/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core12/pom.xml?rev=888664&amp;r1=888663&amp;r2=888664&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core12/pom.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/core12/pom.xml Wed Dec  9 00:44:27 2009
@@ -137,7 +137,7 @@
         &lt;dependency&gt;
             &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
             &lt;artifactId&gt;myfaces-builder-annotations&lt;/artifactId&gt; 
-            &lt;version&gt;1.0.3&lt;/version&gt;
+            &lt;version&gt;1.0.4&lt;/version&gt;
             &lt;scope&gt;provided&lt;/scope&gt;
         &lt;/dependency&gt;
 
@@ -147,6 +147,12 @@
       &lt;scope&gt;provided&lt;/scope&gt;
     &lt;/dependency&gt;
         
+    &lt;dependency&gt;
+      &lt;groupId&gt;com.lowagie&lt;/groupId&gt;
+      &lt;artifactId&gt;itext&lt;/artifactId&gt;
+      &lt;version&gt;1.4.8&lt;/version&gt;
+    &lt;/dependency&gt; 
+
         &lt;!-- test dependencies --&gt;
 
         &lt;dependency&gt;
@@ -232,7 +238,7 @@
             &lt;plugin&gt;
               &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
               &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
-              &lt;version&gt;1.0.3&lt;/version&gt;
+              &lt;version&gt;1.0.4&lt;/version&gt;
               &lt;executions&gt;
                 &lt;execution&gt;
                   &lt;id&gt;unpack-tomahawk&lt;/id&gt;
@@ -418,6 +424,14 @@
                     &lt;/excludes&gt;
                 &lt;/configuration&gt;
             &lt;/plugin&gt;
+            &lt;plugin&gt;
+              &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+              &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+              &lt;configuration&gt;
+                &lt;source&gt;1.5&lt;/source&gt;
+                &lt;target&gt;1.5&lt;/target&gt;
+              &lt;/configuration&gt;
+            &lt;/plugin&gt;
         &lt;/plugins&gt;
     &lt;/build&gt;
 

Propchange: myfaces/tomahawk/trunk/sandbox/core20/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Dec  9 00:44:27 2009
@@ -0,0 +1,10 @@
+*.iml
+*.ipr
+*.iws
+*.jdbc
+.classpath
+.externalToolBuilders
+.project
+.settings
+maven-eclipse.xml
+target

Added: myfaces/tomahawk/trunk/sandbox/core20/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/pom.xml?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/pom.xml (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/pom.xml Wed Dec  9 00:44:27 2009
@@ -0,0 +1,608 @@
+&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+
+    &lt;artifactId&gt;tomahawk-sandbox20&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    &lt;name&gt;Sandbox Core 20&lt;/name&gt;
+    &lt;url&gt;http://myfaces.apache.org/sandbox&lt;/url&gt;
+    &lt;description&gt;
+        This is the Sandbox Subproject Description [INSERT MORE STUFF HERE]
+    &lt;/description&gt;
+
+    &lt;parent&gt;
+        &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+        &lt;artifactId&gt;sandbox-project&lt;/artifactId&gt;
+        &lt;version&gt;1.1.10-SNAPSHOT&lt;/version&gt;
+    &lt;/parent&gt;
+  
+    &lt;scm&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/myfaces/tomahawk/trunk/sandbox/core&lt;/connection&gt;
+        &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/myfaces/tomahawk/trunk/sandbox/core&lt;/developerConnection&gt;
+        &lt;url&gt;http://svn.apache.org/viewcvs.cgi/myfaces/tomahawk/trunk/sandbox/core&lt;/url&gt;
+    &lt;/scm&gt;
+
+    &lt;repositories&gt;
+        &lt;repository&gt;
+          &lt;id&gt;java-net&lt;/id&gt;
+          &lt;url&gt;http://download.java.net/maven/1&lt;/url&gt;
+          &lt;layout&gt;legacy&lt;/layout&gt;
+        &lt;/repository&gt;
+    &lt;/repositories&gt;
+    
+    &lt;dependencies&gt;
+  
+        &lt;!-- compile --&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+            &lt;artifactId&gt;tomahawk20&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
+            &lt;artifactId&gt;spring&lt;/artifactId&gt;
+            &lt;version&gt;2.0.1&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
+            &lt;version&gt;1.1.1&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;commons-validator&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-validator&lt;/artifactId&gt;
+            &lt;version&gt;1.2.0&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;commons-collections&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-collections&lt;/artifactId&gt;
+            &lt;version&gt;3.1&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;commons-el&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-el&lt;/artifactId&gt;
+            &lt;version&gt;1.0&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;commons-codec&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-codec&lt;/artifactId&gt;
+            &lt;version&gt;1.3&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;commons-lang&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-lang&lt;/artifactId&gt;
+            &lt;version&gt;2.4&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;portlet-api&lt;/groupId&gt;
+            &lt;artifactId&gt;portlet-api&lt;/artifactId&gt;
+            &lt;version&gt;1.0&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;poi&lt;/groupId&gt;
+            &lt;artifactId&gt;poi&lt;/artifactId&gt;
+            &lt;version&gt;2.5.1-final-20040804&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- provided dependencies --&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.myfaces.core&lt;/groupId&gt;
+            &lt;artifactId&gt;myfaces-api&lt;/artifactId&gt;
+	    &lt;version&gt;${myfaces-core20-version}&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;javax.servlet.jsp&lt;/groupId&gt;
+            &lt;artifactId&gt;jsp-api&lt;/artifactId&gt;
+            &lt;version&gt;2.1&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+            &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
+            &lt;version&gt;2.5&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.freemarker&lt;/groupId&gt;
+            &lt;artifactId&gt;freemarker&lt;/artifactId&gt;
+            &lt;version&gt;2.3.10&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+        
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
+            &lt;artifactId&gt;myfaces-builder-annotations&lt;/artifactId&gt; 
+            &lt;version&gt;1.0.4&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+&lt;!-- 
+    &lt;dependency&gt;
+      &lt;groupId&gt;com.sun.facelets&lt;/groupId&gt;
+      &lt;artifactId&gt;jsf-facelets&lt;/artifactId&gt;
+      &lt;scope&gt;provided&lt;/scope&gt;
+    &lt;/dependency&gt;
+ --&gt;
+        &lt;!-- test dependencies --&gt;
+
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.myfaces.core&lt;/groupId&gt;
+            &lt;artifactId&gt;myfaces-impl&lt;/artifactId&gt;
+            &lt;version&gt;${myfaces-core20-version}&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
+        &lt;/dependency&gt;
+        
+        &lt;dependency&gt;
+          &lt;groupId&gt;maven-taglib&lt;/groupId&gt;
+          &lt;artifactId&gt;maven-taglib-plugin&lt;/artifactId&gt;
+          &lt;version&gt;1.4.2&lt;/version&gt;
+          &lt;scope&gt;test&lt;/scope&gt;
+        &lt;/dependency&gt;
+        
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.shale&lt;/groupId&gt;
+            &lt;artifactId&gt;shale-test&lt;/artifactId&gt;
+            &lt;version&gt;1.0.4&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
+            &lt;exclusions&gt;
+                &lt;exclusion&gt;
+                    &lt;groupId&gt;org.apache.myfaces&lt;/groupId&gt;
+                    &lt;artifactId&gt;myfaces-api&lt;/artifactId&gt;
+                &lt;/exclusion&gt;
+                &lt;exclusion&gt;
+                    &lt;groupId&gt;org.apache.myfaces&lt;/groupId&gt;
+                    &lt;artifactId&gt;myfaces-impl&lt;/artifactId&gt;
+                &lt;/exclusion&gt;
+                &lt;exclusion&gt;
+                    &lt;groupId&gt;myfaces&lt;/groupId&gt;
+                    &lt;artifactId&gt;myfaces-api&lt;/artifactId&gt;
+                &lt;/exclusion&gt;
+                &lt;exclusion&gt;
+                    &lt;groupId&gt;myfaces&lt;/groupId&gt;
+                    &lt;artifactId&gt;myfaces-impl&lt;/artifactId&gt;
+                &lt;/exclusion&gt;
+            &lt;/exclusions&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+    &lt;build&gt;
+        &lt;resources&gt;
+            &lt;resource&gt;
+                &lt;directory&gt;src/main/resources&lt;/directory&gt;
+                &lt;excludes&gt;
+                   &lt;exclude&gt;**/*.vm&lt;/exclude&gt;
+                &lt;/excludes&gt;
+            &lt;/resource&gt;
+            &lt;!-- 
+            &lt;resource&gt;
+                &lt;directory&gt;src/main/resources-facesconfig&lt;/directory&gt;
+            &lt;/resource&gt;
+             --&gt;
+            &lt;resource&gt;
+                &lt;directory&gt;target/tomahawk12_resources&lt;/directory&gt;
+            &lt;/resource&gt;
+        &lt;/resources&gt;
+        &lt;plugins&gt;
+            &lt;plugin&gt;
+              &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+              &lt;artifactId&gt;build-helper-maven-plugin&lt;/artifactId&gt;
+              &lt;executions&gt;
+                  &lt;execution&gt;
+                      &lt;id&gt;add-source&lt;/id&gt;
+                      &lt;phase&gt;generate-sources&lt;/phase&gt;
+                      &lt;!-- &lt;phase&gt;process-sources&lt;/phase&gt; --&gt;
+                      &lt;goals&gt;
+                          &lt;goal&gt;add-source&lt;/goal&gt;
+                      &lt;/goals&gt;
+                      &lt;configuration&gt;
+                          &lt;sources&gt;
+                              &lt;source&gt;
+                                  ${project.build.directory}/tomahawk12_sources
+                              &lt;/source&gt;
+                          &lt;/sources&gt;
+                      &lt;/configuration&gt;
+                  &lt;/execution&gt;
+              &lt;/executions&gt;
+            &lt;/plugin&gt;
+            &lt;plugin&gt;
+              &lt;groupId&gt;org.apache.myfaces.buildtools&lt;/groupId&gt;
+              &lt;artifactId&gt;myfaces-builder-plugin&lt;/artifactId&gt;
+              &lt;version&gt;1.0.4&lt;/version&gt;
+              &lt;executions&gt;
+                &lt;execution&gt;
+                  &lt;id&gt;unpack-tomahawk&lt;/id&gt;
+                  &lt;phase&gt;generate-sources&lt;/phase&gt;
+                  &lt;!-- &lt;phase&gt;process-resources&lt;/phase&gt; --&gt;
+                  &lt;goals&gt;
+                    &lt;goal&gt;unpack&lt;/goal&gt;
+                  &lt;/goals&gt;
+                  &lt;configuration&gt;
+                    &lt;scanModel&gt;true&lt;/scanModel&gt;
+                    &lt;artifactItems&gt;
+                      &lt;artifactItem&gt;
+                        &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+                        &lt;artifactId&gt;tomahawk-sandbox12&lt;/artifactId&gt;
+                        &lt;version&gt;${pom.version}&lt;/version&gt;
+                        &lt;classifier&gt;sources&lt;/classifier&gt;                   
+                        &lt;!-- &lt;outputDirectory&gt;${project.build.directory}/unpacktomahawksources&lt;/outputDirectory&gt; --&gt;
+                        &lt;outputDirectory&gt;${project.build.directory}/tomahawk12_sources&lt;/outputDirectory&gt;
+                        &lt;includes&gt;**/*.java&lt;/includes&gt;
+                        &lt;!-- Conversation tags will not work on 1.2 by architectural problems,
+                        use orchestra instead 
+                        org/apache/myfaces/custom/conversation/*.java --&gt;
+                        &lt;excludes&gt;
+                        **/*.class,**/META-INF/**,
+                        org/apache/myfaces/shared_tomahawk/**/*.java
+                        &lt;/excludes&gt;
+                      &lt;/artifactItem&gt;
+                    &lt;/artifactItems&gt;
+                  &lt;/configuration&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                  &lt;id&gt;unpack-tomahawk-resources&lt;/id&gt;
+                  &lt;phase&gt;generate-resources&lt;/phase&gt;
+                  &lt;goals&gt;
+                    &lt;goal&gt;unpack&lt;/goal&gt;
+                  &lt;/goals&gt;
+                  &lt;configuration&gt;
+                    &lt;baseDirectory1&gt;${basedir}/src/main/resources&lt;/baseDirectory1&gt;
+                    &lt;artifactItems&gt;
+                      &lt;artifactItem&gt;
+                        &lt;groupId&gt;org.apache.myfaces.tomahawk&lt;/groupId&gt;
+                        &lt;artifactId&gt;tomahawk-sandbox12&lt;/artifactId&gt;
+                        &lt;version&gt;${pom.version}&lt;/version&gt;                                   
+                        &lt;outputDirectory&gt;${project.build.directory}/tomahawk12_resources&lt;/outputDirectory&gt;
+                        &lt;excludes&gt;**/*.class,**/META-INF/**&lt;/excludes&gt;
+                      &lt;/artifactItem&gt;
+                    &lt;/artifactItems&gt;
+                  &lt;/configuration&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                  &lt;!-- A hierarchy of different tag classes must be created, 
+                  because this classes are not part of the public api. The
+                  generation of all html package is the same. Please note that
+                  we need only a subset --&gt;
+                  &lt;configuration&gt;
+                      &lt;replacePackagePrefixTagFrom&gt;org.apache.myfaces.taglib&lt;/replacePackagePrefixTagFrom&gt;
+                      &lt;replacePackagePrefixTagTo&gt;org.apache.myfaces.shared_tomahawk.taglib&lt;/replacePackagePrefixTagTo&gt;
+                  &lt;/configuration&gt;
+                  &lt;goals&gt;
+                    &lt;goal&gt;build-metadata&lt;/goal&gt;
+                  &lt;/goals&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                  &lt;id&gt;makefacesconfig&lt;/id&gt;
+                  &lt;configuration&gt;
+                      &lt;templateFile&gt;faces-config12.vm&lt;/templateFile&gt;
+                      &lt;xmlFile&gt;META-INF/faces-config.xml&lt;/xmlFile&gt;
+                  &lt;/configuration&gt;
+                  &lt;goals&gt;
+                      &lt;goal&gt;make-config&lt;/goal&gt;
+                  &lt;/goals&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                    &lt;id&gt;makecomp&lt;/id&gt;
+                    &lt;goals&gt;
+                      &lt;goal&gt;make-components&lt;/goal&gt;
+                    &lt;/goals&gt;
+                    &lt;configuration&gt;
+                       &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+                       &lt;templateComponentName&gt;componentClass12.vm&lt;/templateComponentName&gt;
+                       &lt;mainSourceDirectory2&gt;${project.build.directory}/tomahawk12_sources&lt;/mainSourceDirectory2&gt;
+                    &lt;/configuration&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                    &lt;id&gt;makeval&lt;/id&gt;
+                    &lt;goals&gt;
+                      &lt;goal&gt;make-validators&lt;/goal&gt;
+                    &lt;/goals&gt;
+                    &lt;configuration&gt;
+                       &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+                       &lt;mainSourceDirectory2&gt;${project.build.directory}/tomahawk12_sources&lt;/mainSourceDirectory2&gt;
+                    &lt;/configuration&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                    &lt;id&gt;maketags&lt;/id&gt;
+                    &lt;configuration&gt;
+                       &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+                       &lt;templateTagName&gt;tagClass12.vm&lt;/templateTagName&gt;
+                       &lt;mainSourceDirectory2&gt;${project.build.directory}/tomahawk12_sources&lt;/mainSourceDirectory2&gt;
+                    &lt;/configuration&gt;
+                    &lt;goals&gt;
+                        &lt;goal&gt;make-tags&lt;/goal&gt;
+                    &lt;/goals&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                  &lt;id&gt;make_validator_tags_tomahawk&lt;/id&gt;
+                  &lt;configuration&gt;
+                      &lt;jsfVersion&gt;12&lt;/jsfVersion&gt;
+                  &lt;/configuration&gt; 
+                  &lt;goals&gt;
+                      &lt;goal&gt;make-validator-tags&lt;/goal&gt;
+                      &lt;goal&gt;make-converter-tags&lt;/goal&gt;
+                  &lt;/goals&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                  &lt;id&gt;makesandboxtld&lt;/id&gt;
+                  &lt;configuration&gt;
+                      &lt;xmlFile&gt;META-INF/myfaces_sandbox.tld&lt;/xmlFile&gt;
+                      &lt;xmlBaseFile&gt;src/main/conf/META-INF/myfaces_sandbox-base.tld&lt;/xmlBaseFile&gt;
+                      &lt;templateFile&gt;tomahawk12.vm&lt;/templateFile&gt;
+                      &lt;params&gt;
+                         &lt;shortname&gt;s&lt;/shortname&gt;
+                         &lt;uri&gt;http://myfaces.apache.org/sandbox&lt;/uri&gt;
+                         &lt;displayname&gt;Tomahawk sandbox tag library.&lt;/displayname&gt;
+                         &lt;description&gt;Enhanced standard JSP actions and custom MyFaces actions.&lt;/description&gt;
+                      &lt;/params&gt;
+                      &lt;modelIds&gt;
+                          &lt;modelId&gt;tomahawk-sandbox12&lt;/modelId&gt;
+                      &lt;/modelIds&gt;
+                  &lt;/configuration&gt;
+                  &lt;goals&gt;
+                      &lt;goal&gt;make-config&lt;/goal&gt;
+                  &lt;/goals&gt;
+                &lt;/execution&gt;
+                &lt;execution&gt;
+                  &lt;id&gt;makesandboxtaglib&lt;/id&gt;
+                  &lt;configuration&gt;
+                      &lt;xmlFile&gt;META-INF/sandbox.taglib.xml&lt;/xmlFile&gt;
+                      &lt;xmlBaseFile&gt;src/main/conf/META-INF/facelets-taglib-base.xml&lt;/xmlBaseFile&gt;
+                      &lt;templateFile&gt;facelets-taglib.vm&lt;/templateFile&gt;
+                      &lt;params&gt;
+                         &lt;shortname&gt;s&lt;/shortname&gt;
+                         &lt;uri&gt;http://myfaces.apache.org/sandbox&lt;/uri&gt;
+                      &lt;/params&gt;
+                      &lt;modelIds&gt;
+                          &lt;modelId&gt;tomahawk-sandbox12&lt;/modelId&gt;
+                      &lt;/modelIds&gt;
+                  &lt;/configuration&gt;
+                  &lt;goals&gt;
+                      &lt;goal&gt;make-config&lt;/goal&gt;
+                  &lt;/goals&gt;
+                &lt;/execution&gt;
+              &lt;/executions&gt;
+            &lt;/plugin&gt;
+
+            &lt;!--    
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                &lt;artifactId&gt;xslt-maven-plugin&lt;/artifactId&gt;
+                &lt;version&gt;1.0&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;xslFile&gt;src/main/tld/misc/resolve_entities.xsl&lt;/xslFile&gt;
+                    &lt;srcIncludes&gt;**/*.tld&lt;/srcIncludes&gt;
+                    &lt;srcDir&gt;src/main/tld&lt;/srcDir&gt;
+                    &lt;destDir&gt;target/classes/META-INF&lt;/destDir&gt;
+                &lt;/configuration&gt;
+                &lt;executions&gt;
+                    &lt;execution&gt;
+                        &lt;goals&gt;
+                            &lt;goal&gt;transform&lt;/goal&gt;
+                        &lt;/goals&gt;
+                    &lt;/execution&gt;
+                &lt;/executions&gt;
+            &lt;/plugin&gt;
+            --&gt;
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.4.2&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;excludes&gt;
+                        &lt;exclude&gt;**/Abstract*.java&lt;/exclude&gt;                    
+                        &lt;exclude&gt;**/TestUtils.java&lt;/exclude&gt;
+                    &lt;/excludes&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+            &lt;plugin&gt;
+              &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+              &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+              &lt;configuration&gt;
+                &lt;source&gt;1.5&lt;/source&gt;
+                &lt;target&gt;1.5&lt;/target&gt;
+              &lt;/configuration&gt;
+            &lt;/plugin&gt;
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;reporting&gt;
+        &lt;plugins&gt;
+
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                &lt;artifactId&gt;changelog-maven-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.0-beta-1&lt;/version&gt;
+                &lt;reportSets&gt;
+                    &lt;reportSet&gt;
+                        &lt;id&gt;dual-report&lt;/id&gt;
+                        &lt;configuration&gt;
+                            &lt;type&gt;range&lt;/type&gt;
+                            &lt;range&gt;30&lt;/range&gt;
+                        &lt;/configuration&gt;
+                        &lt;reports&gt;
+                            &lt;report&gt;changelog&lt;/report&gt;
+                            &lt;report&gt;file-activity&lt;/report&gt;
+                            &lt;report&gt;dev-activity&lt;/report&gt;
+                        &lt;/reports&gt;
+                    &lt;/reportSet&gt;
+                &lt;/reportSets&gt;
+            &lt;/plugin&gt;
+
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.4&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;sourcepath&gt;${basedir}/src/main/java;${basedir}/target/tomahawk12_sources;${basedir}/target/maven-faces-plugin/main/java&lt;/sourcepath&gt;
+                &lt;/configuration&gt;                
+            &lt;/plugin&gt;
+
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-jxr-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.1&lt;/version&gt;
+            &lt;/plugin&gt;
+
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                &lt;artifactId&gt;taglist-maven-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.0&lt;/version&gt;
+            &lt;/plugin&gt;
+
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-surefire-report-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.4&lt;/version&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+    &lt;/reporting&gt;
+
+    &lt;profiles&gt;
+        &lt;profile&gt;
+            &lt;id&gt;generate-site&lt;/id&gt;
+            &lt;build&gt;
+                &lt;plugins&gt;
+                    &lt;!-- 
+                    &lt;plugin&gt;
+                        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                        &lt;artifactId&gt;xslt-maven-plugin&lt;/artifactId&gt;
+                        &lt;version&gt;1.0&lt;/version&gt;
+                        &lt;executions&gt;
+                            &lt;execution&gt;
+                                &lt;id&gt;generate-tld-for-tlddoc&lt;/id&gt;
+                                &lt;goals&gt;
+                                    &lt;goal&gt;transform&lt;/goal&gt;
+                                &lt;/goals&gt;
+                                &lt;configuration&gt;
+                                    &lt;xslFile&gt;src/main/tld/misc/resolve_entities-tlddoc.xsl&lt;/xslFile&gt;
+                                    &lt;srcIncludes&gt;**/*.tld&lt;/srcIncludes&gt;
+                                    &lt;srcDir&gt;src/main/tld&lt;/srcDir&gt;
+                                    &lt;destDir&gt;target/tlddoc-site&lt;/destDir&gt;
+                                &lt;/configuration&gt;
+                            &lt;/execution&gt;
+                            &lt;execution&gt;
+                                &lt;id&gt;generate-tld-for-jar&lt;/id&gt;
+                                &lt;goals&gt;
+                                    &lt;goal&gt;transform&lt;/goal&gt;
+                                &lt;/goals&gt;
+                                &lt;configuration&gt;
+                                    &lt;xslFile&gt;src/main/tld/misc/resolve_entities.xsl&lt;/xslFile&gt;
+                                    &lt;srcIncludes&gt;**/*.tld&lt;/srcIncludes&gt;
+                                    &lt;srcDir&gt;src/main/tld&lt;/srcDir&gt;
+                                    &lt;destDir&gt;target/classes/META-INF&lt;/destDir&gt;
+                                &lt;/configuration&gt;
+                            &lt;/execution&gt;
+                        &lt;/executions&gt;
+                    &lt;/plugin&gt;
+                     --&gt;
+                &lt;/plugins&gt;
+
+            &lt;/build&gt;
+            &lt;reporting&gt;
+                &lt;plugins&gt;
+                    &lt;plugin&gt;
+                        &lt;groupId&gt;net.sourceforge.maven-taglib&lt;/groupId&gt;
+                        &lt;artifactId&gt;maven-taglib-plugin&lt;/artifactId&gt;
+                        &lt;configuration&gt;
+                            &lt;taglib.src.dir&gt;${basedir}/target/classes/META-INF&lt;/taglib.src.dir&gt;
+                            &lt;tldDocDir&gt;${basedir}/target/site/tlddoc&lt;/tldDocDir&gt;
+                        &lt;/configuration&gt;
+                    &lt;/plugin&gt;
+                &lt;/plugins&gt;
+            &lt;/reporting&gt;
+        &lt;/profile&gt;
+        &lt;profile&gt;
+            &lt;id&gt;generate-assembly&lt;/id&gt;
+            &lt;activation&gt;
+              &lt;property&gt;
+                &lt;name&gt;performRelease&lt;/name&gt;
+                &lt;value&gt;true&lt;/value&gt;
+              &lt;/property&gt;
+            &lt;/activation&gt;
+            &lt;build&gt;
+                &lt;plugins&gt;
+                    &lt;!-- 
+                    &lt;plugin&gt;
+                        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                        &lt;artifactId&gt;xslt-maven-plugin&lt;/artifactId&gt;
+                        &lt;version&gt;1.0&lt;/version&gt;
+                        &lt;executions&gt;
+                            &lt;execution&gt;
+                                &lt;id&gt;generate-tld-for-tlddoc&lt;/id&gt;
+                                &lt;goals&gt;
+                                    &lt;goal&gt;transform&lt;/goal&gt;
+                                &lt;/goals&gt;
+                                &lt;configuration&gt;
+                                    &lt;xslFile&gt;src/main/tld/misc/resolve_entities-tlddoc.xsl&lt;/xslFile&gt;
+                                    &lt;srcIncludes&gt;**/*.tld&lt;/srcIncludes&gt;
+                                    &lt;srcDir&gt;src/main/tld&lt;/srcDir&gt;
+                                    &lt;destDir&gt;target/tlddoc-site&lt;/destDir&gt;
+                                &lt;/configuration&gt;
+                            &lt;/execution&gt;
+                            &lt;execution&gt;
+                                &lt;id&gt;generate-tld-for-jar&lt;/id&gt;
+                                &lt;goals&gt;
+                                    &lt;goal&gt;transform&lt;/goal&gt;
+                                &lt;/goals&gt;
+                                &lt;configuration&gt;
+                                    &lt;xslFile&gt;src/main/tld/misc/resolve_entities.xsl&lt;/xslFile&gt;
+                                    &lt;srcIncludes&gt;**/*.tld&lt;/srcIncludes&gt;
+                                    &lt;srcDir&gt;src/main/tld&lt;/srcDir&gt;
+                                    &lt;destDir&gt;target/classes/META-INF&lt;/destDir&gt;
+                                &lt;/configuration&gt;
+                            &lt;/execution&gt;
+                        &lt;/executions&gt;
+                    &lt;/plugin&gt;
+                     --&gt;
+                    &lt;plugin&gt;
+                        &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;
+                        &lt;version&gt;2.4&lt;/version&gt;
+                        &lt;executions&gt;
+                            &lt;execution&gt;
+                                &lt;id&gt;attach-javadoc&lt;/id&gt;
+                                &lt;goals&gt;&lt;goal&gt;jar&lt;/goal&gt;&lt;/goals&gt;
+                            &lt;/execution&gt;
+                        &lt;/executions&gt;
+                    &lt;/plugin&gt;
+                    &lt;plugin&gt;
+                        &lt;groupId&gt;net.sourceforge.maven-taglib&lt;/groupId&gt;
+                        &lt;artifactId&gt;maven-taglib-plugin&lt;/artifactId&gt;
+                        &lt;configuration&gt;
+                            &lt;taglib.src.dir&gt;${basedir}/target/classes/META-INF&lt;/taglib.src.dir&gt;
+                            &lt;tldDocDir&gt;${basedir}/target/tlddoc&lt;/tldDocDir&gt;
+                        &lt;/configuration&gt;
+                        &lt;executions&gt;
+                            &lt;execution&gt;
+                                &lt;id&gt;attach-javadoc&lt;/id&gt;
+                                &lt;goals&gt;&lt;goal&gt;taglibdocjar&lt;/goal&gt;&lt;/goals&gt;
+                            &lt;/execution&gt;
+                        &lt;/executions&gt;
+                    &lt;/plugin&gt;
+                &lt;/plugins&gt;
+            &lt;/build&gt;
+        &lt;/profile&gt;
+    &lt;/profiles&gt;
+
+&lt;/project&gt;

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/facelets-taglib-base.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/facelets-taglib-base.xml?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/facelets-taglib-base.xml (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/facelets-taglib-base.xml Wed Dec  9 00:44:27 2009
@@ -0,0 +1,24 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;!DOCTYPE facelet-taglib
+  PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/facelet-taglib_1_0.dtd"&gt;
+&lt;facelet-taglib xmlns="http://java.sun.com/JSF/Facelet"&gt;
+
+&lt;/facelet-taglib&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/faces-config-base.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/faces-config-base.xml?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/faces-config-base.xml (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/faces-config-base.xml Wed Dec  9 00:44:27 2009
@@ -0,0 +1,114 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+
+&lt;!--
+ * 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.
+--&gt;
+
+&lt;faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" 
+              version="1.2"&gt;
+              
+  &lt;lifecycle&gt;
+      &lt;phase-listener&gt;org.apache.myfaces.custom.ajax.api.AjaxDecodePhaseListener&lt;/phase-listener&gt;
+      &lt;phase-listener&gt;org.apache.myfaces.custom.valueChangeNotifier.ValueChangePhaseListener&lt;/phase-listener&gt;
+      &lt;phase-listener&gt;org.apache.myfaces.custom.redirectTracker.RedirectTrackerPhaseListener&lt;/phase-listener&gt;
+      &lt;phase-listener&gt;org.apache.myfaces.custom.ppr.PPRPhaseListener&lt;/phase-listener&gt; 
+  &lt;/lifecycle&gt;
+
+  &lt;application&gt;
+    &lt;variable-resolver&gt;org.apache.myfaces.custom.redirectTracker.RedirectTrackerVariableResolver&lt;/variable-resolver&gt;
+    &lt;navigation-handler&gt;org.apache.myfaces.custom.redirectTracker.RedirectTrackerNavigationHandler&lt;/navigation-handler&gt;
+    &lt;variable-resolver&gt;org.apache.myfaces.custom.security.SecurityContextVariableResolver&lt;/variable-resolver&gt;
+    &lt;property-resolver&gt;org.apache.myfaces.custom.security.SecurityContextPropertyResolver&lt;/property-resolver&gt;
+  &lt;/application&gt;
+
+  &lt;factory&gt;
+      &lt;lifecycle-factory&gt;org.apache.myfaces.custom.ppr.PPRLifecycleFactory&lt;/lifecycle-factory&gt;
+  &lt;/factory&gt;
+
+  &lt;!-- sandbox managed beans --&gt;
+  &lt;managed-bean&gt;
+    &lt;managed-bean-name&gt;ScopeContainer&lt;/managed-bean-name&gt;
+    &lt;managed-bean-class&gt;org.apache.myfaces.custom.scope.ScopeHolder&lt;/managed-bean-class&gt;
+    &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
+  &lt;/managed-bean&gt;
+  
+  &lt;managed-bean&gt;
+        &lt;managed-bean-name&gt;CVCallsHolder&lt;/managed-bean-name&gt;
+        &lt;managed-bean-class&gt;org.apache.myfaces.custom.clientvalidation.common.CVCallsHolder
+        &lt;/managed-bean-class&gt;
+        &lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;
+  &lt;/managed-bean&gt;
+
+  &lt;!-- extended converters and validators --&gt;
+    &lt;converter&gt;
+        &lt;converter-id&gt;javax.faces.Integer&lt;/converter-id&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.IntegerConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;java.lang.Integer&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.IntegerConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-id&gt;javax.faces.Double&lt;/converter-id&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.DoubleConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;java.lang.Double&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.DoubleConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-id&gt;javax.faces.Float&lt;/converter-id&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.FloatConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;java.lang.Float&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.FloatConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-id&gt;javax.faces.Long&lt;/converter-id&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.LongConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;java.lang.Long&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.LongConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+        &lt;converter&gt;
+        &lt;converter-id&gt;javax.faces.Short&lt;/converter-id&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.ShortConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+    &lt;converter&gt;
+        &lt;converter-for-class&gt;java.lang.Short&lt;/converter-for-class&gt;
+        &lt;converter-class&gt;org.apache.myfaces.convert.ex.ShortConverter&lt;/converter-class&gt;
+    &lt;/converter&gt;
+
+    &lt;validator&gt;
+        &lt;validator-id&gt;javax.faces.Length&lt;/validator-id&gt;
+        &lt;validator-class&gt;org.apache.myfaces.validator.ex.LengthValidator&lt;/validator-class&gt;
+    &lt;/validator&gt;
+    &lt;validator&gt;
+        &lt;validator-id&gt;javax.faces.LongRange&lt;/validator-id&gt;
+        &lt;validator-class&gt;org.apache.myfaces.validator.ex.LongRangeValidator&lt;/validator-class&gt;
+    &lt;/validator&gt;
+    &lt;validator&gt;
+        &lt;validator-id&gt;javax.faces.DoubleRange&lt;/validator-id&gt;
+        &lt;validator-class&gt;org.apache.myfaces.validator.ex.DoubleRangeValidator&lt;/validator-class&gt;
+    &lt;/validator&gt;
+
+&lt;/faces-config&gt;

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/myfaces_sandbox-base.tld
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/myfaces_sandbox-base.tld?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/myfaces_sandbox-base.tld (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/conf/META-INF/myfaces_sandbox-base.tld Wed Dec  9 00:44:27 2009
@@ -0,0 +1,25 @@
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;taglib xmlns="http://java.sun.com/xml/ns/javaee" 
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 
+        version="2.1"&gt;
+           
+&lt;/taglib&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/ajaxchildcombobox/AjaxChildComboBoxTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/ajaxchildcombobox/AjaxChildComboBoxTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/ajaxchildcombobox/AjaxChildComboBoxTagHandler.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/ajaxchildcombobox/AjaxChildComboBoxTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,66 @@
+/*
+ * 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.custom.ajaxchildcombobox;
+
+import javax.el.MethodExpression;
+import javax.faces.application.Application;
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.MetaRuleset;
+import javax.faces.view.facelets.TagAttribute;
+
+public class AjaxChildComboBoxTagHandler extends ComponentHandler {
+ 
+    private static final String AJAX_SELECT_ITEMS_METHOD = "ajaxSelectItemsMethod";
+    
+    private static final Class [] ajaxSelectItemsMethodParamList = new Class[]{String.class}; 
+
+    private TagAttribute ajaxSelectItemsMethodAttr;
+    
+    public AjaxChildComboBoxTagHandler(ComponentConfig tagConfig) {
+        super(tagConfig);
+        ajaxSelectItemsMethodAttr = getAttribute(AJAX_SELECT_ITEMS_METHOD);
+    }
+
+    public void setAttributes(FaceletContext ctx, Object instance)
+    {
+        super.setAttributes(ctx, instance);
+        
+        Application app = ctx.getFacesContext().getApplication();
+        
+        AjaxChildComboBox comp = (AjaxChildComboBox) instance;
+        
+        if (ajaxSelectItemsMethodAttr != null){
+            String _ajaxSelectItemsMethod = ajaxSelectItemsMethodAttr.getValue();
+            if (_ajaxSelectItemsMethod != null)
+            {
+                MethodExpression mb = app.getExpressionFactory().createMethodExpression(
+                        ctx.getFacesContext().getELContext(),
+                    _ajaxSelectItemsMethod,javax.faces.model.SelectItem[].class, ajaxSelectItemsMethodParamList);
+                comp.setAjaxSelectItemsMethod(mb);
+            }
+        }        
+    }
+    
+    protected MetaRuleset createMetaRuleset(Class type)
+    {
+        return super.createMetaRuleset(type).alias("class", "styleClass");
+    }
+}

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxTagHandler.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/inputsuggestajax/InputSuggestAjaxTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,95 @@
+/*
+ * 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.custom.suggestajax.inputsuggestajax;
+
+import javax.faces.application.Application;
+import javax.faces.el.ValueBinding;
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.MetaRuleset;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.webapp.UIComponentTag;
+
+import org.apache.myfaces.custom.facelets.tag.MethodRule;
+import org.apache.myfaces.custom.suggestajax.AbstractSuggestAjaxTag;
+import org.apache.myfaces.custom.suggestajax.SuggestAjax;
+
+public class InputSuggestAjaxTagHandler extends ComponentHandler
+{
+    
+    private static final Class[] itemLabelMethodParamList = new Class[]{Object.class};
+    
+    private static final String ITEM_LABEL_METHOD = "itemLabelMethod";
+    private static final String SUGGESTED_ITEMS_METHOD = "suggestedItemsMethod";
+    private static final String MAX_SUGGESTED_ITEMS = "maxSuggestedItems";
+
+    private TagAttribute suggestedItemsMethodAttr;
+    private TagAttribute maxSuggestedItemsAttr;
+    
+    public InputSuggestAjaxTagHandler(ComponentConfig config)
+    {
+        super(config);
+        suggestedItemsMethodAttr = getAttribute(SUGGESTED_ITEMS_METHOD);
+        maxSuggestedItemsAttr = getAttribute(MAX_SUGGESTED_ITEMS);
+    }
+    
+    public void setAttributes(FaceletContext ctx, Object instance)
+    {
+        super.setAttributes(ctx, instance);
+
+        Application app = ctx.getFacesContext().getApplication();
+        
+        SuggestAjax comp = (SuggestAjax) instance;
+        
+        if (maxSuggestedItemsAttr != null){
+            String maxSuggestedItems = maxSuggestedItemsAttr.getValue();
+            
+            if (maxSuggestedItems != null)
+            {
+                if (UIComponentTag.isValueReference(maxSuggestedItems))
+                {
+                    ValueBinding vb = app.createValueBinding(maxSuggestedItems);
+                    comp.setValueBinding(MAX_SUGGESTED_ITEMS, vb);
+                }
+                else
+                {
+                    comp.getAttributes().put(MAX_SUGGESTED_ITEMS, Integer.valueOf(maxSuggestedItems));
+                }
+            } 
+        }
+        
+        if (suggestedItemsMethodAttr != null){
+            String suggestedItemsMethod = suggestedItemsMethodAttr.getValue();
+            if (suggestedItemsMethod != null)
+            {
+                AbstractSuggestAjaxTag.setSuggestedItemsMethodProperty(ctx.getFacesContext(),
+                        comp,suggestedItemsMethod);
+            }
+        }
+    }
+    
+    protected MetaRuleset createMetaRuleset(Class type)
+    {
+        return super.createMetaRuleset(type).alias("class", "styleClass").addRule(
+                new MethodRule(ITEM_LABEL_METHOD, 
+                        String.class, itemLabelMethodParamList));        
+    }
+    
+}

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxTagHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxTagHandler.java?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxTagHandler.java (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/java/org/apache/myfaces/custom/suggestajax/tablesuggestajax/TableSuggestAjaxTagHandler.java Wed Dec  9 00:44:27 2009
@@ -0,0 +1,88 @@
+/*
+ * 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.custom.suggestajax.tablesuggestajax;
+
+import javax.faces.application.Application;
+import javax.faces.el.ValueBinding;
+import javax.faces.view.facelets.ComponentConfig;
+import javax.faces.view.facelets.ComponentHandler;
+import javax.faces.view.facelets.FaceletContext;
+import javax.faces.view.facelets.MetaRuleset;
+import javax.faces.view.facelets.TagAttribute;
+import javax.faces.webapp.UIComponentTag;
+
+import org.apache.myfaces.custom.suggestajax.AbstractSuggestAjaxTag;
+import org.apache.myfaces.custom.suggestajax.SuggestAjax;
+
+public class TableSuggestAjaxTagHandler extends ComponentHandler
+{
+    private static final String SUGGESTED_ITEMS_METHOD = "suggestedItemsMethod";
+    private static final String MAX_SUGGESTED_ITEMS = "maxSuggestedItems";
+
+    private TagAttribute suggestedItemsMethodAttr;
+    private TagAttribute maxSuggestedItemsAttr;
+    
+    public TableSuggestAjaxTagHandler(ComponentConfig config)
+    {
+        super(config);
+        suggestedItemsMethodAttr = getAttribute(SUGGESTED_ITEMS_METHOD);
+        maxSuggestedItemsAttr = getAttribute(MAX_SUGGESTED_ITEMS);
+    }
+    
+    public void setAttributes(FaceletContext ctx, Object instance)
+    {
+        super.setAttributes(ctx, instance);
+
+        Application app = ctx.getFacesContext().getApplication();
+        
+        SuggestAjax comp = (SuggestAjax) instance;
+        
+        if (maxSuggestedItemsAttr != null){
+            String maxSuggestedItems = maxSuggestedItemsAttr.getValue();
+            
+            if (maxSuggestedItems != null)
+            {
+                if (UIComponentTag.isValueReference(maxSuggestedItems))
+                {
+                    ValueBinding vb = app.createValueBinding(maxSuggestedItems);
+                    comp.setValueBinding(MAX_SUGGESTED_ITEMS, vb);
+                }
+                else
+                {
+                    comp.getAttributes().put(MAX_SUGGESTED_ITEMS, Integer.valueOf(maxSuggestedItems));
+                }
+            } 
+        }
+        
+        if (suggestedItemsMethodAttr != null){
+            String suggestedItemsMethod = suggestedItemsMethodAttr.getValue();
+            if (suggestedItemsMethod != null)
+            {
+                AbstractSuggestAjaxTag.setSuggestedItemsMethodProperty(ctx.getFacesContext(),
+                        comp,suggestedItemsMethod);
+            }
+        }
+    }
+    
+    protected MetaRuleset createMetaRuleset(Class type)
+    {
+        return super.createMetaRuleset(type).alias("class", "styleClass");
+    }
+
+}

Added: myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/sandbox/core20/src/main/resources/META-INF/LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,174 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888664 [2/5] - in /myfaces/tomahawk/trunk: ./ core/ core/src/main/resources-filtered/ core/src/main/resources-filtered/org/ core/src/main/resources-filtered/org/apache/ core/src/main/resources-filtered/org/apache/myfaces/ core/src/main/res...</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209004435.79A4623889EC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209004435-79A4623889EC@eris-apache-org%3e</id>
<updated>2009-12-09T00:44:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,174 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/NOTICE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/NOTICE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/NOTICE.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/NOTICE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,32 @@
+Apache MyFaces
+Copyright 2004-2008 The Apache Software Foundation
+
+This product includes software developed by:
+The Apache Software Foundation (http://www.apache.org/).
+
+------------------------------------------------------------------------
+See the file LICENSE.txt
+See licenses for accompanying products in the "/licenses" subdirectory.
+------------------------------------------------------------------------
+
+This product includes software developed by Heng Yuan (jscookmenu)
+http://www.cs.ucla.edu/~heng/JSCookMenu
+
+This product includes software developed by Sam Stephenson (the ProtoType library)
+http://conio.net/
+
+This product includes software developed by Thomas Fuchs (the Ruby on Rails Ajax javascript extensions, script.aculo.us)
+http://script.aculo.us/
+
+This product includes software developed by the Kupu Project
+(http://kupu.oscom.org/).
+
+This product includes Sarissa ECMAScript written by Manos Batsis, released under
+the Kupu License with kind permission by the author (used by the Kupu HTML editor). See the Sarissa
+homepage at http://sarissa.sourceforge.net/ for more information.
+
+This product includes software developed by Guido Wesdorp (i18n.js, used by the KUPU html editor)
+(http://kupu.oscom.org/).
+
+This product includes software developed by Dojo Foundation (http://dojotoolkit.org/foundation/)
+http://www.dojotoolkit.org/

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/componentClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/componentClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/componentClass12.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/componentClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,256 @@
+## Velocity template used to generate JSF1.2-compatible component classes
+## from component meta-data.
+##
+## Note that there are two types of component generation:
+##  * "subclass mode" (use annotated class as a parent class)
+##  * "template mode" (use annotated class as a template)
+## This template file is used for both.
+##
+## Variable $component refers to a ComponentMeta object to process
+## Variable $utils refers to an instance of MyfacesUtils.
+##
+## When "template mode" is being used then variable $innersource
+## holds a String containing all the non-abstract functions defined
+## in the annotated class.
+##
+## The java package of the generated class is always the same as
+## the package in which the annotated class exists.
+##
+/*
+ *  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 ${component.packageName};
+
+import javax.el.ValueExpression;
+import javax.faces.context.FacesContext;
+$utils.importTagClasses($component)
+
+#if ($component.isTemplate())
+#set ($generatedClassParent = $component.sourceClassParentClassName)
+#else
+#set ($generatedClassParent = $component.sourceClassName)
+#end
+// Generated from class ${component.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class ${utils.getClassFromFullClass($component.className)} extends $generatedClassParent
+#if ($component.implements)
+    implements $component.implements
+#end
+{
+#if ($component.serialuid)
+    private static final long serialVersionUID = ${component.serialuid}; 
+#end  
+
+    static public final String COMPONENT_FAMILY =
+        "$component.family";
+    static public final String COMPONENT_TYPE =
+        "$component.type";
+#if ($component.rendererType)
+#if (!($component.rendererType == ""))
+    static public final String DEFAULT_RENDERER_TYPE = 
+        "$component.rendererType";
+#end
+#end
+
+#if ($innersource)
+    //BEGIN CODE COPIED FROM $component.sourceClassName 
+$innersource
+    //END CODE COPIED FROM $component.sourceClassName
+#end
+
+    public ${utils.getClassFromFullClass($component.className)}()
+    {
+#if ($component.rendererType)
+#if ($component.rendererType == "")
+        setRendererType(null);
+#else
+        setRendererType("$component.rendererType");
+#end
+#else
+        setRendererType(null);
+#end
+    }
+
+## On myfaces 1.1 the family is inherited, so this could be commented
+## On other this should not be commented    
+    public String getFamily()
+    {
+        return COMPONENT_FAMILY;
+    }
+    
+#set ($propertyList = ${component.propertyComponentList})
+
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if($utils.getDefaultValueField($property)) 
+#set ($defaultValue = $utils.getDefaultValueField($property))
+#else
+#set ($defaultValue = false)
+#end
+    // Property: $property.name
+#if ($property.isLiteralOnly() || $property.isTagExcluded() )
+    private $type $field #if($defaultValue) = $defaultValue;#{else};#{end}
+
+     
+#else
+    private $type $field;
+    
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded()
+    &amp;&amp; !$property.isLiteralOnly() )
+    private boolean ${field}Set;
+    
+#if ($property.isSetMethod())
+    $property.setMethodScope boolean $utils.getPrefixedPropertyName("isSet", $property.name)()
+    {
+        return ${field}Set;
+    }
+#end
+#end
+#if($property.isLocalMethod())
+#if("boolean" == $type)
+#set ($methodName = $utils.getPrefixedPropertyName("isLocal", $property.name))
+#else
+#set ($methodName = $utils.getPrefixedPropertyName("getLocal", $property.name))
+#end
+    final $property.localMethodScope $type ${methodName}()
+    {
+        return $field;
+    }
+     
+#end
+    public $type $utils.getMethodReaderFromProperty($property.name, $type)()
+    {
+#if ($property.isTagExcluded() || $property.isLiteralOnly())
+        return $field;
+#else
+#if ($utils.isPrimitiveClass($type))
+        if (${field}Set)
+#else
+        if ($field != null)
+#end
+        {
+            return $field;
+        }
+        ValueExpression vb = getValueExpression("$property.name");
+        if (vb != null)
+        {
+#if ($utils.isPrimitiveClass($type))
+            return ($utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext())).${type}Value();
+#else
+#set ($pritype = $utils.getPrimitiveType($property.className))
+#if ($utils.isPrimitiveClass($pritype))
+            Object value = vb == null ? null : vb.getValue(getFacesContext().getELContext());
+            if (!(value instanceof $type)){
+                value = ${type}.valueOf(value.toString());
+            }            
+            return $utils.castIfNecessary($type) value;
+#else
+            return $utils.castIfNecessary($type) vb.getValue(getFacesContext().getELContext());
+#end
+#end
+        }
+#if ($defaultValue)
+        return $defaultValue; 
+#elseif ($utils.isPrimitiveClass($type))
+        return $utils.primitiveDefaultValue($type);
+#else       
+        return null;
+#end
+#end
+    }
+
+    public void $utils.getPrefixedPropertyName("set", $property.name)($type $utils.getVariableFromName($property.name))
+    {
+        this.$field = $utils.getVariableFromName($property.name);
+#if ($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded() 
+     &amp;&amp; !$property.isLiteralOnly())
+        this.${field}Set = true;        
+#end
+    }
+#end
+
+    public Object saveState(FacesContext facesContext)
+    {
+#set ($primitiveCount = $propertyList.size() + 1)
+#foreach( $property in $propertyList )
+#if($utils.isPrimitiveClass($property.className) &amp;&amp; 
+    !$property.isLiteralOnly())
+#set ($primitiveCount = $primitiveCount + 1)
+#end
+#end
+        Object[] values = new Object[$primitiveCount];
+        values[0] = super.saveState(facesContext);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        values[$arrayIndex] = saveAttachedState(facesContext,${field}List);
+#elseif ( $property.isStateHolder() )## || $utils.isConverter($type)
+        values[$arrayIndex] = saveAttachedState(facesContext,$field);
+#elseif($utils.isPrimitiveClass($type))
+        values[$arrayIndex] = ${utils.getBoxedClass($type)}.valueOf($field);
+#else
+        values[$arrayIndex] = $field;
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded()
+    &amp;&amp; !$property.isLiteralOnly() )
+#set ($arrayIndex = $arrayIndex + 1)
+        values[$arrayIndex] = Boolean.valueOf(${field}Set);
+#end
+#end
+        return values; 
+    }
+
+    public void restoreState(FacesContext facesContext, Object state)
+    {
+        Object[] values = (Object[])state;
+        super.restoreState(facesContext,values[0]);
+#set ($arrayIndex = 0)
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $property.className)
+#set ($arrayIndex = $arrayIndex + 1)
+#if ( $property.isStateHolder() )
+#if ($property.jspName == "validator" &amp;&amp; $property.isMethodBinding() )
+        ${field}List = (List&lt;Validator&gt;) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isList($type))
+        $field = (List) restoreAttachedState(facesContext,values[$arrayIndex]);
+#else
+        $field = $utils.castIfNecessary($type) restoreAttachedState(facesContext,values[$arrayIndex]); 
+#end
+#elseif ($utils.isConverter($type)) 
+        $field = (Converter) restoreAttachedState(facesContext,values[$arrayIndex]);
+#elseif ($utils.isPrimitiveClass($type))
+        $field = ($utils.castIfNecessary($type) values[$arrayIndex]).${type}Value();
+#else
+        $field = $utils.castIfNecessary($type) values[$arrayIndex];
+#end
+#if($utils.isPrimitiveClass($type) &amp;&amp; !$property.isTagExcluded()
+    &amp;&amp; !$property.isLiteralOnly() )
+#set ($arrayIndex = $arrayIndex + 1)
+        ${field}Set = ((Boolean) values[$arrayIndex]).booleanValue();
+#end
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/facelets-taglib.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/facelets-taglib.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/facelets-taglib.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/facelets-taglib.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,95 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;!DOCTYPE facelet-taglib
+  PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/facelet-taglib_1_0.dtd"&gt;
+&lt;facelet-taglib xmlns="http://java.sun.com/JSF/Facelet"&gt;
+
+    &lt;namespace&gt;$uri&lt;/namespace&gt;
+
+    &lt;!-- Component Tags --&gt;
+#set ($componentList = ${model.getComponents()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if (!$component.isConfigExcluded())
+    &lt;tag&gt;
+        &lt;tag-name&gt;$utils.getTagName($component.name)&lt;/tag-name&gt;
+        &lt;component&gt;
+            &lt;component-type&gt;$component.type&lt;/component-type&gt;
+#if ($component.rendererType)
+#if (!($component.rendererType == ""))
+            &lt;renderer-type&gt;$component.rendererType&lt;/renderer-type&gt;
+#end
+#end
+#if ($component.tagHandler)
+            &lt;handler-class&gt;$component.tagHandler&lt;/handler-class&gt;
+#end
+        &lt;/component&gt;
+    &lt;/tag&gt;
+#end
+#end
+#end
+
+   &lt;!-- Converter tags --&gt;
+#set ($componentList = ${model.getConverters()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($component.converterId) 
+    &lt;tag&gt;
+        &lt;tag-name&gt;$utils.getTagName($component.name)&lt;/tag-name&gt;
+        &lt;converter&gt;
+            &lt;converter-id&gt;$component.converterId&lt;/converter-id&gt;
+        &lt;/converter&gt;
+    &lt;/tag&gt;
+#end
+#end
+#end
+
+   &lt;!-- Validator tags --&gt;
+#set ($componentList = ${model.getValidators()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($component.validatorId)
+    &lt;tag&gt;
+        &lt;tag-name&gt;$utils.getTagName($component.name)&lt;/tag-name&gt;
+        &lt;validator&gt;
+            &lt;validator-id&gt;$component.validatorId&lt;/validator-id&gt;
+        &lt;/validator&gt;      
+    &lt;/tag&gt;
+#end
+#end
+#end
+    
+   &lt;!-- Single Tags --&gt;
+#set ($tagList = $model.getTags())
+#foreach( $tag in $tagList )
+#if ($modelIds.contains($tag.modelId))
+#if ($tag.tagHandler)
+   &lt;tag&gt;
+      &lt;tag-name&gt;$utils.getTagName($tag.name)&lt;/tag-name&gt;
+      &lt;handler-class&gt;$tag.tagHandler&lt;/handler-class&gt;
+   &lt;/tag&gt;
+#end
+#end
+#end
+
+&lt;/facelet-taglib&gt;
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/faces-config12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/faces-config12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/faces-config12.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/faces-config12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,77 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+
+&lt;!--
+ * 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.
+--&gt;
+
+&lt;faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" 
+              version="1.2"&gt;
+
+$baseContent
+
+#set ($componentList = ${model.getComponents()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; !($component.className.contains("UIComponent"))
+    &amp;&amp; !($component.isConfigExcluded()))
+  &lt;component&gt;
+    &lt;component-type&gt;$component.type&lt;/component-type&gt;
+    &lt;component-class&gt;$component.className&lt;/component-class&gt;
+  &lt;/component&gt;    
+#end
+#end
+#set ($converterList = ${model.getConverters()})
+#foreach( $converter in $converterList )
+#if ($modelIds.contains($converter.modelId))
+  &lt;converter&gt;
+    &lt;converter-id&gt;$converter.converterId&lt;/converter-id&gt;
+    &lt;converter-class&gt;$converter.className&lt;/converter-class&gt;
+  &lt;/converter&gt;
+#end
+#end
+#set ($validatorList = ${model.getValidators()})
+#foreach( $validator in $validatorList )
+#if ($modelIds.contains($validator.modelId) &amp;&amp;
+    !($validator.isConfigExcluded().booleanValue()) &amp;&amp;
+    $validator.validatorId)
+  &lt;validator&gt;
+    &lt;validator-id&gt;$validator.validatorId&lt;/validator-id&gt;
+    &lt;validator-class&gt;$validator.className&lt;/validator-class&gt;
+  &lt;/validator&gt;
+#end
+#end
+#set ($renderKitList = ${model.getRenderKits()})
+#foreach( $renderKit in $renderKitList )
+  &lt;render-kit&gt;
+    &lt;render-kit-id&gt;$renderKit.renderKitId&lt;/render-kit-id&gt;
+#if ($renderKit.className)
+    &lt;render-kit-class&gt;$renderKit.className&lt;/render-kit-class&gt;
+#end
+#set ($rendererList = ${renderKit.getRenderers()})
+#foreach( $renderer in $rendererList )
+      &lt;renderer&gt;
+        &lt;component-family&gt;$renderer.componentFamily&lt;/component-family&gt;
+        &lt;renderer-type&gt;$renderer.rendererType&lt;/renderer-type&gt;
+        &lt;renderer-class&gt;$renderer.className&lt;/renderer-class&gt;
+      &lt;/renderer&gt;
+#end
+  &lt;/render-kit&gt;
+#end
+&lt;/faces-config&gt;

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/dojo-LICENSE.TXT
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/dojo-LICENSE.TXT?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/dojo-LICENSE.TXT (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/dojo-LICENSE.TXT Wed Dec  9 00:44:27 2009
@@ -0,0 +1,195 @@
+Dojo is availble under *either* the terms of the modified BSD license *or* the
+Academic Free License version 2.1. As a recipient of Dojo, you may choose which
+license to receive this code under (except as noted in per-module LICENSE
+files). Some modules may not be the copyright of the Dojo Foundation. These
+modules contain explicit declarations of copyright in both the LICENSE files in
+the directories in which they reside and in the code itself. No external
+contributions are allowed under licenses which are fundamentally incompatible
+with the AFL or BSD licenses that Dojo is distributed under.
+
+The text of the AFL and BSD licenses is reproduced below. 
+
+-------------------------------------------------------------------------------
+The "New" BSD License:
+**********************
+
+Copyright (c) 2005, The Dojo Foundation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice, this
+	list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice,
+	this list of conditions and the following disclaimer in the documentation
+	and/or other materials provided with the distribution.
+  * Neither the name of the Dojo Foundation nor the names of its contributors
+	may be used to endorse or promote products derived from this software
+	without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------------------
+The Academic Free License, v. 2.1:
+**********************************
+
+This Academic Free License (the "License") applies to any original work of
+authorship (the "Original Work") whose owner (the "Licensor") has placed the
+following notice immediately following the copyright notice for the Original
+Work:
+
+Licensed under the Academic Free License version 2.1
+
+1) Grant of Copyright License. Licensor hereby grants You a world-wide,
+royalty-free, non-exclusive, perpetual, sublicenseable license to do the
+following:
+
+a) to reproduce the Original Work in copies;
+
+b) to prepare derivative works ("Derivative Works") based upon the Original
+Work;
+
+c) to distribute copies of the Original Work and Derivative Works to the
+public;
+
+d) to perform the Original Work publicly; and
+
+e) to display the Original Work publicly.
+
+2) Grant of Patent License. Licensor hereby grants You a world-wide,
+royalty-free, non-exclusive, perpetual, sublicenseable license, under patent
+claims owned or controlled by the Licensor that are embodied in the Original
+Work as furnished by the Licensor, to make, use, sell and offer for sale the
+Original Work and Derivative Works.
+
+3) Grant of Source Code License. The term "Source Code" means the preferred
+form of the Original Work for making modifications to it and all available
+documentation describing how to modify the Original Work. Licensor hereby
+agrees to provide a machine-readable copy of the Source Code of the Original
+Work along with each copy of the Original Work that Licensor distributes.
+Licensor reserves the right to satisfy this obligation by placing a
+machine-readable copy of the Source Code in an information repository
+reasonably calculated to permit inexpensive and convenient access by You for as
+long as Licensor continues to distribute the Original Work, and by publishing
+the address of that information repository in a notice immediately following
+the copyright notice that applies to the Original Work.
+
+4) Exclusions From License Grant. Neither the names of Licensor, nor the names
+of any contributors to the Original Work, nor any of their trademarks or
+service marks, may be used to endorse or promote products derived from this
+Original Work without express prior written permission of the Licensor. Nothing
+in this License shall be deemed to grant any rights to trademarks, copyrights,
+patents, trade secrets or any other intellectual property of Licensor except as
+expressly stated herein. No patent license is granted to make, use, sell or
+offer to sell embodiments of any patent claims other than the licensed claims
+defined in Section 2. No right is granted to the trademarks of Licensor even if
+such marks are included in the Original Work. Nothing in this License shall be
+interpreted to prohibit Licensor from licensing under different terms from this
+License any Original Work that Licensor otherwise would have a right to
+license.
+
+5) This section intentionally omitted.
+
+6) Attribution Rights. You must retain, in the Source Code of any Derivative
+Works that You create, all copyright, patent or trademark notices from the
+Source Code of the Original Work, as well as any notices of licensing and any
+descriptive text identified therein as an "Attribution Notice." You must cause
+the Source Code for any Derivative Works that You create to carry a prominent
+Attribution Notice reasonably calculated to inform recipients that You have
+modified the Original Work.
+
+7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that
+the copyright in and to the Original Work and the patent rights granted herein
+by Licensor are owned by the Licensor or are sublicensed to You under the terms
+of this License with the permission of the contributor(s) of those copyrights
+and patent rights. Except as expressly stated in the immediately proceeding
+sentence, the Original Work is provided under this License on an "AS IS" BASIS
+and WITHOUT WARRANTY, either express or implied, including, without limitation,
+the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU.
+This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No
+license to Original Work is granted hereunder except under this disclaimer.
+
+8) Limitation of Liability. Under no circumstances and under no legal theory,
+whether in tort (including negligence), contract, or otherwise, shall the
+Licensor be liable to any person for any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License
+or the use of the Original Work including, without limitation, damages for loss
+of goodwill, work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses. This limitation of liability shall not
+apply to liability for death or personal injury resulting from Licensor's
+negligence to the extent applicable law prohibits such limitation. Some
+jurisdictions do not allow the exclusion or limitation of incidental or
+consequential damages, so this exclusion and limitation may not apply to You.
+
+9) Acceptance and Termination. If You distribute copies of the Original Work or
+a Derivative Work, You must make a reasonable effort under the circumstances to
+obtain the express assent of recipients to the terms of this License. Nothing
+else but this License (or another written agreement between Licensor and You)
+grants You permission to create Derivative Works based upon the Original Work
+or to exercise any of the rights granted in Section 1 herein, and any attempt
+to do so except under the terms of this License (or another written agreement
+between Licensor and You) is expressly prohibited by U.S. copyright law, the
+equivalent laws of other countries, and by international treaty. Therefore, by
+exercising any of the rights granted to You in Section 1 herein, You indicate
+Your acceptance of this License and all of its terms and conditions.
+
+10) Termination for Patent Action. This License shall terminate automatically
+and You may no longer exercise any of the rights granted to You by this License
+as of the date You commence an action, including a cross-claim or counterclaim,
+against Licensor or any licensee alleging that the Original Work infringes a
+patent. This termination provision shall not apply for an action alleging
+patent infringement by combinations of the Original Work with other software or
+hardware.
+
+11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this
+License may be brought only in the courts of a jurisdiction wherein the
+Licensor resides or in which Licensor conducts its primary business, and under
+the laws of that jurisdiction excluding its conflict-of-law provisions. The
+application of the United Nations Convention on Contracts for the International
+Sale of Goods is expressly excluded. Any use of the Original Work outside the
+scope of this License or after its termination shall be subject to the
+requirements and penalties of the U.S. Copyright Act, 17 U.S.C. ÃÂ§ 101 et
+seq., the equivalent laws of other countries, and international treaty. This
+section shall survive the termination of this License.
+
+12) Attorneys Fees. In any action to enforce the terms of this License or
+seeking damages relating thereto, the prevailing party shall be entitled to
+recover its costs and expenses, including, without limitation, reasonable
+attorneys' fees and costs incurred in connection with such action, including
+any appeal of such action. This section shall survive the termination of this
+License.
+
+13) Miscellaneous. This License represents the complete agreement concerning
+the subject matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent necessary to
+make it enforceable.
+
+14) Definition of "You" in This License. "You" throughout this License, whether
+in upper or lower case, means an individual or a legal entity exercising rights
+under, and complying with all of the terms of, this License. For legal
+entities, "You" includes any entity that controls, is controlled by, or is
+under common control with you. For purposes of this definition, "control" means
+(i) the power, direct or indirect, to cause the direction or management of such
+entity, whether by contract or otherwise, or (ii) ownership of fifty percent
+(50%) or more of the outstanding shares, or (iii) beneficial ownership of such
+entity.
+
+15) Right to Use. You may use the Original Work in all ways not otherwise
+restricted or conditioned by this License or by law, and Licensor promises not
+to interfere with or be responsible for such uses by You.
+
+This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved.
+Permission is hereby granted to copy and distribute this license without
+modification. This license may not be modified without the express written
+permission of its copyright owner.

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/i18n-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,31 @@
+Copyright (c) 2004, Guido Wesdorp
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of i18n.js nor the names of its contributors may
+      be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/jscookmenu-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,19 @@
+JSCookMenu (c) Copyright 2002-2005 by Heng Yuan
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/kupu-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,31 @@
+Copyright (c) 2003-2004, Kupu Contributors
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Kupu nor the names of its contributors may
+      be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/prototype-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,16 @@
+	Copyright (c) 2005 Sam Stephenson
+
+ 	Permission is hereby granted, free of charge, to any person obtaining a copy
+ 	of this software and associated documentation files (the "Software"), to deal
+ 	in the Software without restriction, including without limitation the rights
+ 	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ 	copies of the Software, and to permit persons to whom the Software is
+ 	furnished to do so, subject to the following conditions:
+
+ 	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ 	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ 	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ 	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ 	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ 	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ 	SOFTWARE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/licenses/scriptaculous-LICENSE.txt Wed Dec  9 00:44:27 2009
@@ -0,0 +1,20 @@
+Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagClass12.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,179 @@
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+/*
+ *  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 ${component.tagPackage};
+
+import javax.faces.component.UIComponent;
+import javax.el.ValueExpression;
+import javax.el.MethodExpression;
+import javax.faces.context.FacesContext;
+$utils.importTagClasses12($component)
+
+// Generated from class ${component.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class $utils.getClassFromFullClass($component.tagClass)
+#if (${component.tagSuperclass})
+    extends ${component.tagSuperclass}
+#else
+    extends javax.faces.webapp.UIComponentTag
+#end
+{
+    public $utils.getClassFromFullClass($component.tagClass)()
+    {    
+    }
+    
+    public String getComponentType()
+    {
+#if ($component.type)
+        return "$component.type";
+#else
+        return null;
+#end
+    }
+
+    public String getRendererType()
+    {
+#if ($component.rendererType &amp;&amp; !($component.rendererType == ""))
+        return "$component.rendererType";
+#else
+        return null;
+#end
+    }
+
+#set ($propertyList = ${component.propertyTagList})
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#if ($property.isLiteralOnly() &amp;&amp; $property.className == "boolean")
+#set ($type = "String")
+#end
+    private $type $field;
+    
+#set ($var = $utils.getVariableFromName($property.name))
+    public void $utils.getPrefixedPropertyName("set", $property.jspName)($type $var)
+    {
+        $field = $var;
+    }
+#end
+
+    protected void setProperties(UIComponent component)
+    {
+        if (!(component instanceof $component.className))
+        {
+            throw new IllegalArgumentException("Component "+
+                component.getClass().getName() +" is no $component.className");
+        }
+        
+        $component.className comp = ($component.className) component;
+        
+        super.setProperties(component);
+        
+        FacesContext context = getFacesContext();
+
+#foreach( $property in $propertyList )##            1
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#if ($property.isLiteralOnly() &amp;&amp; $property.className == "boolean")
+#set ($type = "String")
+#end
+#if ($utils.isConverter($property.className))##                   2
+        if ($field != null)
+        {
+            if (!${field}.isLiteralText())
+            {
+                comp.setValueExpression("$property.name", $field);
+            }
+            else
+            {
+                String s = ${field}.getExpressionString();
+                if (s != null)
+                {            
+                    Converter converter = getFacesContext().getApplication().createConverter(s);
+                    comp.setConverter(converter);
+                }
+            }
+        }
+#elseif ($property.isMethodBinding())##                 2
+        if ($field != null)
+        {
+#if ($property.jspName == "actionListener")
+            comp.addActionListener(new MethodExpressionActionListener($field));
+#elseif ($property.jspName == "valueChangeListener")
+            comp.addValueChangeListener(new MethodExpressionValueChangeListener($field));
+#elseif ($property.jspName == "validator")
+            comp.addValidator(new MethodExpressionValidator($field));
+#elseif ($utils.isStringMethodBindingReturnType($property.methodBindingSignature))##3
+            MethodBinding mb;
+            if (isValueReference($field))
+            {
+                mb = context.getApplication().createMethodBinding(
+                    $field, $utils.getSignatureParams($property.methodBindingSignature));            
+            }
+            else
+            {
+                throw new IllegalStateException("Invalid expression " + $field);
+            }
+            comp.${utils.getPrefixedPropertyName("set",$property.name)}(mb);
+#else##                                                 3
+            MethodBinding mb = context.getApplication().createMethodBinding(
+                $field, $utils.getSignatureParams($property.methodBindingSignature));
+            comp.${utils.getPrefixedPropertyName("set",$property.name)}(mb);
+#end##                                                  3
+        }
+#elseif ($property.isMethodExpression())##            2
+        if ($field != null)
+        {
+#if ($property.jspName == "action")
+            comp.setActionExpression($field);
+#elseif ($property.jspName == "actionListener")
+            comp.addActionListener(new MethodExpressionActionListener($field));
+#else
+            comp.${utils.getPrefixedPropertyName("set",$property.name)}($field);
+#end        
+        }        
+#else##                                               2
+        if ($field != null)
+        {
+#if ($property.isLiteralOnly())##                         3
+#if ($utils.isPrimitiveClass($property.className))##               4
+            comp.getAttributes().put("$property.name", ${utils.getBoxedClass($property.className)}.valueOf($field));
+#else##                                                   4
+            comp.getAttributes().put("$property.name", $field);
+#end##                                                    4
+#else##                                                 3
+            comp.setValueExpression("$property.name", $field);
+#end##                                                  3
+        } 
+#end##                                                2
+#end##                                              1
+    }
+
+    public void release()
+    {
+        super.release();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($empty = "null")
+        $field = $empty;
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagConverterClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagConverterClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagConverterClass12.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagConverterClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,171 @@
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+/*
+ *  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 $utils.getPackageFromFullClass($converter.tagClass);
+
+import javax.faces.context.FacesContext;
+import javax.el.ELContext;
+import javax.faces.convert.Converter;
+import javax.el.ValueExpression;
+import javax.faces.webapp.UIComponentTag;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+$utils.importTagClasses($converter)
+
+// Generated from class ${converter.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class $utils.getClassFromFullClass($converter.tagClass)
+#if (${converter.tagSuperclass})
+    extends ${converter.tagSuperclass}
+#else
+    extends org.apache.myfaces.converter.ConverterTag
+#end
+{
+#if ($converter.serialuidtag)
+    private static final long serialVersionUID = ${converter.serialuidtag}; 
+#end  
+
+    public $utils.getClassFromFullClass($converter.tagClass)()
+    {
+        setConverterIdString("$converter.converterId");
+    }
+#set ($propertyList = ${converter.propertyTagList})
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+ 
+    private $type $field;
+    
+#set ($var = $utils.getVariableFromName($property.name))
+    public void $utils.getPrefixedPropertyName("set", $property.jspName)($type $var)
+    {
+        $field = $var;
+    }
+#end
+
+    public void setPageContext(PageContext context) {
+        super.setPageContext(context);
+        setConverterIdString("$converter.converterId");
+    }
+
+    protected Converter createConverter() throws JspException {
+    
+        ELContext elContext = FacesContext.getCurrentInstance().getELContext();            
+        $converter.className converter = ($converter.className)super.createConverter();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#set ($className = $utils.getPrimitiveType($property.className))
+        if ($field != null)
+        {
+            if (${field}.isLiteralText())
+            {
+#if ($utils.isPrimitiveClass($property.className))
+                String ${field}Value = ${field}.getExpressionString();
+                if (${field}Value != null)
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf(${field}Value).${property.className}Value());
+#elseif ($utils.isPrimitiveClass($className))
+                String ${field}Value = ${field}.getExpressionString();
+                if (${field}Value != null)
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf(${field}Value));
+                else
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(null);
+#elseif ($utils.getClassFromFullClass($property.className) == "String")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(${field}.getExpressionString());
+#elseif ($utils.getClassFromFullClass($property.className) == "Object")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(${field}.getExpressionString());
+#elseif ($utils.getClassFromFullClass($property.className) == "Locale")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                    org.apache.myfaces.shared_tomahawk.util.LocaleUtils.converterTagLocaleFromString(${field}.getExpressionString()));
+#elseif ($utils.getClassFromFullClass($property.className) == "Class")
+                try
+                {
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                    org.apache.myfaces.shared_tomahawk.util.ClassUtils.classForName(${field}.getExpressionString()));
+                }
+                catch (ClassNotFoundException e)
+                {
+                    throw new JspException(e);
+                }
+#elseif ($utils.getClassFromFullClass($property.className) == "TimeZone")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                    java.util.TimeZone.getTimeZone(${field}.getExpressionString()));                
+#else
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(($property.className) ${field}.getValue(elContext));
+#end
+            }
+            else
+            {
+#if ($utils.isPrimitiveClass($property.className))
+                Object ${field}Value = ${field}.getValue(elContext);
+                if (${field}Value != null)
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}( ((${utils.getBoxedClass($className)}) ${field}Value ).${property.className}Value());
+#elseif ($utils.isPrimitiveClass($className))
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}( (${utils.getBoxedClass($className)}) ${field}.getValue(elContext) );
+#elseif ($utils.getClassFromFullClass($property.className) == "Locale")
+                Object ${field}Value = ${field}.getValue(elContext);
+                if (${field}Value == null)
+                {
+                    ${field}Value = FacesContext.getCurrentInstance().getViewRoot().getLocale();                
+                }
+                if(!(${field}Value instanceof java.util.Locale))
+                {
+                    ${field}Value = org.apache.myfaces.shared_tomahawk.util.LocaleUtils.converterTagLocaleFromString(${field}.getExpressionString());                    
+                }
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}((java.util.Locale)${field}Value);                
+#elseif ($utils.getClassFromFullClass($property.className) == "TimeZone")
+                Object ${field}Value = ${field}.getValue(elContext);
+                if(${field}Value instanceof java.util.TimeZone)
+                {
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                        (java.util.TimeZone) ${field}Value);
+                }
+                else
+                {
+                    converter.${utils.getPrefixedPropertyName("set",$property.name)}(
+                        java.util.TimeZone.getTimeZone(${field}Value.toString()));
+                }
+#elseif ($utils.getClassFromFullClass($property.className) == "String")
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}( (String) ${field}.getValue(elContext));
+#else
+                converter.${utils.getPrefixedPropertyName("set",$property.name)}(($property.className) ${field}.getValue(elContext));
+#end
+            }
+        }
+#end
+        return converter;
+    }
+
+    public void release()
+    {
+        super.release();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#if($utils.getJspPropertyType12($property) == "boolean")
+#set ($empty = "false")
+#else
+#set ($empty = "null")
+#end
+        $field = $empty;
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagValidatorClass12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagValidatorClass12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagValidatorClass12.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tagValidatorClass12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,162 @@
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+/*
+ *  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 $utils.getPackageFromFullClass($validator.tagClass);
+
+import javax.faces.context.FacesContext;
+import javax.el.ValueExpression;
+import javax.faces.validator.Validator;
+import javax.faces.application.Application;
+import javax.servlet.jsp.JspException;
+$utils.importTagClasses($validator)
+
+// Generated from class ${validator.sourceClassName}.
+//
+// WARNING: This file was automatically generated. Do not edit it directly,
+//          or you will lose your changes.
+public class $utils.getClassFromFullClass($validator.tagClass)
+#if (${validator.tagSuperclass})
+    extends ${validator.tagSuperclass}
+#else
+    extends javax.faces.webapp.ValidatorELTag
+#end
+{
+#if ($validator.serialuidtag)
+    private static final long serialVersionUID = ${validator.serialuidtag}; 
+#end  
+
+    public $utils.getClassFromFullClass($validator.tagClass)()
+    {    
+    }    
+#set ($propertyList = ${validator.propertyTagList})
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+ 
+    private $type $field;
+    
+#set ($var = $utils.getVariableFromName($property.name))
+    public void $utils.getPrefixedPropertyName("set", $property.jspName)($type $var)
+    {
+        $field = $var;
+    }
+#end
+
+    protected Validator createValidator() throws JspException {
+        String validatorId = "$validator.validatorId";
+        Application appl = FacesContext.getCurrentInstance().getApplication();
+        Validator validator = (Validator)appl.createValidator(validatorId);
+        _setProperties(validator);
+        return validator;
+    }
+    
+    protected void _setProperties(Validator val) throws JspException {
+        super._setProperties(val);    
+        FacesContext facesContext = FacesContext.getCurrentInstance();
+
+        $validator.className validator = ($validator.className) val;
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#set ($type = $utils.getJspPropertyType12($property))
+#set ($className = $utils.getPrimitiveType($property.className))
+        if ($field != null)
+        {
+#if ($property.isLiteralOnly())
+#if ($utils.isPrimitiveClass($property.className))
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf($field).${property.className}Value());
+#elseif ($utils.isPrimitiveClass($className))
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}(${utils.getBoxedClass($className)}.valueOf($field));
+#else
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}($field);
+#end
+#else        
+            if (!${field}.isLiteralText())
+            {
+                validator.setValueExpression("$property.name", $field);
+            }
+            else
+            {
+#if ($utils.isPrimitiveClass($property.className))
+                Object ${field}Value = ${field}.getValue(facesContext.getELContext());
+                if (${field}Value != null){
+                    if (${field}Value instanceof ${utils.getBoxedClass($className)}){
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ((${utils.getBoxedClass($className)})${field}Value).${property.className}Value());                        
+                    }
+                    else
+                    {
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ${utils.getBoxedClass($className)}.valueOf(${field}Value.toString()).${property.className}Value());
+                    }                    
+                }
+#elseif ($utils.isPrimitiveClass($className))
+                Object ${field}Value = ${field}.getValue(facesContext.getELContext());
+                if (${field}Value != null){
+                    if (${field}Value instanceof ${utils.getBoxedClass($className)}){
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ((${utils.getBoxedClass($className)})${field}Value));                        
+                    }
+                    else
+                    {
+                        validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                            ${utils.getBoxedClass($className)}.valueOf(${field}Value.toString()));
+                    }                    
+                }
+#elseif ($utils.getClassFromFullClass($property.className) == "String")
+                Object ${field}Value = ${field}.getValue(facesContext.getELContext());
+                if (${field}Value != null)
+                {
+                    validator.${utils.getPrefixedPropertyName("set",$property.name)}(
+                        ($property.className)  ${field}Value.toString());                
+                }
+#elseif ($property.className == "java.lang.String[]")
+                try
+                {
+                    String[] value = org.apache.myfaces.commons.util.TagUtils.getStringArray(${field}.getValue(facesContext.getELContext()));
+                    validator.${utils.getPrefixedPropertyName("set",$property.name)}(value);
+                }
+                catch (java.text.ParseException pe)
+                {
+                  throw new JspException(
+                    pe.getMessage() + ": " + "Position " + pe.getErrorOffset());
+                }
+#else
+                validator.${utils.getPrefixedPropertyName("set",$property.name)}(($property.className)  ${field}.getValue(facesContext.getELContext()));
+#end
+            }
+#end
+        }
+#end
+    }
+
+    public void release()
+    {
+        super.release();
+#foreach( $property in $propertyList )
+#set ($field = $property.fieldName)
+#if($utils.getJspPropertyType12($property) == "boolean")
+#set ($empty = "false")
+#else
+#set ($empty = "null")
+#end
+        $field = $empty;
+#end
+    }
+}

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tomahawk12.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tomahawk12.vm?rev=888664&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tomahawk12.vm (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/tomahawk12.vm Wed Dec  9 00:44:27 2009
@@ -0,0 +1,229 @@
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;taglib xmlns="http://java.sun.com/xml/ns/javaee" 
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 
+        version="2.1"&gt;
+  &lt;tlib-version&gt;1.1.7&lt;/tlib-version&gt;
+   &lt;short-name&gt;$shortname&lt;/short-name&gt;
+   &lt;uri&gt;$uri&lt;/uri&gt;
+   &lt;display-name&gt;$displayname&lt;/display-name&gt;
+   &lt;description&gt;$description&lt;/description&gt;
+
+$baseContent
+
+    &lt;!-- Component Tags --&gt;
+#set ($componentList = ${model.getComponents()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($utils.getTagPrefix($component.name) == $shortname) 
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($component.name)&lt;/name&gt;
+      &lt;tag-class&gt;$component.tagClass&lt;/tag-class&gt;
+#if ($component.bodyContent)
+      &lt;body-content&gt;$component.bodyContent&lt;/body-content&gt;
+#else
+      &lt;body-content&gt;JSP&lt;/body-content&gt;
+#end
+      &lt;description&gt;&lt;![CDATA[$component.longDescription]]&gt;&lt;/description&gt;
+      
+#set ($propertyList = ${component.propertyList})
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+      &lt;attribute&gt;
+         &lt;name&gt;$property.jspName&lt;/name&gt;
+#if ($property.isRequired())
+         &lt;required&gt;$property.isRequired()&lt;/required&gt;
+#end
+#if ($property.isMethodExpression() || $property.isMethodBinding())
+#if ($property.getMethodBindingSignature())
+        &lt;deferred-method&gt;
+#set ($sig = $property.getMethodBindingSignature())
+            &lt;method-signature&gt;$sig.returnType myMethod( $sig.parameterTypesAsString )&lt;/method-signature&gt;
+
+        &lt;/deferred-method&gt;
+#else
+## This is a very special case. If a property is MethodBinding or MethodExpression
+## this should have a signature. If not, for allow multiple MethodBinding
+## simulate a ValueExpression and write a custom code like in 
+## org.apache.myfaces.custom.suggestajax.AbstractSuggestAjaxTag
+         &lt;deferred-value/&gt;
+#end
+#elseif ($property.isLiteralOnly())
+         &lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
+#else
+#if ( "$!property.isRtexprvalue()" == "")
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if ($type == "String")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;deferred-value&gt;
+             &lt;type&gt;$property.className&lt;/type&gt;
+         &lt;/deferred-value&gt;
+#end
+#else
+         &lt;rtexprvalue&gt;$property.isRtexprvalue().booleanValue()&lt;/rtexprvalue&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+#end
+   &lt;/tag&gt;
+#end
+#end
+#end
+   &lt;!-- Converter tags --&gt;
+#set ($componentList = ${model.getConverters()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($utils.getTagPrefix($component.name) == $shortname) 
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($component.name)&lt;/name&gt;
+      &lt;tag-class&gt;$component.tagClass&lt;/tag-class&gt;
+#if ($component.bodyContent)
+      &lt;body-content&gt;$component.bodyContent&lt;/body-content&gt;
+#else
+      &lt;body-content&gt;empty&lt;/body-content&gt;
+#end
+      &lt;description&gt;&lt;![CDATA[$component.longDescription]]&gt;&lt;/description&gt;
+      
+#set ($propertyList = ${component.propertyList})
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+      &lt;attribute&gt;
+         &lt;name&gt;$property.name&lt;/name&gt;
+#if ($property.isRequired())
+         &lt;required&gt;$property.isRequired()&lt;/required&gt;
+#end
+#if ($property.isLiteralOnly())
+         &lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
+#else
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if ($type == "String")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;deferred-value&gt;
+             &lt;type&gt;$property.className&lt;/type&gt;
+         &lt;/deferred-value&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+#end
+   &lt;/tag&gt;
+#end
+#end
+#end
+   &lt;!-- Validator tags --&gt;
+#set ($componentList = ${model.getValidators()})
+#foreach( $component in $componentList )
+#if ($modelIds.contains($component.modelId) 
+    &amp;&amp; ($component.name))
+#if ($utils.getTagPrefix($component.name) == $shortname) 
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($component.name)&lt;/name&gt;
+      &lt;tag-class&gt;$component.tagClass&lt;/tag-class&gt;
+#if ($component.bodyContent)
+      &lt;body-content&gt;$component.bodyContent&lt;/body-content&gt;
+#else
+      &lt;body-content&gt;empty&lt;/body-content&gt;
+#end
+      &lt;description&gt;&lt;![CDATA[$component.longDescription]]&gt;&lt;/description&gt;
+      
+#set ($propertyList = ${component.propertyList})
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+      &lt;attribute&gt;
+         &lt;name&gt;$property.name&lt;/name&gt;
+#if ($property.isRequired())
+         &lt;required&gt;$property.isRequired()&lt;/required&gt;
+#end
+#if ($property.isLiteralOnly())
+         &lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
+#else
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if ($type == "String")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;deferred-value&gt;
+             &lt;type&gt;$property.className&lt;/type&gt;
+         &lt;/deferred-value&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+#end
+   &lt;/tag&gt;
+#end
+#end
+#end
+   &lt;!-- Single Tags --&gt;
+#set ($tagList = $model.getTags())
+#foreach( $tag in $tagList )
+#if ($modelIds.contains($tag.modelId))
+   &lt;tag&gt;
+      &lt;name&gt;$utils.getTagName($tag.name)&lt;/name&gt;
+      &lt;tag-class&gt;$tag.className&lt;/tag-class&gt;
+      &lt;body-content&gt;$tag.bodyContent&lt;/body-content&gt;
+      &lt;description&gt;&lt;![CDATA[$tag.longDescription]]&gt;&lt;/description&gt;
+#set ($attributeList = ${tag.attributeList})
+#foreach( $attribute in $attributeList )
+      &lt;attribute&gt;
+         &lt;name&gt;$attribute.name&lt;/name&gt;
+         &lt;required&gt;$attribute.isRequired()&lt;/required&gt;
+#set ($type = $utils.getClassFromFullClass($attribute.className))
+#if ($type == "ValueExpression")
+         &lt;deferred-value&gt;&lt;/deferred-value&gt;
+#else
+         &lt;rtexprvalue&gt;$attribute.isRtexprvalue()&lt;/rtexprvalue&gt;
+#if ($attribute.className)         
+         &lt;type&gt;$attribute.className&lt;/type&gt;
+#else
+         &lt;type&gt;java.lang.String&lt;/type&gt;
+#end
+#end
+#if ($property.longDescription)
+         &lt;description&gt;&lt;![CDATA[$property.longDescription]]&gt;&lt;/description&gt;
+#else
+         &lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;
+#end
+      &lt;/attribute&gt;
+#end
+   &lt;/tag&gt;
+#end
+#end
+&lt;/taglib&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888659 - /myfaces/tomahawk/trunk/sandbox/core/src/main/resources/META-INF/componentClass11.vm</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209002705.4CE6123889D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209002705-4CE6123889D1@eris-apache-org%3e</id>
<updated>2009-12-09T00:27:05Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Wed Dec  9 00:27:04 2009
New Revision: 888659

URL: http://svn.apache.org/viewvc?rev=888659&amp;view=rev
Log:
TOMAHAWK-1358 getTableIndex: Integer to String (ClassCastException)

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/resources/META-INF/componentClass11.vm

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/resources/META-INF/componentClass11.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/resources/META-INF/componentClass11.vm?rev=888659&amp;r1=888658&amp;r2=888659&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/resources/META-INF/componentClass11.vm (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/resources/META-INF/componentClass11.vm Wed
Dec  9 00:27:04 2009
@@ -168,7 +168,15 @@
 ## MYFACES-2006 use toString(), so Numeric ValueBinding could be converted as
 ## Strings and do not cause ClassCastException 
 ## (only applies for JSF 1.1 due to backward compatibility) 
-            return $utils.castIfNecessary($type) vb.getValue(getFacesContext()).toString();
+            Object value = vb.getValue(getFacesContext());
+            if (value == null)
+            {
+                return null;
+            }
+            else
+            {
+                return $utils.castIfNecessary($type) value.toString();
+            }
 #else
             return $utils.castIfNecessary($type) vb.getValue(getFacesContext());
 #end




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888658 - /myfaces/tomahawk/trunk/core/src/main/resources/META-INF/componentClass11.vm</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209002634.3E31023889D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209002634-3E31023889D1@eris-apache-org%3e</id>
<updated>2009-12-09T00:26:34Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Wed Dec  9 00:26:33 2009
New Revision: 888658

URL: http://svn.apache.org/viewvc?rev=888658&amp;view=rev
Log:
TOMAHAWK-1358 getTableIndex: Integer to String (ClassCastException)

Modified:
    myfaces/tomahawk/trunk/core/src/main/resources/META-INF/componentClass11.vm

Modified: myfaces/tomahawk/trunk/core/src/main/resources/META-INF/componentClass11.vm
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/resources/META-INF/componentClass11.vm?rev=888658&amp;r1=888657&amp;r2=888658&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/resources/META-INF/componentClass11.vm (original)
+++ myfaces/tomahawk/trunk/core/src/main/resources/META-INF/componentClass11.vm Wed Dec  9
00:26:33 2009
@@ -168,7 +168,15 @@
 ## MYFACES-2006 use toString(), so Numeric ValueBinding could be converted as
 ## Strings and do not cause ClassCastException 
 ## (only applies for JSF 1.1 due to backward compatibility) 
-            return $utils.castIfNecessary($type) vb.getValue(getFacesContext()).toString();
+            Object value = vb.getValue(getFacesContext());
+            if (value == null)
+            {
+                return null;
+            }
+            else
+            {
+                return $utils.castIfNecessary($type) value.toString();
+            }
 #else
             return $utils.castIfNecessary($type) vb.getValue(getFacesContext());
 #end




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888657 - /myfaces/core/branches/1.1.x/api/src/main/resources/META-INF/componentClass11.vm</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209002538.1F41323889D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209002538-1F41323889D1@eris-apache-org%3e</id>
<updated>2009-12-09T00:25:38Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Wed Dec  9 00:25:37 2009
New Revision: 888657

URL: http://svn.apache.org/viewvc?rev=888657&amp;view=rev
Log:
MYFACES-2006 getTableIndex: Integer to String (ClassCastException)

Modified:
    myfaces/core/branches/1.1.x/api/src/main/resources/META-INF/componentClass11.vm

Modified: myfaces/core/branches/1.1.x/api/src/main/resources/META-INF/componentClass11.vm
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.1.x/api/src/main/resources/META-INF/componentClass11.vm?rev=888657&amp;r1=888656&amp;r2=888657&amp;view=diff
==============================================================================
--- myfaces/core/branches/1.1.x/api/src/main/resources/META-INF/componentClass11.vm (original)
+++ myfaces/core/branches/1.1.x/api/src/main/resources/META-INF/componentClass11.vm Wed Dec
 9 00:25:37 2009
@@ -154,7 +154,15 @@
 ## MYFACES-2006 use toString(), so Numeric ValueBinding could be converted as
 ## Strings and do not cause ClassCastException 
 ## (only applies for JSF 1.1 due to backward compatibility) 
-            return $utils.castIfNecessary($type) vb.getValue(getFacesContext()).toString();
+            Object value = vb.getValue(getFacesContext());
+            if (value == null)
+            {
+                return null;
+            }
+            else
+            {
+                return $utils.castIfNecessary($type) value.toString();
+            }
 #else
             return $utils.castIfNecessary($type) vb.getValue(getFacesContext());
 #end




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888650 - in /myfaces/extensions/scripting/trunk: core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/ core/core/src/main/java/org/apache/myfaces/...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209000540.2C8F1238898A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209000540-2C8F1238898A@eris-apache-org%3e</id>
<updated>2009-12-09T00:05:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Wed Dec  9 00:05:39 2009
New Revision: 888650

URL: http://svn.apache.org/viewvc?rev=888650&amp;view=rev
Log:
annotation moving now working again
but still we have too many classloader inits but lets leave it for now

Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
Wed Dec  9 00:05:39 2009
@@ -95,6 +95,7 @@
         if (!(oldClassLoader instanceof RecompiledClassLoader)) {
             try {
                 RecompiledClassLoader classLoader = (RecompiledClassLoader) fileManager.getClassLoader(null);
+                classLoader.setSourceRoot(sourceRoot);
                 Thread.currentThread().setContextClassLoader(classLoader);
 
                 ClassUtils.markAsDynamicJava(fileManager.getTempDir().getAbsolutePath(),
className);

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
Wed Dec  9 00:05:39 2009
@@ -38,6 +38,7 @@
     static double _tempMarker = Math.random();
     int _scriptingEngine;
 
+    String sourceRoot;
 
     public RecompiledClassLoader(ClassLoader classLoader, int scriptingEngine) {
         super(classLoader);
@@ -122,8 +123,11 @@
         retVal = super.defineClass(className, fileContent, 0, fileLength);
         ReloadingMetadata reloadingMetaData = new ReloadingMetadata();
         reloadingMetaData.setAClass(retVal);
+        //find the source for the given class and then
+        //store the filename
+        String fileName = className.replaceAll("\\.", File.separator)+".java";
 
-        reloadingMetaData.setFileName(target.getAbsolutePath());
+        reloadingMetaData.setFileName(sourceRoot+File.separator+fileName);
         reloadingMetaData.setSourcePath("");
         reloadingMetaData.setTimestamp(target.lastModified());
         reloadingMetaData.setTainted(false);
@@ -151,4 +155,12 @@
     public void setTempDir(File tempDir) {
         this.tempDir = tempDir;
     }
+
+    public String getSourceRoot() {
+        return sourceRoot;
+    }
+
+    public void setSourceRoot(String sourceRoot) {
+        this.sourceRoot = sourceRoot;
+    }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
Wed Dec  9 00:05:39 2009
@@ -89,6 +89,7 @@
                 if (!(oldClassLoader instanceof RecompiledClassLoader)) {
                     try {
                         RecompiledClassLoader classLoader = (RecompiledClassLoader) fileManager.getClassLoader();
+                        classLoader.setSourceRoot(sourceRoot);
                         Thread.currentThread().setContextClassLoader(classLoader);
 
                         ClassUtils.markAsDynamicJava(fileManager.getTempDir().getAbsolutePath(),
className);

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
Wed Dec  9 00:05:39 2009
@@ -63,10 +63,7 @@
 
 
     public String addEntry2 () {
-
-
-
-        getLog().info("adding entryxxx");
+        getLog().info("xxxadding entry");
 
         BlogService service = (BlogService) JSFUtil.resolveVariable("javaBlogService");
 
@@ -99,13 +96,14 @@
             * 
             */
             //service.addEntry(entry);
-            executeMethod(service, "addEntry",  entry);
+            //executeMethod(service, "addEntry",  entry);
+            service.addEntry(entry);
         }
 
-        throw new javax.faces.FacesException("bla bla bla");
+      
         
         //we stay on the same page
- //       return null;
+        return null;
     }
 
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
Wed Dec  9 00:05:39 2009
@@ -31,6 +31,7 @@
 public class BlogService {
 
 
+
     /**
      * note we cannot cast on dynamically referenced
      * and recompiled objects which are shared between beans
@@ -53,7 +54,6 @@
 
 
 
-
     public List&lt;Object&gt; getBlogEntries() {
         return blogEntries;
     }

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
Wed Dec  9 00:05:39 2009
@@ -42,13 +42,12 @@
  * the annotation is dynamic you can change it on the fly or move it from one
  * class to the other
  */
-@FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
-    
-public class JavaTestRenderer1 extends HtmlTextRendererBase {
+ @FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
+ public class JavaTestRenderer1 extends HtmlTextRendererBase {
 
     static Log log = LogFactory.getLog(JavaTestRenderer1.class);
 
-    private static final String MSG2 = "Hello world from Renderer 1 &lt;br /&gt;  ";
+    private static final String MSG2 = "Hello world from Renderer 1 aaa ";
 
     @Override
     public void encodeBegin(FacesContext context, UIComponent component) throws IOException
{

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
Wed Dec  9 00:05:39 2009
@@ -32,10 +32,9 @@
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-
 public class JavaTestRenderer2 extends HtmlTextareaRendererBase {
 
-    private static final String MSG = "Hello world from Renderer 2 sasdfasd ";
+    private static final String MSG = "Hello world from Renderer 2  ";
 
     @Override
     public void encodeBegin(FacesContext context, UIComponent component) throws IOException
{

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
Wed Dec  9 00:05:39 2009
@@ -40,7 +40,7 @@
     }
     
     public String getResource() throws java.io.IOException {
-           ResourceHandler handler = FacesContext.getCurrentInstance().getApplication().getResourceHandler();
+         /*  ResourceHandler handler = FacesContext.getCurrentInstance().getApplication().getResourceHandler();
            Resource resource = handler.createResource("testResource");
            InputStream istr = resource.getInputStream();
            BufferedReader rdr = new BufferedReader(new InputStreamReader(istr));
@@ -53,7 +53,8 @@
            } catch (IOException ex) {
 
            };
-           return strBuf.toString();
+           return strBuf.toString(); */
+           return "hello world";
        }
     
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java?rev=888650&amp;r1=888649&amp;r2=888650&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
Wed Dec  9 00:05:39 2009
@@ -18,12 +18,12 @@
 @ManagedBean(name = "javatestbean")
 @SessionScoped
 public class TestBean3 {
-    String sayHello = "hello worldgggg";
+    String sayHello = "hello world";
     String hello2 = "hello from added attribute";
     String hello3 = "hello from  added attribute 2";
 
     public String getSayHello() {
-        return "Java dynamic  bean Testbean3 - " + TestClass2.hello2 + hello3;
+        return "Java dynamic bean Testbean3 - " + TestClass2.hello2 + hello3;
     }
 
     public String getSayHello2() {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888647 - in /myfaces/extensions/scripting/trunk: core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core/core/src/main/java/org/apache/myfaces/scripting/api/ core/myfaces2-extensions/src/main/java/org/apache/my...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209000230.9AEA8238898A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209000230-9AEA8238898A@eris-apache-org%3e</id>
<updated>2009-12-09T00:02:30Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Wed Dec  9 00:02:29 2009
New Revision: 888647

URL: http://svn.apache.org/viewvc?rev=888647&amp;view=rev
Log:
annotations fixed again but with a rather hackish solution, we have to walk our annotation
handling again to avoid the constant classloader recreation, it is pointless

Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java?rev=888647&amp;r1=888646&amp;r2=888647&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
Wed Dec  9 00:02:29 2009
@@ -89,7 +89,7 @@
      * we do not do a single compile step anymore
      */
     public Class compileFile(String sourceRoot, String classPath, String relativeFileName)
throws ClassNotFoundException {
-
+        fileManager.refreshClassloader();
         String className = ClassUtils.relativeFileToClassName(relativeFileName);
         ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
         if (!(oldClassLoader instanceof RecompiledClassLoader)) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=888647&amp;r1=888646&amp;r2=888647&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
Wed Dec  9 00:02:29 2009
@@ -282,7 +282,9 @@
                     //exceptions
                     getLog().info("Tainting ");
                     ReloadingMetadata metaData = FileChangedDaemon.getInstance().getClassMap().get(managedBeanClass.getName());
-                    metaData.setTainted(true);
+                    if(metaData != null) {
+                        metaData.setTainted(true);
+                    }    
                 }
 
             }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java?rev=888647&amp;r1=888646&amp;r2=888647&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
Wed Dec  9 00:02:29 2009
@@ -57,6 +57,7 @@
         Object newRetVal = null;
 
         if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
+           
             newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
/*once it was tainted or loaded by
                  our classloader we have to recreate all the time to avoid classloader issues*/
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java?rev=888647&amp;r1=888646&amp;r2=888647&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
Wed Dec  9 00:02:29 2009
@@ -66,9 +66,9 @@
 
 
 
-        getLog().info("adding entry");
+        getLog().info("adding entryxxx");
 
-        Object service = JSFUtil.resolveVariable("javaBlogService");
+        BlogService service = (BlogService) JSFUtil.resolveVariable("javaBlogService");
 
 
         

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java?rev=888647&amp;r1=888646&amp;r2=888647&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
Wed Dec  9 00:02:29 2009
@@ -14,12 +14,15 @@
 
 
 public class TestBean2 {
+
+
+
     String sayHello = "hello worldgggg";
     String hello2 = "hello from added attribute";
     String hello3 = "hello from  added attribute 2";
  
     public String getSayHello() {
-        return "Java dynamic  bean - "+TestClass2.hello2 + hello3;
+        return "aaa Java dynamic  bean - "+TestClass2.hello2 + hello3;
     }
 
     public String getSayHello2() {

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java?rev=888647&amp;r1=888646&amp;r2=888647&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
Wed Dec  9 00:02:29 2009
@@ -23,7 +23,7 @@
     String hello3 = "hello from  added attribute 2";
 
     public String getSayHello() {
-        return "Java dynamic  bean Testbean3  - " + TestClass2.hello2 + hello3;
+        return "Java dynamic  bean Testbean3 - " + TestClass2.hello2 + hello3;
     }
 
     public String getSayHello2() {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888645 - in /myfaces/extensions/scripting/trunk: core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/ core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ core/core/src/main/java/org/apache/myfaces/scripting/load...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091209000124.1499A238898A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209000124-1499A238898A@eris-apache-org%3e</id>
<updated>2009-12-09T00:01:23Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Wed Dec  9 00:01:22 2009
New Revision: 888645

URL: http://svn.apache.org/viewvc?rev=888645&amp;view=rev
Log:
annotations broken due to the latest changes unfortunately, has to be fixed before the commit

Removed:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyReloadingStrategy.groovy
Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/BaseResourceHandler.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
Wed Dec  9 00:01:22 2009
@@ -25,6 +25,7 @@
 import org.apache.myfaces.scripting.api.BaseWeaver
 import org.apache.myfaces.scripting.loaders.groovy.DynamicClassIdentifier
 import org.apache.myfaces.scripting.api.BaseWeaver
+import org.apache.myfaces.scripting.refresh.FileChangedDaemon
 
 /**
  * Weaver  which does dynamic class reloading
@@ -134,7 +135,6 @@
         //TODO probably not needed because the groovy classloader takes care of everything
itself
         //the tainting does the rest but we have to check it for the annotations
 
-
         FileChangedDaemon.getInstance().getSystemRecompileMap().put(getScriptingEngine(),
Boolean.FALSE);
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
Wed Dec  9 00:01:22 2009
@@ -42,7 +42,7 @@
     public GlobalReloadingStrategy(BaseWeaver weaver) {
         _weaver = weaver;
         _beanStrategy = new ManagedBeanReloadingStrategy(weaver);
-        _noMappingStrategy = new NoMappingReloadingStrategy();
+        _noMappingStrategy = new NoMappingReloadingStrategy(weaver);
         _allOthers = new SimpleReloadingStrategy(weaver);
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
Wed Dec  9 00:01:22 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.core.reloading;
 
 import org.apache.myfaces.scripting.api.ReloadingStrategy;
+import org.apache.myfaces.scripting.api.BaseWeaver;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -42,6 +43,11 @@
  * which keep delegates, like the NavHandler
  */
 public class NoMappingReloadingStrategy extends SimpleReloadingStrategy {
+
+    public NoMappingReloadingStrategy(BaseWeaver weaver) {
+        super(weaver);
+    }
+
     @Override
     protected void mapProperties(Object target, Object src) {
         return;

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
Wed Dec  9 00:01:22 2009
@@ -64,6 +64,9 @@
     public Object reload(Object scriptingInstance, int artefactType) {
 
         //reload the class to get new static content if needed
+        if(scriptingInstance == null || _weaver == null) {
+            getLog().debug("debugpoint found");    
+        }
         Class aclass = _weaver.reloadScriptingClass(scriptingInstance.getClass());
         if (aclass.hashCode() == scriptingInstance.getClass().hashCode()) {
             //class of this object has not changed although

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Wed Dec  9 00:01:22 2009
@@ -134,6 +134,9 @@
         Class retVal = null;
 
         try {
+            if(file.contains("JavaTestRenderer1")) {
+                getLog().debug("debugpoint found");
+            }
             //we initialize the compiler lazy
             //because the facade itself is lazy
             if(compiler == null) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
Wed Dec  9 00:01:22 2009
@@ -68,8 +68,8 @@
         Renderer rendr = _delegate.getRenderer(componentFamily, rendererType);
         Renderer rendr2 = (Renderer) reloadInstance(rendr, ScriptingConst.ARTEFACT_TYPE_RENDERER);
         if (rendr != rendr2) {
-            rendr2 = _delegate.getRenderer(componentFamily, rendererType);
-            if (rendr2 instanceof PurgedRenderer) {
+            Renderer tempRenderer = _delegate.getRenderer(componentFamily, rendererType);
+            if (tempRenderer instanceof PurgedRenderer) {
                 return handleAnnotationChange(componentFamily, rendererType);
             }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java
(original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java
Wed Dec  9 00:01:22 2009
@@ -48,6 +48,7 @@
         //startup context listener, so the initial weaver still is activated
         ScriptingWeaver weaver = WeavingContext.getWeaver();
 
+        weaver.fullRecompile();
         //we now do a full source or precompiled annotation scan
         //the entire scripting subsystem should be initialized by now
         weaver.fullAnnotationScan();

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
Wed Dec  9 00:01:22 2009
@@ -50,9 +50,7 @@
     public void addEntry(Object entry) {
         if (entry != null) {
             blogEntries.add(entry);
-            System.out.println("add entry");
         }
-       
     }
 
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/BaseResourceHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/BaseResourceHandler.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/BaseResourceHandler.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/BaseResourceHandler.java
Wed Dec  9 00:01:22 2009
@@ -51,7 +51,7 @@
         return _delegate.getRendererTypeForResourceName(resourceName);
     }
 
-    public void handleResourceRequest(FacesContext context) {
+    public void handleResourceRequest(FacesContext context) throws java.io.IOException {
         _delegate.handleResourceRequest(context);
     }
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
Wed Dec  9 00:01:22 2009
@@ -48,7 +48,7 @@
 
     static Log log = LogFactory.getLog(JavaTestRenderer1.class);
 
-    private static final String MSG2 = "Hello world from Renderer 1 &lt;br /&gt; line 2fgdklsnflkdfhglksgdfh";
+    private static final String MSG2 = "Hello world from Renderer 1 &lt;br /&gt;  ";
 
     @Override
     public void encodeBegin(FacesContext context, UIComponent component) throws IOException
{

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean2.java
Wed Dec  9 00:01:22 2009
@@ -36,7 +36,7 @@
 
     }
     
-    public String getResource() {
+    public String getResource() throws java.io.IOException {
            ResourceHandler handler = FacesContext.getCurrentInstance().getApplication().getResourceHandler();
            Resource resource = handler.createResource("testResource");
            InputStream istr = resource.getInputStream();

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java?rev=888645&amp;r1=888644&amp;r2=888645&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/test/TestBean3.java
Wed Dec  9 00:01:22 2009
@@ -23,7 +23,7 @@
     String hello3 = "hello from  added attribute 2";
 
     public String getSayHello() {
-        return "Java dynamic  bean Testbean3 bla bla bla - " + TestClass2.hello2 + hello3;
+        return "Java dynamic  bean Testbean3  - " + TestClass2.hello2 + hello3;
     }
 
     public String getSayHello2() {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888644 - in /myfaces/extensions/scripting/trunk/core/core/src/main: groovy/org/apache/myfaces/groovyloader/core/ java/org/apache/myfaces/scripting/api/ java/org/apache/myfaces/scripting/loaders/java/</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208235814.0ADDB238889B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208235814-0ADDB238889B@eris-apache-org%3e</id>
<updated>2009-12-08T23:58:13Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:58:13 2009
New Revision: 888644

URL: http://svn.apache.org/viewvc?rev=888644&amp;view=rev
Log:
code cleanup moved some shared code (bean tainting) into the weaver base class
to handle it shared over all scripting engine instances.

Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=888644&amp;r1=888643&amp;r2=888644&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
Tue Dec  8 23:58:13 2009
@@ -56,36 +56,11 @@
         _reloadingStrategy = new GlobalReloadingStrategy(this)
     }
 
-
-
     /**
-     * central algorithm which determines which property values are overwritten and which
are not
+     * central point for the
+     * loading, loads a class from a given sourceroot
+     * and file
      */
-    protected void mapProperties(Object target, Object src) {
-        src.properties.each {property -&gt;
-            //ok here is the algorithm, basic datatypes usually are not copied but read in
anew and then overwritten
-            //later on
-            //all others can be manually overwritten by adding an attribute &lt;attributename&gt;_changed
-
-            try {
-                if (target.properties.containsKey(property.key)
-                    &amp;&amp; !property.key.equals("metaClass")        //the class information
and meta class information cannot be changed
-                    &amp;&amp; !property.key.equals("class")            //otherwise we will
get following error
-                    // java.lang.IllegalArgumentException: object is not an instance of declaring
class
-                    &amp;&amp; !(
-                    target.properties.containsKey(property.key + "_changed") //||
-                    //nothing further needed the phases take care of that
-                    )) {
-                    target.setProperty(property.key, property.value)
-                }
-            } catch (Exception e) {
-
-            }
-        }
-    }
-
-
-
     protected Class loadScriptingClassFromFile(String sourceRoot, String file) {
 
         File currentClassFile = new File(sourceRoot + File.separator + file)
@@ -156,11 +131,11 @@
     }
 
     public void fullRecompile() {
-        //TODO implement this
-    }
+        //TODO probably not needed because the groovy classloader takes care of everything
itself
+        //the tainting does the rest but we have to check it for the annotations
 
-    public void requestRefresh() {
 
+        FileChangedDaemon.getInstance().getSystemRecompileMap().put(getScriptingEngine(),
Boolean.FALSE);
     }
 
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=888644&amp;r1=888643&amp;r2=888644&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
Tue Dec  8 23:58:13 2009
@@ -6,12 +6,15 @@
 import org.apache.myfaces.scripting.refresh.FileChangedDaemon;
 import org.apache.myfaces.scripting.core.reloading.SimpleReloadingStrategy;
 import org.apache.myfaces.scripting.core.reloading.GlobalReloadingStrategy;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.core.util.ReflectUtil;
+import org.apache.myfaces.config.element.ManagedBean;
+import org.apache.myfaces.config.RuntimeConfig;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Map;
+import javax.faces.context.FacesContext;
+import java.util.*;
 import java.io.File;
 
 /**
@@ -228,4 +231,87 @@
 
     public void fullAnnotationScan() {
     }
+
+
+    public void requestRefresh() {
+        if (  //startup or full recompile conditionr reached
+                FileChangedDaemon.getInstance().getSystemRecompileMap().get(getScriptingEngine())
== null ||
+                FileChangedDaemon.getInstance().getSystemRecompileMap().get(getScriptingEngine())
+                ) {
+            fullRecompile();
+            //TODO if managed beans are tainted we have to do a full drop
+
+            refreshManagedBeans();
+        }
+    }
+
+    protected void refreshManagedBeans() {
+        if (FacesContext.getCurrentInstance() == null) {
+            return;//no npe allowed
+        }
+        Set&lt;String&gt; tainted = new HashSet&lt;String&gt;();
+        for (Map.Entry&lt;String, ReloadingMetadata&gt; it : FileChangedDaemon.getInstance().getClassMap().entrySet())
{
+            if (it.getValue().getScriptingEngine() == getScriptingEngine() &amp;&amp; it.getValue().isTainted())
{
+                tainted.add(it.getKey());
+            }
+        }
+        if (tainted.size() &gt; 0) {
+            boolean managedBeanTainted = false;
+            //We now have to check if the tainted classes belong to the managed beans
+            Set&lt;String&gt; managedBeanClasses = new HashSet&lt;String&gt;();
+            Map&lt;String, ManagedBean&gt; mbeans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
+            for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
+                managedBeanClasses.add(entry.getValue().getManagedBeanClassName());
+            }
+            for (String taintedClass : tainted) {
+                if (managedBeanClasses.contains(taintedClass)) {
+                    managedBeanTainted = true;
+                    break;
+                }
+            }
+
+            getLog().info("Tainting all beans to avoid classcast exceptions");
+            if (managedBeanTainted) {
+                for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
+                    Class managedBeanClass = entry.getValue().getManagedBeanClass();
+                    if (WeavingContext.isDynamic(managedBeanClass)) {
+                        //managed bean class found we drop the class from our session
+                        removeBeanReferences(entry.getValue());
+                    }
+                    //one bean tainted we have to taint all dynamic beans otherwise we will
get classcast
+                    //exceptions
+                    getLog().info("Tainting ");
+                    ReloadingMetadata metaData = FileChangedDaemon.getInstance().getClassMap().get(managedBeanClass.getName());
+                    metaData.setTainted(true);
+                }
+
+            }
+        }
+    }
+
+    /**
+     * removes the references from out static scope
+     * for jsf2 we probably have some kind of notification mechanism
+     * which notifies custom scopes
+     *
+     * @param bean
+     */
+    private void removeBeanReferences(ManagedBean bean) {
+        getLog().info("JavaScriptingWeaver.removeBeanReferences(" + bean.getManagedBeanName()
+ ")");
+
+        String scope = bean.getManagedBeanScope();
+
+        if (scope != null &amp;&amp; scope.equalsIgnoreCase("session")) {
+            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(bean.getManagedBeanName());
+        } else if (scope != null &amp;&amp; scope.equalsIgnoreCase("application")) {
+            FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().remove(bean.getManagedBeanName());
+        } else if (scope != null) {
+            Object scopeImpl = FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get(scope);
+            if (scopeImpl == null) return; //scope not implemented
+            //we now have to revert to introspection here because scopes are a pure jsf2
construct
+            //so we use a messaging pattern here to cope with it
+            ReflectUtil.executeMethod(scopeImpl, "remove", bean.getManagedBeanName());
+        }
+    }
+
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888644&amp;r1=888643&amp;r2=888644&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Tue Dec  8 23:58:13 2009
@@ -220,87 +220,8 @@
         markAsFullyRecompiled();
     }
 
-    public void requestRefresh() {
-        if (
-              FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA)
== null ||
-              FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA)
-           ) {
-            fullRecompile();
-            //TODO if managed beans are tainted we have to do a full drop
 
-            refreshManagedBeans();
-        }
-    }
-
-    private void refreshManagedBeans() {
-        if(FacesContext.getCurrentInstance() == null) {
-            return;//no npe allowed    
-        }
-        Set&lt;String&gt; tainted = new HashSet&lt;String&gt;();
-        for (Map.Entry&lt;String, ReloadingMetadata&gt; it : FileChangedDaemon.getInstance().getClassMap().entrySet())
{
-            if (it.getValue().getScriptingEngine() == ScriptingConst.ENGINE_TYPE_JAVA &amp;&amp;
it.getValue().isTainted()) {
-                tainted.add(it.getKey());
-            }
-        }
-        if (tainted.size() &gt; 0) {
-            boolean managedBeanTainted = false;
-            //We now have to check if the tainted classes belong to the managed beans
-            Set&lt;String&gt; managedBeanClasses = new HashSet&lt;String&gt;();
-            Map&lt;String, ManagedBean&gt; mbeans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
-            for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
-                managedBeanClasses.add(entry.getValue().getManagedBeanClassName());
-            }
-            for (String taintedClass : tainted) {
-                if (managedBeanClasses.contains(taintedClass)) {
-                    managedBeanTainted = true;
-                    break;
-                }
-            }
-
-            log.info("Tainting all beans to avoid classcast exceptions");
-            if (managedBeanTainted) {
-                for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
-                    Class managedBeanClass = entry.getValue().getManagedBeanClass();
-                    if (WeavingContext.isDynamic(managedBeanClass)) {
-                        //managed bean class found we drop the class from our session
-                        removeBeanReferences(entry.getValue());
-                    }
-                    //one bean tainted we have to taint all dynamic beans otherwise we will
get classcast
-                    //exceptions
-                    log.info("Tainting ");
-                    ReloadingMetadata metaData = FileChangedDaemon.getInstance().getClassMap().get(managedBeanClass.getName());
-                    metaData.setTainted(true);
-                }
-
-            }
-        }
-    }
-
-    /**
-     * removes the references from out static scope
-     * for jsf2 we probably have some kind of notification mechanism
-     * which notifies custom scopes
-     *
-     * @param bean
-     */
-    private void removeBeanReferences(ManagedBean bean) {
-        getLog().info("JavaScriptingWeaver.removeBeanReferences(" + bean.getManagedBeanName()
+ ")");
-
-        String scope = bean.getManagedBeanScope();
-
-        if (scope != null &amp;&amp; scope.equalsIgnoreCase("session")) {
-            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(bean.getManagedBeanName());
-        } else if (scope != null &amp;&amp; scope.equalsIgnoreCase("application")) {
-            FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().remove(bean.getManagedBeanName());
-        } else if (scope != null) {
-            Object scopeImpl = FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get(scope);
-            if (scopeImpl == null) return; //scope not implemented
-            //we now have to revert to introspection here because scopes are a pure jsf2
construct
-            //so we use a messaging pattern here to cope with it
-            ReflectUtil.executeMethod(scopeImpl, "remove", bean.getManagedBeanName());
-        }
-    }
-    
+   
 
     private void markAsFullyRecompiled() {
         FacesContext context = FacesContext.getCurrentInstance();




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888643 - in /myfaces/extensions/scripting/trunk: core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/ core/core/src/main/java/org/apache/myfaces/...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208235715.BA75723889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208235715-BA75723889BB@eris-apache-org%3e</id>
<updated>2009-12-08T23:57:15Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:57:14 2009
New Revision: 888643

URL: http://svn.apache.org/viewvc?rev=888643&amp;view=rev
Log:
bean reloading now without classcast exceptions, finally...

Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
Tue Dec  8 23:57:14 2009
@@ -49,6 +49,10 @@
     public ContainerFileManager(StandardJavaFileManager standardJavaFileManager) {
         super(standardJavaFileManager);
         _delegate = standardJavaFileManager;
+        refreshClassloader();
+    }
+
+    public void refreshClassloader() {
         classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
Tue Dec  8 23:57:14 2009
@@ -84,37 +84,12 @@
      *             we will deprecate it as soon as the full
      *             compile at the beginning of the request
      *             is implemented
+     *
+     * TODO move this code over to the weaver instead of the compiler
+     * we do not do a single compile step anymore
      */
     public Class compileFile(String sourceRoot, String classPath, String relativeFileName)
throws ClassNotFoundException {
 
-     /*   Iterable&lt;? extends JavaFileObject&gt; fileObjects = fileManager.getJavaFileObjects(sourceRoot
+ FILE_SEPARATOR + relativeFileName);
-        fileManager.getTempDir().setLastModified(0);
-        String[] options = new String[]{CompilerConst.JC_CLASSPATH, fileManager.getClassPath(),
CompilerConst.JC_TARGET_PATH, fileManager.getTempDir().getAbsolutePath(), CompilerConst.JC_SOURCEPATH,
sourceRoot, CompilerConst.JC_DEBUG};
-        javaCompiler.getTask(null, fileManager, diagnosticCollector, Arrays.asList(options),
null, fileObjects).call();
-        handleDiagnostics(diagnosticCollector);
-
-        //now we do a dynamic bytecode reingeneering, to add the needed interfaces
-        //so that we can locate the dynamically compiled jsf artefact in a non blocking way.
-        String className = ClassUtils.relativeFileToClassName(relativeFileName);
-
-        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
-        if (!(oldClassLoader instanceof RecompiledClassLoader)) {
-            try {
-                RecompiledClassLoader classLoader = (RecompiledClassLoader) fileManager.getClassLoader(null);
-                Thread.currentThread().setContextClassLoader(classLoader);
-
-                ClassUtils.markAsDynamicJava(fileManager.getTempDir().getAbsolutePath(),
className);
-
-                return classLoader.loadClass(className);
-            } finally {
-                Thread.currentThread().setContextClassLoader(oldClassLoader);
-            }
-        }
-        return null; */
-
-        
-
-
         String className = ClassUtils.relativeFileToClassName(relativeFileName);
         ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
         if (!(oldClassLoader instanceof RecompiledClassLoader)) {
@@ -152,6 +127,7 @@
         String[] options = new String[]{CompilerConst.JC_CLASSPATH, fileManager.getClassPath(),
CompilerConst.JC_TARGET_PATH, fileManager.getTempDir().getAbsolutePath(), CompilerConst.JC_SOURCEPATH,
sourceRoot, CompilerConst.JC_DEBUG};
         javaCompiler.getTask(null, fileManager, diagnosticCollector, Arrays.asList(options),
null, fileObjects).call();
         handleDiagnostics(diagnosticCollector);
+        fileManager.refreshClassloader();
         return fileManager.getTempDir();
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Tue Dec  8 23:57:14 2009
@@ -70,7 +70,7 @@
     private static final String JAVA5_COMPILER = "org.apache.myfaces.scripting.loaders.java.jdk5.CompilerFacade";
 
     AnnotationScanner _scanner = null;
-
+    DynamicCompiler compiler = null;
 
     /**
      * helper to allow initial compiler classpath scanning
@@ -136,8 +136,11 @@
         try {
             //we initialize the compiler lazy
             //because the facade itself is lazy
-            DynamicCompiler compiler = (DynamicCompiler) ReflectUtil.instantiate(getScriptingFacadeClass());//new
ReflectCompilerFacade();
+            if(compiler == null) {
+                compiler = (DynamicCompiler) ReflectUtil.instantiate(getScriptingFacadeClass());//new
ReflectCompilerFacade();
+            }
             retVal = compiler.compileFile(sourceRoot, classPath, file);
+
         } catch (ClassNotFoundException e) {
             //can be safely ignored
         }
@@ -199,7 +202,10 @@
             return;
         }
 
-        DynamicCompiler compiler = (DynamicCompiler) ReflectUtil.instantiate(getScriptingFacadeClass());//new
ReflectCompilerFacade();
+        if(compiler == null) {
+            compiler = (DynamicCompiler) ReflectUtil.instantiate(getScriptingFacadeClass());//new
ReflectCompilerFacade();
+        }
+        
         for (String scriptPath : getScriptPaths()) {
             //compile via javac dynamically, also after this block dynamic compilation
             //for the entire length of the request,
@@ -221,6 +227,7 @@
            ) {
             fullRecompile();
             //TODO if managed beans are tainted we have to do a full drop
+
             refreshManagedBeans();
         }
     }
@@ -249,6 +256,8 @@
                     break;
                 }
             }
+
+            log.info("Tainting all beans to avoid classcast exceptions");
             if (managedBeanTainted) {
                 for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
                     Class managedBeanClass = entry.getValue().getManagedBeanClass();
@@ -256,6 +265,11 @@
                         //managed bean class found we drop the class from our session
                         removeBeanReferences(entry.getValue());
                     }
+                    //one bean tainted we have to taint all dynamic beans otherwise we will
get classcast
+                    //exceptions
+                    log.info("Tainting ");
+                    ReloadingMetadata metaData = FileChangedDaemon.getInstance().getClassMap().get(managedBeanClass.getName());
+                    metaData.setTainted(true);
                 }
 
             }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
Tue Dec  8 23:57:14 2009
@@ -92,6 +92,7 @@
                 //a dependend class is loaded as well we run into classcast exceptions
                 if(data != null) {
                     data.setTainted(false);
+                    
                     return super.defineClass(className, fileContent, 0, fileLength);
                 } else {
                     //we store the initial reloading meta data information so that it is
refreshed

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
Tue Dec  8 23:57:14 2009
@@ -120,7 +120,7 @@
     public File compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException
{
         try {
             CompilationResult result = compiler.compile(new File(sourceRoot), fileManager.getTempDir(),
fileManager.getClassPath());
-
+            fileManager.refreshClassloader();
             displayMessages(result);
             return fileManager.getTempDir();
         } catch (CompilationException e) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java
Tue Dec  8 23:57:14 2009
@@ -39,6 +39,10 @@
     RecompiledClassLoader classLoader = null;
 
     public ContainerFileManager() {
+        refreshClassloader();
+    }
+
+    public void refreshClassloader() {
         classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
Tue Dec  8 23:57:14 2009
@@ -57,7 +57,7 @@
         return _delegate.getRendererTypeForResourceName(resourceName);
     }
 
-    public void handleResourceRequest(FacesContext context) {
+    public void handleResourceRequest(FacesContext context) throws java.io.IOException {
         weaveDelegate();
         _delegate.handleResourceRequest(context);
     }

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
Tue Dec  8 23:57:14 2009
@@ -32,7 +32,8 @@
 
 public class Blog {
 
-    String title        =   "Hello to the myfaces dynamic blogging example";
+
+    String title        =   "aaa Hello to the myfaces dynamic blogging example";
     String title1       =   "You can alter the code for this small blogging application on
the fly, " +
                             "you even can add new classes on the fly and Java will pick it
up";
 
@@ -152,7 +153,7 @@
     }
 
     public String getTitle3() {
-        return "title 3 xxx from java blog";
+        return "title 3 from java blog";
     }
 
     public void setTitle3(String title3) {

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java?rev=888643&amp;r1=888642&amp;r2=888643&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
Tue Dec  8 23:57:14 2009
@@ -50,6 +50,7 @@
     public void addEntry(Object entry) {
         if (entry != null) {
             blogEntries.add(entry);
+            System.out.println("add entry");
         }
        
     }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888641 - in /myfaces/extensions/scripting/trunk: core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/ core/core/src/main/java/org/apache/myfaces/scr...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208235600.8560923889E4@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208235600-8560923889E4@eris-apache-org%3e</id>
<updated>2009-12-08T23:56:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:55:59 2009
New Revision: 888641

URL: http://svn.apache.org/viewvc?rev=888641&amp;view=rev
Log:
ongoing works on the reloading strategies,
we now have better reload handling on the flyweight and stateless
or light artefacts (the ones which can drop states and expect them in case
of a reload, or which get the states injected instead)

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
  (contents, props changed)
      - copied, changed from r888639, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
Removed:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java?rev=888641&amp;r1=888640&amp;r2=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ContainerFileManager.java
Tue Dec  8 23:55:59 2009
@@ -19,9 +19,10 @@
 package org.apache.myfaces.scripting.loaders.java.jsr199;
 
 
-
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.loaders.java.RecompiledClassLoader;
+import org.apache.myfaces.scripting.loaders.java.ScriptingClass;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 import javax.tools.FileObject;
 import javax.tools.ForwardingJavaFileManager;
@@ -48,10 +49,9 @@
     public ContainerFileManager(StandardJavaFileManager standardJavaFileManager) {
         super(standardJavaFileManager);
         _delegate = standardJavaFileManager;
-        classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader());
+        classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
     }
 
-
     @Override
     public JavaFileObject getJavaFileForOutput(Location location, String s, JavaFileObject.Kind
kind, FileObject fileObject) throws IOException {
         return super.getJavaFileForOutput(location, s, kind, fileObject);
@@ -61,7 +61,8 @@
     public ClassLoader getClassLoader(Location location) {
         return classLoader;
     }
-     public ClassLoader getClassLoader() {
+
+    public ClassLoader getClassLoader() {
         return classLoader;
     }
 
@@ -86,10 +87,10 @@
 
         StringBuilder retVal = new StringBuilder(500);
         while (cls != null) {
-            if(cls instanceof URLClassLoader ) {
+            if (cls instanceof URLClassLoader) {
                 URL[] urls = ((URLClassLoader) cls).getURLs();
                 int len = urls.length;
-                
+
                 for (int cnt = 0; cnt &lt; len; cnt++) {
 
                     retVal.append(urls[cnt].getFile());
@@ -103,7 +104,7 @@
         }
 
         String retStr = retVal.toString();
-        if(retStr.length()&gt;1) {
+        if (retStr.length() &gt; 1) {
             retStr = retStr.substring(0, retStr.length() - 1);
         }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy?rev=888641&amp;r1=888640&amp;r2=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
Tue Dec  8 23:55:59 2009
@@ -3,7 +3,7 @@
 import org.apache.myfaces.scripting.api.ReloadingStrategy
 import org.apache.myfaces.scripting.core.reloading.SimpleReloadingStrategy
 import org.apache.myfaces.scripting.api.BaseWeaver
-import org.apache.myfaces.scripting.core.reloading.RendererReloadingStrategy;
+import org.apache.myfaces.scripting.core.reloading.NoMappingReloadingStrategy;
 
 /**
  * Reloading strategy for the groovy
@@ -14,30 +14,17 @@
  * some introspection ones which under no circumstances
  * should be overwritten
  *
+ * so er have to set the all others instance var to a specialized reloading strategy
+ * and cope with the rest the standard java way by not doing anything
+ *
  */
-public class GlobalReloadingStrategy  implements ReloadingStrategy {
+public class GlobalReloadingStrategy extends org.apache.myfaces.scripting.core.reloading.GlobalReloadingStrategy
{
 
     private BaseWeaver _weaver = null;
 
-    private ReloadingStrategy _rendererStrategy;
-    private ReloadingStrategy _allOthers;
-
-
     public GlobalReloadingStrategy(weaver) {
-        _weaver = weaver;
-        _rendererStrategy = new RendererReloadingStrategy();
+        super(weaver);
         _allOthers = new StandardGroovyReloadingStrategy();
 
     }
-
-    public Object reload(Object toReload, int artefactType) {
-
-
-        switch (artefactType) {
-            case ScriptingConst.ARTEFACT_TYPE_RENDERER:
-                return _rendererStrategy.reload(toReload, artefactType);
-            //TODO Add other artefact loading strategies on demand here
-            default:
-                return _allOthers.reload(toReload, artefactType);
-        }    }
 }
\ No newline at end of file

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java?rev=888641&amp;r1=888640&amp;r2=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
Tue Dec  8 23:55:59 2009
@@ -33,19 +33,23 @@
 
 public class GlobalReloadingStrategy implements ReloadingStrategy {
 
-    private BaseWeaver _weaver = null;
+    protected BaseWeaver _weaver = null;
 
-    private ReloadingStrategy _beanStrategy;
-    private ReloadingStrategy _rendererStrategy;
-    private ReloadingStrategy _allOthers;
+    protected ReloadingStrategy _beanStrategy;
+    protected ReloadingStrategy _noMappingStrategy;
+    protected ReloadingStrategy _allOthers;
 
     public GlobalReloadingStrategy(BaseWeaver weaver) {
         _weaver = weaver;
         _beanStrategy = new ManagedBeanReloadingStrategy(weaver);
-        _rendererStrategy = new RendererReloadingStrategy();
+        _noMappingStrategy = new NoMappingReloadingStrategy();
         _allOthers = new SimpleReloadingStrategy(weaver);
     }
 
+    public GlobalReloadingStrategy() {
+        
+    }
+
     /**
      * the strategy callback which switches between various strategies
      * we have in our system
@@ -60,7 +64,16 @@
             case ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN:
                 return _beanStrategy.reload(toReload, artefactType);
             case ScriptingConst.ARTEFACT_TYPE_RENDERER:
-                return _rendererStrategy.reload(toReload, artefactType);
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_BEHAVIOR:
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER:
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_COMPONENT:
+                return _noMappingStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_VALIDATOR:
+                return _noMappingStrategy.reload(toReload, artefactType);
+
             //TODO Add other artefact loading strategies on demand here
             default:
                 return _allOthers.reload(toReload, artefactType);

Copied: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
(from r888639, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java?p2=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java&amp;p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java&amp;r1=888639&amp;r2=888641&amp;rev=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
Tue Dec  8 23:55:59 2009
@@ -24,10 +24,24 @@
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  *
+ * &lt;p /&gt;
  * The renderer is a stateless flyweight pattern the reloading strategy is
  * to do nothing, this should give optimal results
+ *
+ * &lt;p /&gt;
+ * The components are a similar case they are not flyweight
+ * but the properties usually are preserved by the lifecycle if possible
+ * or assigned by the tag handlers
+ *
+ * &lt;p /&gt;
+ * The same also applies to other flyweight patterned classes
+ * like converters or validators
+ * 
+ * &lt;p /&gt;
+ * The only ones which need to keep some state are the ones
+ * which keep delegates, like the NavHandler
  */
-public class RendererReloadingStrategy extends SimpleReloadingStrategy {
+public class NoMappingReloadingStrategy extends SimpleReloadingStrategy {
     @Override
     protected void mapProperties(Object target, Object src) {
         return;

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/NoMappingReloadingStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java?rev=888641&amp;r1=888640&amp;r2=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
Tue Dec  8 23:55:59 2009
@@ -30,7 +30,6 @@
  * @date: 01.09.2009
  */
 
-
 public class Blog {
 
     String title        =   "Hello to the myfaces dynamic blogging example";
@@ -50,7 +49,6 @@
 
     String content      = "";
 
-    
 
     private Log getLog() {
         return LogFactory.getLog(this.getClass());
@@ -79,6 +77,8 @@
         entry.setTopic(topic);
         entry.setContent(content);
 
+
+
         if (service != null) {
             /*convenience method to call a method on an object dynamically
             * executeMethod and cast are static imports which encapsule the

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java?rev=888641&amp;r1=888640&amp;r2=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogEntry.java
Tue Dec  8 23:55:59 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.javaloader.blog;
 
+
+
 /**
  * @author werpu2
  * @date: 01.09.2009

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java?rev=888641&amp;r1=888640&amp;r2=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
Tue Dec  8 23:55:59 2009
@@ -24,6 +24,8 @@
 import java.util.LinkedList;
 import java.util.Collections;
 
+
+
 /**
  * @author werpu2
  * @date: 01.09.2009

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java?rev=888641&amp;r1=888640&amp;r2=888641&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
Tue Dec  8 23:55:59 2009
@@ -60,7 +60,6 @@
              org.apache.myfaces.scripting.java.JAR_PATHS
              pointing towards the lingering jars
              The compiler cannot pick up the implicit containers classpaths
-
             */
             //we use the introspection calls here to achieve our goal that way
             //we can shift the dependency resolution from compile time to runtime




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888639 - in /myfaces/extensions/scripting/trunk/core/core/src/main: groovy/org/apache/myfaces/groovyloader/core/ java/org/apache/myfaces/scripting/api/ java/org/apache/myfaces/scripting/core/reloading/ java/org/apache/myfaces/scripting/loa...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208235443.4C32623889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208235443-4C32623889BB@eris-apache-org%3e</id>
<updated>2009-12-08T23:54:43Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:54:42 2009
New Revision: 888639

URL: http://svn.apache.org/viewvc?rev=888639&amp;view=rev
Log:
bean classcast exception no finally history, yiehaa...
thanks to the improved classloader
and thanks also to the more complicated bean reloading strategies.
renderer reloading strategy improved as well, since the renderer is a flyweight
pattern we do not have to copy anything, we just drop everything and reload anew.

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
  (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/java/test/
    myfaces/extensions/scripting/trunk/core/core/src/main/java/test/ListTest.java   (with
props)
Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java

Added: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy?rev=888639&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GlobalReloadingStrategy.groovy
Tue Dec  8 23:54:42 2009
@@ -0,0 +1,43 @@
+package org.apache.myfaces.groovyloader.core
+
+import org.apache.myfaces.scripting.api.ReloadingStrategy
+import org.apache.myfaces.scripting.core.reloading.SimpleReloadingStrategy
+import org.apache.myfaces.scripting.api.BaseWeaver
+import org.apache.myfaces.scripting.core.reloading.RendererReloadingStrategy;
+
+/**
+ * Reloading strategy for the groovy
+ * connectors
+ *
+ * Groovy has a different behavior, because
+ * every attribute normally is reachable even
+ * some introspection ones which under no circumstances
+ * should be overwritten
+ *
+ */
+public class GlobalReloadingStrategy  implements ReloadingStrategy {
+
+    private BaseWeaver _weaver = null;
+
+    private ReloadingStrategy _rendererStrategy;
+    private ReloadingStrategy _allOthers;
+
+
+    public GlobalReloadingStrategy(weaver) {
+        _weaver = weaver;
+        _rendererStrategy = new RendererReloadingStrategy();
+        _allOthers = new StandardGroovyReloadingStrategy();
+
+    }
+
+    public Object reload(Object toReload, int artefactType) {
+
+
+        switch (artefactType) {
+            case ScriptingConst.ARTEFACT_TYPE_RENDERER:
+                return _rendererStrategy.reload(toReload, artefactType);
+            //TODO Add other artefact loading strategies on demand here
+            default:
+                return _allOthers.reload(toReload, artefactType);
+        }    }
+}
\ No newline at end of file

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=888639&amp;r1=888638&amp;r2=888639&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
Tue Dec  8 23:54:42 2009
@@ -53,7 +53,7 @@
         //FIXME this is private in super class
         scriptingEngine = ScriptingConst.ENGINE_TYPE_GROOVY
         fileEnding = ".groovy"
-        _reloadingStrategy = new GroovyReloadingStrategy(this)
+        _reloadingStrategy = new GlobalReloadingStrategy(this)
     }
 
 
@@ -160,7 +160,7 @@
     }
 
     public void requestRefresh() {
-        
+
     }
 
 }

Added: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy?rev=888639&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/StandardGroovyReloadingStrategy.groovy
Tue Dec  8 23:54:42 2009
@@ -0,0 +1,60 @@
+/*
+ * 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.groovyloader.core
+
+import org.apache.myfaces.scripting.api.ReloadingStrategy
+import org.apache.myfaces.scripting.core.reloading.SimpleReloadingStrategy
+import org.apache.myfaces.scripting.api.BaseWeaver;
+
+
+public class StandardGroovyReloadingStrategy extends SimpleReloadingStrategy {
+
+    public StandardGroovyReloadingStrategy(BaseWeaver weaver) {
+        super(weaver);
+    }
+
+    /**
+     * central algorithm which determines which property values are overwritten and which
are not
+     */
+    protected void mapProperties(def target, def src) {
+        src.properties.each {property -&gt;
+            //ok here is the algorithm, basic datatypes usually are not copied but read in
anew and then overwritten
+            //later on
+            //all others can be manually overwritten by adding an attribute &lt;attributename&gt;_changed
+
+            try {
+                if (target.properties.containsKey(property.key)
+                    &amp;&amp; !property.key.equals("metaClass")        //the class information
and meta class information cannot be changed
+                    &amp;&amp; !property.key.equals("class")            //otherwise we will
get following error
+                    // java.lang.IllegalArgumentException: object is not an instance of declaring
class
+                    &amp;&amp; !(
+                    target.properties.containsKey(property.key + "_changed") //||
+                    //nothing further needed the phases take care of that
+                    )) {
+                    target.setProperty(property.key, property.value)
+                }
+            } catch (Exception e) {
+
+            }
+        }
+    }
+
+   
+}
+

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=888639&amp;r1=888638&amp;r2=888639&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
Tue Dec  8 23:54:42 2009
@@ -146,8 +146,6 @@
         if (metadata == null) {
             String fileName = className.replaceAll("\\.", File.separator) + getFileEnding();
 
-            //TODO this code can probably be replaced by the functionality
-            //already given in the Groovy classloader, this needs further testing
             for (String pathEntry : getScriptPaths()) {
 
                 /**
@@ -172,6 +170,7 @@
         return null;
     }
 
+    //TODO move this into the classloader to cover dependend classes as well
     protected void refreshReloadingMetaData(String sourceRoot, String file, File currentClassFile,
Class retVal, int engineType) {
         ReloadingMetadata reloadingMetaData = new ReloadingMetadata();
         reloadingMetaData.setAClass(retVal);
@@ -212,7 +211,6 @@
         this.scriptingEngine = scriptingEngine;
     }
 
-    protected abstract void mapProperties(Object target, Object src);
 
     protected abstract Class loadScriptingClassFromFile(String sourceRoot, String file);
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java?rev=888639&amp;r1=888638&amp;r2=888639&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
Tue Dec  8 23:54:42 2009
@@ -36,11 +36,13 @@
     private BaseWeaver _weaver = null;
 
     private ReloadingStrategy _beanStrategy;
+    private ReloadingStrategy _rendererStrategy;
     private ReloadingStrategy _allOthers;
 
     public GlobalReloadingStrategy(BaseWeaver weaver) {
         _weaver = weaver;
         _beanStrategy = new ManagedBeanReloadingStrategy(weaver);
+        _rendererStrategy = new RendererReloadingStrategy();
         _allOthers = new SimpleReloadingStrategy(weaver);
     }
 
@@ -57,6 +59,8 @@
         switch (artefactType) {
             case ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN:
                 return _beanStrategy.reload(toReload, artefactType);
+            case ScriptingConst.ARTEFACT_TYPE_RENDERER:
+                return _rendererStrategy.reload(toReload, artefactType);
             //TODO Add other artefact loading strategies on demand here
             default:
                 return _allOthers.reload(toReload, artefactType);

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java?rev=888639&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
Tue Dec  8 23:54:42 2009
@@ -0,0 +1,35 @@
+/*
+ * 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.scripting.core.reloading;
+
+import org.apache.myfaces.scripting.api.ReloadingStrategy;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ * The renderer is a stateless flyweight pattern the reloading strategy is
+ * to do nothing, this should give optimal results
+ */
+public class RendererReloadingStrategy extends SimpleReloadingStrategy {
+    @Override
+    protected void mapProperties(Object target, Object src) {
+        return;
+    }
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/RendererReloadingStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888639&amp;r1=888638&amp;r2=888639&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Tue Dec  8 23:54:42 2009
@@ -46,6 +46,18 @@
  *         &lt;p/&gt;
  *         The Scripting Weaver for the java core which reloads the java scripts
  *         dynamically upon change
+ *
+ * &lt;p /&gt;
+ * Note this is the central focus point for all reloading related activity
+ * this class introduces the correct class loader
+ * it manages the bean reloading on the proper stage of the lifecyle,
+ * calls the compilers single and all compile,
+ * it adds the strategies for the property handling of the reloaded instance
+ * &lt;p /&gt;
+ * Every language implementation has to implement this weaver
+ * and (if not done differently) also the proper compiler bindings
+ * and property handling strategies.
+ *
  */
 public class JavaScriptingWeaver extends BaseWeaver implements ScriptingWeaver, Serializable
{
 
@@ -98,26 +110,6 @@
 
 
     /**
-     * helper to map the properties wherever possible
-     *
-     * @param target
-     * @param src
-     */
-    protected void mapProperties(Object target, Object src) {
-        try {
-            //TODO add dynamic property reloading hook here
-            BeanUtils.copyProperties(target, src);
-        } catch (IllegalAccessException e) {
-            log.debug(e);
-            //this is wanted
-        } catch (InvocationTargetException e) {
-            log.debug(e);
-            //this is wanted
-        }
-    }
-
-
-    /**
      * loads a class from a given sourceroot and filename
      * note this method does not have to be thread safe
      * it is called in a thread safe manner by the base class
@@ -240,7 +232,7 @@
         Set&lt;String&gt; tainted = new HashSet&lt;String&gt;();
         for (Map.Entry&lt;String, ReloadingMetadata&gt; it : FileChangedDaemon.getInstance().getClassMap().entrySet())
{
             if (it.getValue().getScriptingEngine() == ScriptingConst.ENGINE_TYPE_JAVA &amp;&amp;
it.getValue().isTainted()) {
-                tainted.add(it.getValue().getAClass().getName());
+                tainted.add(it.getKey());
             }
         }
         if (tainted.size() &gt; 0) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java?rev=888639&amp;r1=888638&amp;r2=888639&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
Tue Dec  8 23:54:42 2009
@@ -20,6 +20,9 @@
 
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.core.util.FileUtils;
+import org.apache.myfaces.scripting.refresh.FileChangedDaemon;
+import org.apache.myfaces.scripting.refresh.ReloadingMetadata;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -27,14 +30,16 @@
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
+ *
+ * Classloader which loads the compilates for the scripting engine
  */
-
 public class RecompiledClassLoader extends ClassLoader {
     static File tempDir = null;
     static double _tempMarker = Math.random();
+    int _scriptingEngine;
 
 
-    public RecompiledClassLoader(ClassLoader classLoader) {
+    public RecompiledClassLoader(ClassLoader classLoader, int scriptingEngine) {
         super(classLoader);
         if (tempDir == null) {
             synchronized (this.getClass()) {
@@ -45,6 +50,7 @@
                 tempDir = FileUtils.getTempDir();
             }
         }
+        _scriptingEngine = scriptingEngine;
     }
 
     RecompiledClassLoader() {
@@ -67,6 +73,10 @@
         //check if our class exists in the tempDir
         File target = getClassFile(className);
         if (target.exists()) {
+            ReloadingMetadata data = FileChangedDaemon.getInstance().getClassMap().get(className);
+            if(data != null &amp;&amp; !data.isTainted()) {
+                return data.getAClass();
+            }
 
             FileInputStream iStream = null;
             int fileLength = (int) target.length();
@@ -78,8 +88,16 @@
                 // Erzeugt aus dem byte Feld ein Class Object.
                 Class retVal = null;
                 
-
-                return super.defineClass(className, fileContent, 0, fileLength);
+                //we have to do it here because just in case
+                //a dependend class is loaded as well we run into classcast exceptions
+                if(data != null) {
+                    data.setTainted(false);
+                    return super.defineClass(className, fileContent, 0, fileLength);
+                } else {
+                    //we store the initial reloading meta data information so that it is
refreshed
+                    //later on, this we we cover dependend classes on the initial load
+                    return storeReloadableDefinitions(className, target, fileLength, fileContent);
+                }
 
             } catch (Exception e) {
                 throw new ClassNotFoundException(e.toString());
@@ -98,6 +116,23 @@
         return super.loadClass(className);    //To change body of overridden methods use
File | Settings | File Templates.
     }
 
+    private Class&lt;?&gt; storeReloadableDefinitions(String className, File target, int
fileLength, byte[] fileContent) {
+        Class retVal;
+        retVal = super.defineClass(className, fileContent, 0, fileLength);
+        ReloadingMetadata reloadingMetaData = new ReloadingMetadata();
+        reloadingMetaData.setAClass(retVal);
+
+        reloadingMetaData.setFileName(target.getAbsolutePath());
+        reloadingMetaData.setSourcePath("");
+        reloadingMetaData.setTimestamp(target.lastModified());
+        reloadingMetaData.setTainted(false);
+        reloadingMetaData.setTaintedOnce(true);
+        reloadingMetaData.setScriptingEngine(_scriptingEngine);
+
+        FileChangedDaemon.getInstance().getClassMap().put(className, reloadingMetaData);
+        return retVal;
+    }
+
 
     @Override
     protected Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java?rev=888639&amp;r1=888638&amp;r2=888639&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/ContainerFileManager.java
Tue Dec  8 23:54:42 2009
@@ -20,6 +20,7 @@
 
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.loaders.java.RecompiledClassLoader;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 import java.io.File;
 import java.net.URL;
@@ -38,7 +39,7 @@
     RecompiledClassLoader classLoader = null;
 
     public ContainerFileManager() {
-        classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader());
+        classLoader = new RecompiledClassLoader(ClassUtils.getContextClassLoader(), ScriptingConst.ENGINE_TYPE_JAVA);
     }
 
     public String getClassPath() {

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/test/ListTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/test/ListTest.java?rev=888639&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/test/ListTest.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/test/ListTest.java Tue Dec
 8 23:54:42 2009
@@ -0,0 +1,47 @@
+/*
+ * 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 test;
+
+import java.util.List;
+import java.util.LinkedList;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class ListTest {
+
+    public static void main (String ... arg) {
+
+        List&lt;String&gt; testList = new LinkedList&lt;String&gt;();
+        testList.add("one");
+        testList.add("two");
+        testList.add("three");
+
+        List testlist2 = testList.subList(0,1);
+        testList.remove(0);
+        System.out.println(testList.size());
+
+        System.out.println(testlist2.size());
+
+
+
+    }
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/test/ListTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/test/ListTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888637 - in /myfaces/extensions/scripting/trunk: core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/ core/core/src/main/java/org/apache/myfaces/scr...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208235321.56130238889B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208235321-56130238889B@eris-apache-org%3e</id>
<updated>2009-12-08T23:53:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:53:20 2009
New Revision: 888637

URL: http://svn.apache.org/viewvc?rev=888637&amp;view=rev
Log:
groovy now working again but still at state last commit
(no extended reloading strategy handling etc...)

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyReloadingStrategy.groovy
Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/pom.xml
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestRenderer.groovy
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
    myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
Tue Dec  8 23:53:20 2009
@@ -87,7 +87,7 @@
      */
     public Class compileFile(String sourceRoot, String classPath, String relativeFileName)
throws ClassNotFoundException {
 
-        Iterable&lt;? extends JavaFileObject&gt; fileObjects = fileManager.getJavaFileObjects(sourceRoot
+ FILE_SEPARATOR + relativeFileName);
+     /*   Iterable&lt;? extends JavaFileObject&gt; fileObjects = fileManager.getJavaFileObjects(sourceRoot
+ FILE_SEPARATOR + relativeFileName);
         fileManager.getTempDir().setLastModified(0);
         String[] options = new String[]{CompilerConst.JC_CLASSPATH, fileManager.getClassPath(),
CompilerConst.JC_TARGET_PATH, fileManager.getTempDir().getAbsolutePath(), CompilerConst.JC_SOURCEPATH,
sourceRoot, CompilerConst.JC_DEBUG};
         javaCompiler.getTask(null, fileManager, diagnosticCollector, Arrays.asList(options),
null, fileObjects).call();
@@ -110,7 +110,27 @@
                 Thread.currentThread().setContextClassLoader(oldClassLoader);
             }
         }
+        return null; */
+
+        
+
+
+        String className = ClassUtils.relativeFileToClassName(relativeFileName);
+        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+        if (!(oldClassLoader instanceof RecompiledClassLoader)) {
+            try {
+                RecompiledClassLoader classLoader = (RecompiledClassLoader) fileManager.getClassLoader(null);
+                Thread.currentThread().setContextClassLoader(classLoader);
+
+                ClassUtils.markAsDynamicJava(fileManager.getTempDir().getAbsolutePath(),
className);
+
+                return classLoader.loadClass(className);
+            } finally {
+                Thread.currentThread().setContextClassLoader(oldClassLoader);
+            }
+        }
         return null;
+
     }
 
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy
Tue Dec  8 23:53:20 2009
@@ -1,3 +1,4 @@
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file

Added: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyReloadingStrategy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyReloadingStrategy.groovy?rev=888637&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyReloadingStrategy.groovy
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyReloadingStrategy.groovy
Tue Dec  8 23:53:20 2009
@@ -0,0 +1,42 @@
+package org.apache.myfaces.groovyloader.core
+
+import org.apache.myfaces.scripting.api.ReloadingStrategy
+import org.apache.myfaces.scripting.core.reloading.SimpleReloadingStrategy
+import org.apache.myfaces.scripting.api.BaseWeaver;
+
+
+public class GroovyReloadingStrategy extends SimpleReloadingStrategy {
+
+    public GroovyReloadingStrategy(BaseWeaver weaver) {
+        super(weaver);
+    }
+
+    /**
+     * central algorithm which determines which property values are overwritten and which
are not
+     */
+    protected void mapProperties(def target, def src) {
+        src.properties.each {property -&gt;
+            //ok here is the algorithm, basic datatypes usually are not copied but read in
anew and then overwritten
+            //later on
+            //all others can be manually overwritten by adding an attribute &lt;attributename&gt;_changed
+
+            try {
+                if (target.properties.containsKey(property.key)
+                    &amp;&amp; !property.key.equals("metaClass")        //the class information
and meta class information cannot be changed
+                    &amp;&amp; !property.key.equals("class")            //otherwise we will
get following error
+                    // java.lang.IllegalArgumentException: object is not an instance of declaring
class
+                    &amp;&amp; !(
+                    target.properties.containsKey(property.key + "_changed") //||
+                    //nothing further needed the phases take care of that
+                    )) {
+                    target.setProperty(property.key, property.value)
+                }
+            } catch (Exception e) {
+
+            }
+        }
+    }
+
+   
+}
+

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
Tue Dec  8 23:53:20 2009
@@ -50,8 +50,10 @@
     public GroovyWeaver() {
         super();
         //super with params in java classes not superbly callable
+        //FIXME this is private in super class
         scriptingEngine = ScriptingConst.ENGINE_TYPE_GROOVY
         fileEnding = ".groovy"
+        _reloadingStrategy = new GroovyReloadingStrategy(this)
     }
 
 
@@ -59,7 +61,7 @@
     /**
      * central algorithm which determines which property values are overwritten and which
are not
      */
-    protected void mapProperties(def target, def src) {
+    protected void mapProperties(Object target, Object src) {
         src.properties.each {property -&gt;
             //ok here is the algorithm, basic datatypes usually are not copied but read in
anew and then overwritten
             //later on

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
Tue Dec  8 23:53:20 2009
@@ -29,7 +29,7 @@
      */
     protected List&lt;String&gt; scriptPaths = new LinkedList&lt;String&gt;();
 
-    ReloadingStrategy _reloadingStrategy = null;
+    protected ReloadingStrategy _reloadingStrategy = null;
 
 
     public BaseWeaver() {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
Tue Dec  8 23:53:20 2009
@@ -47,6 +47,9 @@
         _weaver = weaver;
     }
 
+    public SimpleReloadingStrategy() {
+    }
+
     /**
      * &lt;p&gt;
      * the central callback for our strategy here

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Tue Dec  8 23:53:20 2009
@@ -73,6 +73,7 @@
             Class scanner = ClassUtils.getContextClassLoader().loadClass("org.apache.myfaces.scripting.jsf2.annotation.JavaAnnotationScanner");
             this._scanner = (AnnotationScanner) scanner.newInstance();
 
+            FileChangedDaemon.getInstance().getSystemRecompileMap().put(ScriptingConst.ENGINE_TYPE_JAVA,
Boolean.TRUE);
         } catch (IllegalAccessException e) {
             e.printStackTrace();
         } catch (InstantiationException e) {
@@ -223,7 +224,7 @@
 
     public void requestRefresh() {
         if (
-              FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA)
!= null &amp;&amp;
+              FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA)
== null ||
               FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA)
            ) {
             fullRecompile();
@@ -304,6 +305,7 @@
                 requestMap.put(JavaScriptingWeaver.class.getName() + "_recompiled", Boolean.TRUE);
             }
         }
+        FileChangedDaemon.getInstance().getSystemRecompileMap().put(ScriptingConst.ENGINE_TYPE_JAVA,Boolean.FALSE);
     }
 
     private boolean isFullyRecompiled() {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/RecompiledClassLoader.java
Tue Dec  8 23:53:20 2009
@@ -51,6 +51,17 @@
     }
 
 
+    /*
+     * TODO the classcast excepton is caused by a loadClassIntrnal triggered
+     * at the time the referencing class is loaded and then by another classload
+     * at the time the bean is refreshed
+     *
+     * we have to check if a class is loaded by loadClassInternal then
+     * no other refresh should happen but the loaded class should be issued again)
+     *
+     * Dont know how to resolve that for now
+     */
+
     @Override
     public Class&lt;?&gt; loadClass(String className) throws ClassNotFoundException {
         //check if our class exists in the tempDir
@@ -65,6 +76,9 @@
                 iStream = new FileInputStream(target);
                 iStream.read(fileContent);
                 // Erzeugt aus dem byte Feld ein Class Object.
+                Class retVal = null;
+                
+
                 return super.defineClass(className, fileContent, 0, fileLength);
 
             } catch (Exception e) {
@@ -79,9 +93,17 @@
             }
         }
 
+        
+
         return super.loadClass(className);    //To change body of overridden methods use
File | Settings | File Templates.
     }
 
+
+    @Override
+    protected Class&lt;?&gt; findClass(String name) throws ClassNotFoundException {
+        return super.findClass(name);
+    }
+
     public File getClassFile(String className) {
         return ClassUtils.classNameToFile(tempDir.getAbsolutePath(), className);
     }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
Tue Dec  8 23:53:20 2009
@@ -24,6 +24,7 @@
 
 import org.apache.myfaces.webapp.StartupListener;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
 
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContext;
@@ -45,7 +46,10 @@
 
         CustomChainLoader loader = new CustomChainLoader(servletContext);
         ClassUtils.addClassLoadingExtension(loader, true);
-        servletContext.setAttribute("ScriptingWeaver", loader.getScriptingWeaver());
+        ScriptingWeaver weaver =  loader.getScriptingWeaver();
+        servletContext.setAttribute("ScriptingWeaver",weaver);
+        log.info("Compiling all sources for the first time");
+        weaver.requestRefresh();
         //TODO do a first full recompile here at startup time before the bean etc... instantiation
can kick in
    }
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/pom.xml?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/pom.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/pom.xml Tue Dec  8 23:53:20
2009
@@ -50,7 +50,13 @@
             &lt;artifactId&gt;core&lt;/artifactId&gt;
             &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
         &lt;/dependency&gt;
-        
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.myfaces.extension-scripting&lt;/groupId&gt;
+            &lt;artifactId&gt;core-java6&lt;/artifactId&gt;
+            &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
+        &lt;/dependency&gt;
+
+
         &lt;dependency&gt;
             &lt;groupId&gt;org.apache.myfaces.extension-scripting&lt;/groupId&gt;
             &lt;artifactId&gt;myfaces12-extensions&lt;/artifactId&gt;

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestRenderer.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestRenderer.groovy?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestRenderer.groovy
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/groovy/org/apache/myfaces/groovyloader/test/TestRenderer.groovy
Tue Dec  8 23:53:20 2009
@@ -29,8 +29,10 @@
 public class TestRenderer extends HtmlTextRendererBase {
 
     public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) {
+
+    
         facesContext.responseWriter.write """
-            &lt;h1&gt; Hello from a groovy JSF components renderer &lt;/h1&gt;
+            &lt;h1&gt; sss Hello from a groovy JSF components renderer &lt;/h1&gt;
 
             &lt;p&gt; you can find my sources under WEB-INF/groovy/... &lt;/p&gt;
 
@@ -53,6 +55,8 @@
         super.encodeBegin(facesContext, uiComponent);    //To change body of overridden methods
use File | Settings | File Templates.
     }
 
+    
+
     public void encodeEnd(FacesContext facesContext, UIComponent uiComponent) {
         print super.toString()
         super.encodeEnd(facesContext, uiComponent);    //To change body of overridden methods
use File | Settings | File Templates.

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/Blog.java
Tue Dec  8 23:53:20 2009
@@ -40,7 +40,7 @@
     String title3 = "bla";
     String title4 = "bla2";
 
-    String title5 = "test from title5";
+    String title5 = "test  from title5";
 
 
 
@@ -60,15 +60,17 @@
     public String addEntry2 () {
         getLog().info("adding entry");
 
-        Object service = JSFUtil.resolveVariable("javaBlogService");
+        BlogService service = (BlogService) JSFUtil.resolveVariable("javaBlogService");
+
+
 
-        
         if (service == null) {
-            getLog().error("service not found");
+            getLog().error("service   not found");
         } else {
             getLog().info("service found");
         }
 
+
         BlogEntry entry = new BlogEntry();
         //we now map it in the verbose way, the lean way would be to do direct introspection
attribute mapping
 
@@ -99,13 +101,15 @@
 
 
     public String getTitle() {
-        return title;
+        return  title;
     }
+    
 
     public void setTitle(String title) {
         this.title = title;
     }
 
+
     public String getTitle1() {
         return title1;
     }
@@ -148,7 +152,7 @@
     }
 
     public String getTitle3() {
-        return "title 3 from java blog";
+        return "title 3 xxx from java blog";
     }
 
     public void setTitle3(String title3) {

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
Tue Dec  8 23:53:20 2009
@@ -49,6 +49,7 @@
         if (entry != null) {
             blogEntries.add(entry);
         }
+       
     }
 
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces12-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/JSFUtil.java
Tue Dec  8 23:53:20 2009
@@ -27,6 +27,8 @@
 import java.lang.reflect.InvocationTargetException;
 
 import static org.apache.myfaces.scripting.core.util.ClassUtils.*;
+import static org.apache.myfaces.scripting.core.util.ReflectUtil.*;
+
 
 /**
  * @author werpu2
@@ -52,7 +54,6 @@
         Object elContext = executeMethod(facesContext, "getELContext");
         Object elResolver = executeMethod(elContext, "getELResolver");
 
-        try {
 
             /*
              if you want to enable this then use
@@ -60,17 +61,12 @@
              pointing towards the lingering jars
              The compiler cannot pick up the implicit containers classpaths
 
-
-
             */
             //we use the introspection calls here to achieve our goal that way
             //we can shift the dependency resolution from compile time to runtime
-            return executeMethod(elResolver, "getValue",  elContext, null,  beanName);
+         return executeMethod(elResolver, "getValue",  elContext, null,  beanName);
             // return FacesContext.getCurrentInstance().getELContext().getELResolver().getValue(FacesContext.getCurrentInstance().getELContext(),
null, beanName);
 
-        } catch (ClassNotFoundException e) {
-            throw new RuntimeException(e);
-        }
 
     }
 

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java?rev=888637&amp;r1=888636&amp;r2=888637&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
(original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/blog/BlogService.java
Tue Dec  8 23:53:20 2009
@@ -52,6 +52,8 @@
     }
 
 
+
+
     public List&lt;Object&gt; getBlogEntries() {
         return blogEntries;
     }
@@ -61,7 +63,7 @@
     }
 
     public String getTest() {
-        return "aaaaaaaaaaaaaaa";
+        return "ddd";
     }
 
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888636 - in /myfaces/extensions/scripting/trunk/core/core/src/main: java/org/apache/myfaces/scripting/core/ java/org/apache/myfaces/scripting/core/util/ java/org/apache/myfaces/scripting/jsf/ java/org/apache/myfaces/scripting/loaders/java/...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208235141.5D70B23889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208235141-5D70B23889BB@eris-apache-org%3e</id>
<updated>2009-12-08T23:51:41Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:51:40 2009
New Revision: 888636

URL: http://svn.apache.org/viewvc?rev=888636&amp;view=rev
Log:
full recompile now enabled for every request we now drop the per instance compile on java
files

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/jsf/RefreshPhaseListener.java
  (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/resources/META-INF/faces-config.xml
  (with props)
Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java?rev=888636&amp;r1=888635&amp;r2=888636&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
Tue Dec  8 23:51:40 2009
@@ -35,13 +35,12 @@
 public class CoreWeaver implements Serializable, ScriptingWeaver {
 
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = -3034995032644947216L;
 
     List&lt;ScriptingWeaver&gt; _weavers = new ArrayList&lt;ScriptingWeaver&gt;();
 
-    
 
     public CoreWeaver(ScriptingWeaver... weavers) {
         for (ScriptingWeaver weaver : weavers) {
@@ -53,7 +52,7 @@
         throw new RuntimeException("Method not supported from this facade");
     }
 
-    public Object reloadScriptingInstance(Object o,int artefactType) {
+    public Object reloadScriptingInstance(Object o, int artefactType) {
         if (o.getClass().getName().contains("TestBean2")) {
             System.out.println("Debugpoint found");
         }
@@ -120,6 +119,9 @@
         }
     }
 
+    /**
+     * @deprecated, the full recompile now is done at the beginning of a request
+     */
     public void fullRecompile() {
         for (ScriptingWeaver weaver : _weavers) {
             weaver.fullRecompile();
@@ -127,7 +129,9 @@
     }
 
     public void requestRefresh() {
-        //To change body of implemented methods use File | Settings | File Templates.
+        for (ScriptingWeaver weaver : _weavers) {
+            weaver.requestRefresh();
+        }
     }
 
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java?rev=888636&amp;r1=888635&amp;r2=888636&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
Tue Dec  8 23:51:40 2009
@@ -28,6 +28,7 @@
 import org.apache.commons.logging.Log;
 
 import javax.faces.context.FacesContext;
+import javax.faces.context.ExternalContext;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
 import java.util.HashMap;
@@ -60,11 +61,16 @@
 
     static ThreadLocal _eventProcessorHolder = new ThreadLocal();
 
+    static ThreadLocal _externalContextHolder = new ThreadLocal();
+
+
 
     public static void init() {
 
     }
 
+  
+
 
     /**
      * general shutdown clean
@@ -116,7 +122,7 @@
      * some artefacts need a full request refresh
      */
     public static void doRequestRefreshes() {
-
+        getWeaver().requestRefresh();
     }
 
     /**

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/jsf/RefreshPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/jsf/RefreshPhaseListener.java?rev=888636&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/jsf/RefreshPhaseListener.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/jsf/RefreshPhaseListener.java
Tue Dec  8 23:51:40 2009
@@ -0,0 +1,62 @@
+/*
+ * 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.scripting.jsf;
+
+import org.apache.myfaces.scripting.core.util.WeavingContext;
+
+import javax.faces.event.PhaseListener;
+import javax.faces.event.PhaseEvent;
+import javax.faces.event.PhaseId;
+import javax.faces.context.FacesContext;
+import java.util.Map;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ * We use a phase listener here for all parts of the refresh
+ * which have to rely on jsf access
+ *
+ * Which means all parts which need some kind of FacesConfig have
+ * to rely on this one, we trigger before the first phase
+ */
+
+public class RefreshPhaseListener implements PhaseListener {
+    static final String EQ_KEY = "RefreshPhaseListenerDone";
+
+    public void afterPhase(PhaseEvent event) {
+    }
+
+    public void beforePhase(PhaseEvent event) {
+        //we fetch the earliest phase possible, in case of a normal get it is the render
phase
+        //in every other case it is the restore view phase
+        Map requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
+        if(requestMap.containsKey(EQ_KEY)) return;
+        requestMap.put(EQ_KEY, Boolean.TRUE);
+
+        WeavingContext.doRequestRefreshes();
+
+
+    }
+
+    public PhaseId getPhaseId() {
+        return PhaseId.ANY_PHASE; 
+    }
+
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/jsf/RefreshPhaseListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/jsf/RefreshPhaseListener.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888636&amp;r1=888635&amp;r2=888636&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Tue Dec  8 23:51:40 2009
@@ -222,7 +222,10 @@
     }
 
     public void requestRefresh() {
-        if (FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA))
{
+        if (
+              FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA)
!= null &amp;&amp;
+              FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA)
+           ) {
             fullRecompile();
             //TODO if managed beans are tainted we have to do a full drop
             refreshManagedBeans();
@@ -230,6 +233,9 @@
     }
 
     private void refreshManagedBeans() {
+        if(FacesContext.getCurrentInstance() == null) {
+            return;//no npe allowed    
+        }
         Set&lt;String&gt; tainted = new HashSet&lt;String&gt;();
         for (Map.Entry&lt;String, ReloadingMetadata&gt; it : FileChangedDaemon.getInstance().getClassMap().entrySet())
{
             if (it.getValue().getScriptingEngine() == ScriptingConst.ENGINE_TYPE_JAVA &amp;&amp;
it.getValue().isTainted()) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java?rev=888636&amp;r1=888635&amp;r2=888636&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
Tue Dec  8 23:51:40 2009
@@ -97,16 +97,15 @@
             StringWriter compilerOutput = new StringWriter();
             // Invoke the Javac compiler
             Method compile = compilerClass.getMethod("compile", new Class[]{String[].class,
PrintWriter.class});
-            Object [] compilerArguments = new Object[]{buildCompilerArguments(sourcePath,
targetPath, classPath), new PrintWriter(compilerOutput)};
+            Object[] compilerArguments = new Object[]{buildCompilerArguments(sourcePath,
targetPath, classPath), new PrintWriter(compilerOutput)};
             logCommandLine(compilerArguments);
 
-
-            Integer returnCode = (Integer) compile.invoke(null,compilerArguments);
+            Integer returnCode = (Integer) compile.invoke(null, compilerArguments);
 
             CompilationResult result = new CompilationResult(compilerOutput.toString());
             if (returnCode == null || returnCode.intValue() != 0) {
                 result.registerError(new CompilationResult.CompilationMessage(-1,
-                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'."+ compilerOutput.toString()));
+                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'." + compilerOutput.toString()));
             }
 
             return result;
@@ -141,10 +140,10 @@
 
             // Invoke the Javac compiler
             Method compile = compilerClass.getMethod("compile", new Class[]{String[].class,
PrintWriter.class});
-            if(!targetPath.exists()) {
+            if (!targetPath.exists()) {
                 targetPath.mkdirs();
             }
-            Object [] compilerArguments = new Object[]{buildCompilerArguments(sourcePath,
targetPath, file, classPath), new PrintWriter(compilerOutput)};
+            Object[] compilerArguments = new Object[]{buildCompilerArguments(sourcePath,
targetPath, file, classPath), new PrintWriter(compilerOutput)};
             logCommandLine(compilerArguments);
 
             Integer returnCode = (Integer) compile.invoke(null,
@@ -153,7 +152,7 @@
             CompilationResult result = new CompilationResult(compilerOutput.toString());
             if (returnCode == null || returnCode.intValue() != 0) {
                 result.registerError(new CompilationResult.CompilationMessage(-1,
-                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'."+ compilerOutput.toString()));
+                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'." + compilerOutput.toString()));
             }
 
             return result;
@@ -170,15 +169,19 @@
     }
 
     private void logCommandLine(Object[] compilerArguments) {
-        if(logger.isInfoEnabled()) {
+        if (logger.isDebugEnabled()) {
             StringBuilder commandLine = new StringBuilder();
             commandLine.append("javac ");
-            for(String compilerArgument: (String[]) compilerArguments[0]) {
+            for (String compilerArgument : (String[]) compilerArguments[0]) {
                 commandLine.append(compilerArgument);
                 commandLine.append(" ");
             }
-            logger.info(commandLine.toString());
+            logger.debug(commandLine.toString());
+        }
+        if (logger.isInfoEnabled()) {
+            logger.info("compiling java");
         }
+
     }
 
     // ------------------------------------------ Utility methods
@@ -193,12 +196,12 @@
      * @return an array of arguments that you have to pass to the Javac compiler
      */
     protected String[] buildCompilerArguments(File sourcePath, File targetPath, String classPath)
{
-        List &lt;File&gt; sourceFiles = FileUtils.fetchSourceFiles(sourcePath, "*.java");
+        List&lt;File&gt; sourceFiles = FileUtils.fetchSourceFiles(sourcePath, "*.java");
 
         List arguments = getDefaultArguments(sourcePath, targetPath, classPath);
 
         // Append the source file that is to be compiled. Note that the user specifies only
a relative file location.
-        for(File sourceFile: sourceFiles) {
+        for (File sourceFile : sourceFiles) {
             arguments.add(sourceFile.getAbsolutePath());
         }
         return (String[]) arguments.toArray(new String[0]);

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java?rev=888636&amp;r1=888635&amp;r2=888636&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
Tue Dec  8 23:51:40 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.servlet;
 
 import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.context.servlet.ServletExternalContextImpl;
 
 
 import javax.servlet.*;
@@ -43,6 +44,7 @@
      public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
 
          WeavingContext.setWeaver(context.getAttribute("ScriptingWeaver"));
+        // WeavingContext.doRequestRefreshes();
          filterChain.doFilter(servletRequest, servletResponse);
      }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java?rev=888636&amp;r1=888635&amp;r2=888636&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
Tue Dec  8 23:51:40 2009
@@ -46,9 +46,11 @@
         CustomChainLoader loader = new CustomChainLoader(servletContext);
         ClassUtils.addClassLoadingExtension(loader, true);
         servletContext.setAttribute("ScriptingWeaver", loader.getScriptingWeaver());
+        //TODO do a first full recompile here at startup time before the bean etc... instantiation
can kick in
    }
 
     public void postInit(ServletContextEvent evt) {
+
     }
 
     public void preDestroy(ServletContextEvent evt) {

Added: myfaces/extensions/scripting/trunk/core/core/src/main/resources/META-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/resources/META-INF/faces-config.xml?rev=888636&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/resources/META-INF/faces-config.xml
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/resources/META-INF/faces-config.xml
Tue Dec  8 23:51:40 2009
@@ -0,0 +1,28 @@
+&lt;?xml version="1.0"?&gt;
+&lt;!--
+ * 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.
+--&gt;
+&lt;faces-config version = "1.2"
+              xmlns = "http://java.sun.com/xml/ns/javaee"
+              xmlns:xi = "http://www.w3.org/2001/XInclude"
+              xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
+              xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"&gt;
+    &lt;lifecycle&gt;
+        &lt;phase-listener&gt;org.apache.myfaces.scripting.jsf.RefreshPhaseListener&lt;/phase-listener&gt;
+    &lt;/lifecycle&gt;
+&lt;/faces-config&gt;
\ No newline at end of file

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/resources/META-INF/faces-config.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/resources/META-INF/faces-config.xml
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888634 - in /myfaces/extensions/scripting/trunk/core: core-java6/ core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/ core-java6/src/test/reso...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208235022.3517A238889B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208235022-3517A238889B@eris-apache-org%3e</id>
<updated>2009-12-08T23:50:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:50:20 2009
New Revision: 888634

URL: http://svn.apache.org/viewvc?rev=888634&amp;view=rev
Log:
compile all now working compiler api now under unit test coverage

Added:
    myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/
    myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/TestCompilerAPI.java
  (with props)
    myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/
    myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe1.java
  (with props)
    myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe2.java
  (with props)
    myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/
    myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/TestCompilerAPI.java
  (with props)
    myfaces/extensions/scripting/trunk/core/core/src/test/resources/
    myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/
    myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe1.java
  (with props)
    myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe2.java
  (with props)
Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/pom.xml
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
    myfaces/extensions/scripting/trunk/core/core/pom.xml
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/DynamicCompiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/pom.xml?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/pom.xml (original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/pom.xml Tue Dec  8 23:50:20 2009
@@ -11,6 +11,7 @@
         myfaces extension core java6 lib
     &lt;/description&gt;
 
+
     
     &lt;parent&gt;
         &lt;groupId&gt;org.apache.myfaces.extension-scripting&lt;/groupId&gt;

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
Tue Dec  8 23:50:20 2009
@@ -18,20 +18,19 @@
  */
 package org.apache.myfaces.scripting.loaders.java.jsr199;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.api.DynamicCompiler;
-import org.apache.myfaces.scripting.api.ScriptingConst;
+import org.apache.myfaces.scripting.api.CompilerConst;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.core.util.FileUtils;
 import org.apache.myfaces.scripting.loaders.java.RecompiledClassLoader;
-import org.apache.myfaces.scripting.loaders.java.jsr199.ContainerFileManager;
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
 
 import javax.tools.*;
 import java.io.File;
 import java.util.Arrays;
-import java.util.Locale;
 import java.util.List;
+import java.util.Locale;
 
 /**
  * &lt;p&gt;
@@ -57,10 +56,12 @@
  */
 public class JSR199Compiler implements DynamicCompiler {
 
+    private static final String FILE_SEPARATOR = File.separator;
+
     JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
     DiagnosticCollector&lt;JavaFileObject&gt; diagnosticCollector = new DiagnosticCollector();
     ContainerFileManager fileManager = null;
-    private static final String FILE_SEPARATOR = File.separator;
+
 
     public JSR199Compiler() {
         super();
@@ -88,7 +89,7 @@
 
         Iterable&lt;? extends JavaFileObject&gt; fileObjects = fileManager.getJavaFileObjects(sourceRoot
+ FILE_SEPARATOR + relativeFileName);
         fileManager.getTempDir().setLastModified(0);
-        String[] options = new String[]{"-cp", fileManager.getClassPath(), "-d", fileManager.getTempDir().getAbsolutePath(),
"-sourcepath", sourceRoot, "-g"};
+        String[] options = new String[]{CompilerConst.JC_CLASSPATH, fileManager.getClassPath(),
CompilerConst.JC_TARGET_PATH, fileManager.getTempDir().getAbsolutePath(), CompilerConst.JC_SOURCEPATH,
sourceRoot, CompilerConst.JC_DEBUG};
         javaCompiler.getTask(null, fileManager, diagnosticCollector, Arrays.asList(options),
null, fileObjects).call();
         handleDiagnostics(diagnosticCollector);
 
@@ -125,12 +126,13 @@
      * @param classPath  the classpath for the compilation
      * @throws ClassNotFoundException in case of a compilation error
      */
-    public void compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException
{
-        List&lt;File&gt; sourceFiles = FileUtils.fetchSourceFiles(new File(sourceRoot), ScriptingConst.JAVA_WILDCARD);
+    public File compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException
{
+        List&lt;File&gt; sourceFiles = FileUtils.fetchSourceFiles(new File(sourceRoot), CompilerConst.JAVA_WILDCARD);
         Iterable&lt;? extends JavaFileObject&gt; fileObjects = fileManager.getJavaFileObjects(sourceFiles.toArray(new
File[0]));
-        String[] options = new String[]{"-cp", fileManager.getClassPath(), "-d", fileManager.getTempDir().getAbsolutePath(),
"-sourcepath", sourceRoot, "-g"};
+        String[] options = new String[]{CompilerConst.JC_CLASSPATH, fileManager.getClassPath(),
CompilerConst.JC_TARGET_PATH, fileManager.getTempDir().getAbsolutePath(), CompilerConst.JC_SOURCEPATH,
sourceRoot, CompilerConst.JC_DEBUG};
         javaCompiler.getTask(null, fileManager, diagnosticCollector, Arrays.asList(options),
null, fileObjects).call();
         handleDiagnostics(diagnosticCollector);
+        return fileManager.getTempDir();
     }
 
 
@@ -166,7 +168,7 @@
      */
     private String createErrorMessage(Diagnostic diagnostic) {
         StringBuilder retVal = new StringBuilder(256);
-        retVal.append("Java Compiler, Error on line: ");
+        retVal.append(CompilerConst.STD_ERROR_HEAD);
         retVal.append(diagnostic.getMessage(Locale.getDefault()));
         retVal.append(diagnostic.getLineNumber());
 

Added: myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/TestCompilerAPI.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/TestCompilerAPI.java?rev=888634&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/TestCompilerAPI.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/TestCompilerAPI.java
Tue Dec  8 23:50:20 2009
@@ -0,0 +1,106 @@
+/*
+ * 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.javaloader.core.compilerTest;
+
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.myfaces.scripting.api.DynamicCompiler;
+import org.apache.myfaces.scripting.core.util.ReflectUtil;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import org.junit.Test;
+
+import java.io.File;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class TestCompilerAPI {
+
+    private static final String JAVA_FILE_ENDING = ".java";
+    private static final String JSR199_COMPILER = "org.apache.myfaces.scripting.loaders.java.jsr199.JSR199Compiler";
+    private static final String JAVA5_COMPILER = "org.apache.myfaces.scripting.loaders.java.jdk5.CompilerFacade";
+
+    private static final String PROBE1 = "../../src/test/resources/compiler/TestProbe1.java";
+    private static final String PROBE2 = "../../src/test/resources/compiler/TestProbe2.java";
+    private static final String RESOURCES = "../../src/test/resources/";
+
+    File probe1;
+    File probe2;
+    File root;
+
+    public TestCompilerAPI() {
+        ClassLoader loader = Thread.currentThread().getContextClassLoader();
+        //we use a location relative to our current root one to reach the sources
+        //because the test also has to be performed outside of maven
+        //and the ide cannot cope with resource paths for now
+        String currentPath = loader.getResource("./").getPath();
+        String sourcePath1 = currentPath + PROBE1;
+        String sourcePath2 = currentPath + PROBE2;
+        String rootPath = currentPath + RESOURCES;
+
+        sourcePath1 = FilenameUtils.normalize(sourcePath1);
+        sourcePath2 = FilenameUtils.normalize(sourcePath2);
+        rootPath = FilenameUtils.normalize(rootPath);
+
+        probe1 = new File(sourcePath1);
+        probe2 = new File(sourcePath2);
+        root = new File(rootPath);
+    }
+
+
+    private String getScriptingFacadeClass(boolean allowJSR199) {
+        String javaVer = System.getProperty("java.version");
+        String[] versionArr = javaVer.split("\\.");
+
+        int major = Integer.parseInt(versionArr[Math.min(versionArr.length, 1)]);
+
+        if (major &gt; 5 &amp;&amp; allowJSR199) {
+            //jsr199 compliant jdk
+            return JSR199_COMPILER;
+        }
+        //otherwise
+        return JAVA5_COMPILER;
+    }
+
+
+    @Test
+    public void testFullCompile() {
+             File targetDir = null;
+        try {
+
+            
+            DynamicCompiler compiler = (DynamicCompiler) ReflectUtil.instantiate(getScriptingFacadeClass(true));//new
ReflectCompilerFacade();
+
+            File target = compiler.compileAllFiles(root.getAbsolutePath(), "");
+
+            assertTrue("target exists files are compiled into the target", target != null);
+            File classFile1 = new File(target.getAbsolutePath()+"/compiler/TestProbe1.class");
+            File classFile2 = new File(target.getAbsolutePath()+"/compiler/TestProbe2.class");
+
+            assertTrue("Classfile1 is compiled into the target", classFile1.exists());
+            assertTrue("Classfile2 is compiled into the target", classFile2.exists());
+        } catch (ClassNotFoundException e) {
+            fail(e.toString());
+        }
+    }
+
+}

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/TestCompilerAPI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/compilerTest/TestCompilerAPI.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe1.java?rev=888634&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe1.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe1.java
Tue Dec  8 23:50:20 2009
@@ -0,0 +1,8 @@
+package compiler;
+
+/**
+* a simple testprobe to check if the compiler api works
+*/
+public class TestProbe1 {
+
+}
\ No newline at end of file

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe1.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe2.java?rev=888634&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe2.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe2.java
Tue Dec  8 23:50:20 2009
@@ -0,0 +1,8 @@
+package compiler;
+
+/**
+* a simple testprobe to check if the compiler api works
+*/
+public class TestProbe2 {
+
+}
\ No newline at end of file

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/test/resources/TestProbe2.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/pom.xml?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/pom.xml (original)
+++ myfaces/extensions/scripting/trunk/core/core/pom.xml Tue Dec  8 23:50:20 2009
@@ -6,6 +6,7 @@
     &lt;packaging&gt;jar&lt;/packaging&gt;
     &lt;name&gt;groovy core&lt;/name&gt;
 
+    
     &lt;description&gt;
         groovy myfaces core lib
     &lt;/description&gt;
@@ -70,6 +71,15 @@
     &lt;build&gt;
         &lt;plugins&gt;
             &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.5&lt;/source&gt;
+                    &lt;target&gt;1.5&lt;/target&gt;
+                    
+                &lt;/configuration&gt;
+             &lt;/plugin&gt;
+            &lt;plugin&gt;
                 &lt;groupId&gt;org.codehaus.mojo.groovy&lt;/groupId&gt;
                 &lt;artifactId&gt;groovy-maven-plugin&lt;/artifactId&gt;
                 &lt;executions&gt;

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/GroovyWeaver.groovy
Tue Dec  8 23:50:20 2009
@@ -157,4 +157,8 @@
         //TODO implement this
     }
 
+    public void requestRefresh() {
+        
+    }
+
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
Tue Dec  8 23:50:20 2009
@@ -27,11 +27,12 @@
  */
 
 public class CompilerConst {
-    public static final String STD_ERROR_HEAD = "Java Compiler, Error on line: ";
-    public static final String JC_CLASSPATH = "-cp";
-    public static final String JC_TARGET_PATH = "-d";
-    public static final String JC_SOURCEPATH = "-sourcepath";
-    public static final String JC_DEBUG = "-g";
-    public static final String JAVA_WILDCARD = "*.java ";
-    public static final String JC_VERBOSE = "-verbose";
+    public static final String STD_ERROR_HEAD   = "Java Compiler, Error on line: ";
+    public static final String JC_CLASSPATH     = "-cp";
+    public static final String JC_TARGET_PATH   = "-d";
+    public static final String JC_SOURCEPATH    = "-sourcepath";
+    public static final String JC_DEBUG         = "-g";
+    public static final String JAVA_WILDCARD    = "*.java ";
+    public static final String JC_VERBOSE       = "-verbose";
+    public static final String JC_SOURCE = "-source";
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/DynamicCompiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/DynamicCompiler.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/DynamicCompiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/DynamicCompiler.java
Tue Dec  8 23:50:20 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.scripting.api;
 
+import java.io.File;
+
 /**
  * @author Werner Punz
  *         Interface marking generic compiler facades which can
@@ -32,6 +34,7 @@
  */
 public interface DynamicCompiler {
     /**
+     * 
      * compiles a single file into a class
      *
      * @param sourceRoot the source search path (root of our source)
@@ -42,6 +45,5 @@
      */
     public Class compileFile(String sourceRoot, String classPath, String filePath) throws
ClassNotFoundException;
 
-    public void compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException;
-
+    public File compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException;
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
Tue Dec  8 23:50:20 2009
@@ -125,5 +125,10 @@
             weaver.fullRecompile();
         }
     }
+
+    public void requestRefresh() {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
 }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
Tue Dec  8 23:50:20 2009
@@ -70,6 +70,9 @@
     public void fullRecompile() {
 
     }
-        
+
+    public void requestRefresh() {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
 
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
Tue Dec  8 23:50:20 2009
@@ -140,12 +140,10 @@
         int rootLen = root.length() + 1;
         for (File foundDir : dirStrategy.getFoundFiles()) {
             String dirName = foundDir.getAbsolutePath();
-            dirName = dirName.substring(rootLen);
             sourcesList.append(dirName);
             sourcesList.append( File.separator);
             sourcesList.append(appendix);
         }
-        sourcesList.append(appendix);
         return sourcesList;
     }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
Tue Dec  8 23:50:20 2009
@@ -64,7 +64,7 @@
 
             CompilationResult result = compiler.compile(new File(sourceRoot), fileManager.getTempDir(),
fileManager.getClassPath());
             displayMessages(result);
-            if(result.hasErrors()) {
+            if (result.hasErrors()) {
                 log.error("Compiler output:" + result.getCompilerOutput());
             }
 
@@ -108,8 +108,25 @@
         return null;
     }
 
-    public void compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException
{
-        //TODO implement this
+    /**
+     * compiles all files
+     *
+     * @param sourceRoot
+     * @param classPath
+     * @return the root target path for the classes which are compiled
+     * so that they later can be picked up by the classloader
+     * @throws ClassNotFoundException
+     */
+    public File compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException
{
+        try {
+            CompilationResult result = compiler.compile(new File(sourceRoot), fileManager.getTempDir(),
fileManager.getClassPath());
+
+            displayMessages(result);
+            return fileManager.getTempDir();
+        } catch (CompilationException e) {
+            log.error(e);
+        }
+        return null;
     }
 
     private void displayMessages(CompilationResult result) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
Tue Dec  8 23:50:20 2009
@@ -95,16 +95,18 @@
 
         try {
             StringWriter compilerOutput = new StringWriter();
-
             // Invoke the Javac compiler
             Method compile = compilerClass.getMethod("compile", new Class[]{String[].class,
PrintWriter.class});
-            Integer returnCode = (Integer) compile.invoke(null,
-                                                          new Object[]{buildCompilerArguments(sourcePath,
targetPath, classPath), new PrintWriter(compilerOutput)});
+            Object [] compilerArguments = new Object[]{buildCompilerArguments(sourcePath,
targetPath, classPath), new PrintWriter(compilerOutput)};
+            logCommandLine(compilerArguments);
+
+
+            Integer returnCode = (Integer) compile.invoke(null,compilerArguments);
 
             CompilationResult result = new CompilationResult(compilerOutput.toString());
             if (returnCode == null || returnCode.intValue() != 0) {
                 result.registerError(new CompilationResult.CompilationMessage(-1,
-                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'."));
+                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'."+ compilerOutput.toString()));
             }
 
             return result;
@@ -139,13 +141,19 @@
 
             // Invoke the Javac compiler
             Method compile = compilerClass.getMethod("compile", new Class[]{String[].class,
PrintWriter.class});
+            if(!targetPath.exists()) {
+                targetPath.mkdirs();
+            }
+            Object [] compilerArguments = new Object[]{buildCompilerArguments(sourcePath,
targetPath, file, classPath), new PrintWriter(compilerOutput)};
+            logCommandLine(compilerArguments);
+
             Integer returnCode = (Integer) compile.invoke(null,
-                                                          new Object[]{buildCompilerArguments(sourcePath,
targetPath, file, classPath), new PrintWriter(compilerOutput)});
+                                                          compilerArguments);
 
             CompilationResult result = new CompilationResult(compilerOutput.toString());
             if (returnCode == null || returnCode.intValue() != 0) {
                 result.registerError(new CompilationResult.CompilationMessage(-1,
-                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'."));
+                                                                              "Executing
the javac compiler failed. The return code is '" + returnCode + "'."+ compilerOutput.toString()));
             }
 
             return result;
@@ -161,6 +169,18 @@
         }
     }
 
+    private void logCommandLine(Object[] compilerArguments) {
+        if(logger.isInfoEnabled()) {
+            StringBuilder commandLine = new StringBuilder();
+            commandLine.append("javac ");
+            for(String compilerArgument: (String[]) compilerArguments[0]) {
+                commandLine.append(compilerArgument);
+                commandLine.append(" ");
+            }
+            logger.info(commandLine.toString());
+        }
+    }
+
     // ------------------------------------------ Utility methods
 
     /**
@@ -173,13 +193,14 @@
      * @return an array of arguments that you have to pass to the Javac compiler
      */
     protected String[] buildCompilerArguments(File sourcePath, File targetPath, String classPath)
{
-        StringBuilder sourcesList = FileUtils.fetchSourcePaths(sourcePath, CompilerConst.JAVA_WILDCARD);
+        List &lt;File&gt; sourceFiles = FileUtils.fetchSourceFiles(sourcePath, "*.java");
 
         List arguments = getDefaultArguments(sourcePath, targetPath, classPath);
 
         // Append the source file that is to be compiled. Note that the user specifies only
a relative file location.
-        arguments.add(sourcesList.toString());
-
+        for(File sourceFile: sourceFiles) {
+            arguments.add(sourceFile.getAbsolutePath());
+        }
         return (String[]) arguments.toArray(new String[0]);
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
Tue Dec  8 23:50:20 2009
@@ -40,11 +40,11 @@
     Pattern rePattern;
 
     public FileStrategy( String pattern) {
-        pattern = pattern.replace("\\.", "\\.");
-        pattern = "^.*"+pattern+"$";
+        pattern = pattern.trim().replaceAll("\\.", "\\\\.");
+        pattern = "."+pattern;
 
 
-        rePattern = Pattern.compile("[+-]?[0-9]+");
+        rePattern = Pattern.compile(pattern);
 
     }
 

Added: myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/TestCompilerAPI.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/TestCompilerAPI.java?rev=888634&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/TestCompilerAPI.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/TestCompilerAPI.java
Tue Dec  8 23:50:20 2009
@@ -0,0 +1,114 @@
+/*
+ * 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.scripting.core.compilerTest;
+
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+import org.apache.myfaces.scripting.api.DynamicCompiler;
+import org.apache.myfaces.scripting.core.util.ReflectUtil;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import org.junit.Test;
+
+import java.io.File;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class TestCompilerAPI {
+
+    private static final String JAVA_FILE_ENDING = ".java";
+    private static final String JSR199_COMPILER = "org.apache.myfaces.scripting.loaders.java.jsr199.JSR199Compiler";
+    private static final String JAVA5_COMPILER = "org.apache.myfaces.scripting.loaders.java.jdk5.CompilerFacade";
+
+    private static final String PROBE1 = "../../src/test/resources/compiler/TestProbe1.java";
+    private static final String PROBE2 = "../../src/test/resources/compiler/TestProbe2.java";
+    private static final String RESOURCES = "../../src/test/resources/";
+
+    File probe1;
+    File probe2;
+    File root;
+
+    public TestCompilerAPI() {
+        ClassLoader loader = Thread.currentThread().getContextClassLoader();
+        //we use a location relative to our current root one to reach the sources
+        //because the test also has to be performed outside of maven
+        //and the ide cannot cope with resource paths for now
+        String currentPath = loader.getResource("./").getPath();
+        String sourcePath1 = currentPath + PROBE1;
+        String sourcePath2 = currentPath + PROBE2;
+        String rootPath = currentPath + RESOURCES;
+
+        sourcePath1 = FilenameUtils.normalize(sourcePath1);
+        sourcePath2 = FilenameUtils.normalize(sourcePath2);
+        rootPath = FilenameUtils.normalize(rootPath);
+
+        probe1 = new File(sourcePath1);
+        probe2 = new File(sourcePath2);
+        root = new File(rootPath);
+    }
+
+
+    private String getScriptingFacadeClass(boolean allowJSR199) {
+        String javaVer = System.getProperty("java.version");
+        String[] versionArr = javaVer.split("\\.");
+
+        int major = Integer.parseInt(versionArr[Math.min(versionArr.length, 1)]);
+
+        Log log = LogFactory.getLog(this.getClass());
+        log.info("Java Version = "+major);
+
+        if (major &gt; 5 &amp;&amp; allowJSR199) {
+            //jsr199 compliant jdk
+            return JSR199_COMPILER;
+        }
+        //otherwise
+        return JAVA5_COMPILER;
+    }
+
+    @Test
+    public void testDummy() {
+
+    }
+
+    @Test
+    public void testFullCompile() {
+             File targetDir = null;
+        try {
+
+            DynamicCompiler compiler = (DynamicCompiler) ReflectUtil.instantiate(getScriptingFacadeClass(false));//new
ReflectCompilerFacade();
+
+            File target = compiler.compileAllFiles(root.getAbsolutePath(), "");
+
+            assertTrue("target exists files are compiled into the target", target != null);
+            File classFile1 = new File(target.getAbsolutePath()+"/compiler/TestProbe1.class");
+            File classFile2 = new File(target.getAbsolutePath()+"/compiler/TestProbe2.class");
+
+            assertTrue("Classfile1 is compiled into the target", classFile1.exists());
+            assertTrue("Classfile2 is compiled into the target", classFile2.exists());
+        } catch (ClassNotFoundException e) {
+            fail(e.toString());
+        }
+    }
+
+}
\ No newline at end of file

Propchange: myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/TestCompilerAPI.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/test/java/org/apache/myfaces/scripting/core/compilerTest/TestCompilerAPI.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe1.java?rev=888634&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe1.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe1.java
Tue Dec  8 23:50:20 2009
@@ -0,0 +1,8 @@
+package compiler;
+
+/**
+* a simple testprobe to check if the compiler api works
+*/
+public class TestProbe1 {
+
+}
\ No newline at end of file

Propchange: myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe1.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe2.java?rev=888634&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe2.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe2.java
Tue Dec  8 23:50:20 2009
@@ -0,0 +1,8 @@
+package compiler;
+
+/**
+* a simple testprobe to check if the compiler api works
+*/
+public class TestProbe2 {
+
+}
\ No newline at end of file

Propchange: myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/test/resources/compiler/TestProbe2.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
Tue Dec  8 23:50:20 2009
@@ -28,6 +28,8 @@
 import javax.el.ELResolver;
 import javax.el.PropertyNotFoundException;
 import javax.el.PropertyNotWritableException;
+import javax.faces.context.FacesContext;
+import javax.servlet.ServletRequest;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -46,13 +48,25 @@
     Log log = LogFactory.getLog(ELResolverProxy.class);
 
 
-    //Map reinstantiated = new HashMap();
-
 
     public Object getValue(ELContext elContext, final Object base, final Object property)
throws NullPointerException, PropertyNotFoundException, ELException {
+        //request, class is loaded anew hence we already have picked up the new code
+
         Object retVal = _delegate.getValue(elContext, base, property);
 
         if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
+            //now here we have something special which is implicit
+            //if the bean is only request scoped we dont have to reload anything
+            //so just run through this code without having anything happening here
+            //reloadScriptingInstance will return the same object we already had before
+            //the reason is for request or none scoped beans we get a new
+            //freshly reloaded and compiled instance on every request
+            //the problem starts with session application or custom scoped beans
+            //There nothing is compiled and we have to do the further bean processing
+
+            //TODO move the bean dropping into the beginning of the lifecycle instead of
on demand
+            //That way we have a cleaner control over the refresh per request
+            
 
 
             Object newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal,
ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN); /*once it was tainted or loaded by
@@ -61,7 +75,6 @@
                 _delegate.setValue(elContext, base, property, newRetVal);
             }
             return newRetVal;
-            //reinstantiated.put(retVal.getClass().getName(), retVal.getClass());
         }
 
         return retVal;

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java?rev=888634&amp;r1=888633&amp;r2=888634&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
Tue Dec  8 23:50:20 2009
@@ -90,7 +90,7 @@
                 Map&lt;String, org.apache.myfaces.config.element.ManagedBean&gt; mbeans =
config.getManagedBeans();
                 if (!mbeans.containsKey(property.toString())) {
                     if (log.isDebugEnabled()) {
-                        log.debug("ElResolverProxy.getValue bean removed we have to issue
a recompile and then try to load the bean anew");
+                        log.debug("ElResolverProxy.getValue old bean not existing we have
to perform a full annotation scan");
                     }
                     _delegate.setValue(elContext, base, property, null);
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888633 - in /myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting: api/CompilerConst.java api/ScriptingConst.java loaders/java/jdk5/JavacCompiler.java</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208234819.03FFC238889B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208234819-03FFC238889B@eris-apache-org%3e</id>
<updated>2009-12-08T23:48:18Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:48:18 2009
New Revision: 888633

URL: http://svn.apache.org/viewvc?rev=888633&amp;view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-20
Refactoring extracting all shared compiler consts for the various implementations

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
  (with props)
Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java?rev=888633&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
(added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
Tue Dec  8 23:48:18 2009
@@ -0,0 +1,37 @@
+/*
+ * 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.scripting.api;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ * Various constants shared over the various compiler implementations
+ * JSR or non JSR!
+ */
+
+public class CompilerConst {
+    public static final String STD_ERROR_HEAD = "Java Compiler, Error on line: ";
+    public static final String JC_CLASSPATH = "-cp";
+    public static final String JC_TARGET_PATH = "-d";
+    public static final String JC_SOURCEPATH = "-sourcepath";
+    public static final String JC_DEBUG = "-g";
+    public static final String JAVA_WILDCARD = "*.java ";
+    public static final String JC_VERBOSE = "-verbose";
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/CompilerConst.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java?rev=888633&amp;r1=888632&amp;r2=888633&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
Tue Dec  8 23:48:18 2009
@@ -59,5 +59,4 @@
     public static final int ARTEFACT_TYPE_RESOURCEHANDLER = 19;
     public static final int ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER = 20;
 
-    public static final String JAVA_WILDCARD = "*.java ";
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java?rev=888633&amp;r1=888632&amp;r2=888633&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
Tue Dec  8 23:48:18 2009
@@ -4,7 +4,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.core.util.FileUtils;
-import org.apache.myfaces.scripting.api.ScriptingConst;
+import org.apache.myfaces.scripting.api.CompilerConst;
 
 import java.io.File;
 import java.io.PrintWriter;
@@ -173,7 +173,7 @@
      * @return an array of arguments that you have to pass to the Javac compiler
      */
     protected String[] buildCompilerArguments(File sourcePath, File targetPath, String classPath)
{
-        StringBuilder sourcesList = FileUtils.fetchSourcePaths(sourcePath, ScriptingConst.JAVA_WILDCARD);
+        StringBuilder sourcesList = FileUtils.fetchSourcePaths(sourcePath, CompilerConst.JAVA_WILDCARD);
 
         List arguments = getDefaultArguments(sourcePath, targetPath, classPath);
 
@@ -219,18 +219,18 @@
 
         // Set both the source code path to search for class or interface
         // definitions and the destination directory for class files.
-        arguments.add("-sourcepath");
+        arguments.add(CompilerConst.JC_SOURCEPATH);
         arguments.add(sourcePath.getAbsolutePath());
-        arguments.add("-d");
+        arguments.add(CompilerConst.JC_TARGET_PATH);
         arguments.add(targetPath.getAbsolutePath());
-        arguments.add("-cp");
+        arguments.add(CompilerConst.JC_CLASSPATH);
         arguments.add(classPath);
 
         // Enable verbose output.
-        arguments.add("-verbose");
+        arguments.add(CompilerConst.JC_VERBOSE);
 
         // Generate all debugging information, including local variables.
-        arguments.add("-g");
+        arguments.add(CompilerConst.JC_DEBUG);
         return arguments;
     }
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888632 - in /myfaces/extensions/scripting/trunk/core: core-java6/ core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core/src/main/java/org/apache/myfaces/scripting/api/ core/src/main/java/org/apache/myfaces/scripti...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208234717.5425C238889B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208234717-5425C238889B@eris-apache-org%3e</id>
<updated>2009-12-08T23:47:16Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:47:16 2009
New Revision: 888632

URL: http://svn.apache.org/viewvc?rev=888632&amp;view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-20
save state of affairs, we move the compiler to a single compile step at the beginning of the
lifecycle, not done yet but the jsr 199 full compile now is coded, we now also have to code
the groovy part and move the entire groovy compile over to a full compile step

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
  (contents, props changed)
      - copied, changed from r888631, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java
Removed:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java
Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/pom.xml
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/ObjectRefreshedEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/SystemEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/AnnotatedArtefactLoadedEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ClassRefreshedEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/pom.xml?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/pom.xml (original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/pom.xml Tue Dec  8 23:47:16 2009
@@ -5,6 +5,7 @@
     &lt;artifactId&gt;core-java6&lt;/artifactId&gt;
     &lt;packaging&gt;jar&lt;/packaging&gt;
     &lt;name&gt;core java6 part&lt;/name&gt;
+    &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
 
     &lt;description&gt;
         myfaces extension core java6 lib

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
Tue Dec  8 23:47:16 2009
@@ -19,7 +19,9 @@
 package org.apache.myfaces.scripting.loaders.java.jsr199;
 
 import org.apache.myfaces.scripting.api.DynamicCompiler;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
+import org.apache.myfaces.scripting.core.util.FileUtils;
 import org.apache.myfaces.scripting.loaders.java.RecompiledClassLoader;
 import org.apache.myfaces.scripting.loaders.java.jsr199.ContainerFileManager;
 import org.apache.commons.logging.LogFactory;
@@ -29,6 +31,7 @@
 import java.io.File;
 import java.util.Arrays;
 import java.util.Locale;
+import java.util.List;
 
 /**
  * &lt;p&gt;
@@ -49,9 +52,6 @@
  * to use commons-jci so we rolled our own small specialized facade for this
  * &lt;/p&gt;
  *
- * TODO move this over to the unified compiler interface
- *
- *
  * @author Werner Punz (latest modification by $Author: werpu $)
  * @version $Revision: 812255 $ $Date: 2009-09-07 20:51:39 +0200 (Mo, 07 Sep 2009) $
  */
@@ -70,8 +70,20 @@
         }
     }
 
-    //ok this is a point of no return we cannot avoid it thanks to the dreaded
-    //windows file locking, but since this is not for production we can live with it
+    /**
+     * Compile a single file
+     *
+     * @param sourceRoot       the source search path (root of our source)
+     * @param classPath
+     * @param relativeFileName
+     * @return
+     * @throws ClassNotFoundException
+     * @deprecated note we will move over to a single
+     *             compile step in the beginning in the long run
+     *             we will deprecate it as soon as the full
+     *             compile at the beginning of the request
+     *             is implemented
+     */
     public Class compileFile(String sourceRoot, String classPath, String relativeFileName)
throws ClassNotFoundException {
 
         Iterable&lt;? extends JavaFileObject&gt; fileObjects = fileManager.getJavaFileObjects(sourceRoot
+ FILE_SEPARATOR + relativeFileName);
@@ -101,19 +113,42 @@
     }
 
 
+    /**
+     * compile all files starting from a given root
+     * &lt;p/&gt;
+     * note, the java compiler interface does not allow per se
+     * wildcards due to its file object indirection
+     * we deal with that problem by determine all files manually and then
+     * push the list into the jsr compiler interface
+     *
+     * @param sourceRoot the root for all java sources to be compiled
+     * @param classPath  the classpath for the compilation
+     * @throws ClassNotFoundException in case of a compilation error
+     */
     public void compileAllFiles(String sourceRoot, String classPath) throws ClassNotFoundException
{
-        //TODO implement this
+        List&lt;File&gt; sourceFiles = FileUtils.fetchSourceFiles(new File(sourceRoot), ScriptingConst.JAVA_WILDCARD);
+        Iterable&lt;? extends JavaFileObject&gt; fileObjects = fileManager.getJavaFileObjects(sourceFiles.toArray(new
File[0]));
+        String[] options = new String[]{"-cp", fileManager.getClassPath(), "-d", fileManager.getTempDir().getAbsolutePath(),
"-sourcepath", sourceRoot, "-g"};
+        javaCompiler.getTask(null, fileManager, diagnosticCollector, Arrays.asList(options),
null, fileObjects).call();
+        handleDiagnostics(diagnosticCollector);
     }
 
+
+    /**
+     * internal diagnostics handler
+     * which just logs the errors
+     *
+     * @param diagnosticCollector the compilation results, the jsr 199 uses a DiagnosticsCollector
object
+     *                            to keep the errors and warnings of the compiler
+     * @throws ClassNotFoundException in case of an error (this is enforced by the compiler
interface
+     *                                and probably will be overhauled in the long run)
+     */
     private void handleDiagnostics(DiagnosticCollector&lt;JavaFileObject&gt; diagnosticCollector)
throws ClassNotFoundException {
         if (diagnosticCollector.getDiagnostics().size() &gt; 0) {
             Log log = LogFactory.getLog(this.getClass());
             StringBuilder errors = new StringBuilder();
             for (Diagnostic diagnostic : diagnosticCollector.getDiagnostics()) {
-                String error = "Error on line" +
-                               diagnostic.getMessage(Locale.getDefault()) + "------" +
-                               diagnostic.getLineNumber() + " File:" +
-                               diagnostic.getSource().toString();
+                String error = createErrorMessage(diagnostic);
                 log.error(error);
                 errors.append(error);
 
@@ -122,4 +157,23 @@
         }
     }
 
+    /**
+     * creates a standardized error message
+     *
+     * @param diagnostic the diagnostic of the compiler containing the error data
+     * @return a formatted string with the standardized error message which then later
+     *         can be processed by the user
+     */
+    private String createErrorMessage(Diagnostic diagnostic) {
+        StringBuilder retVal = new StringBuilder(256);
+        retVal.append("Java Compiler, Error on line: ");
+        retVal.append(diagnostic.getMessage(Locale.getDefault()));
+        retVal.append(diagnostic.getLineNumber());
+
+        retVal.append("\n\n");
+        retVal.append(diagnostic.getSource().toString());
+
+        return retVal.toString();
+    }
+
 }
\ No newline at end of file

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
Tue Dec  8 23:47:16 2009
@@ -39,6 +39,7 @@
     public BaseWeaver(String fileEnding, int scriptingEngine) {
         this.fileEnding = fileEnding;
         this.scriptingEngine = scriptingEngine;
+        _reloadingStrategy = new GlobalReloadingStrategy(this);
     }
 
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
Tue Dec  8 23:47:16 2009
@@ -59,4 +59,5 @@
     public static final int ARTEFACT_TYPE_RESOURCEHANDLER = 19;
     public static final int ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER = 20;
 
+    public static final String JAVA_WILDCARD = "*.java ";
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
Tue Dec  8 23:47:16 2009
@@ -41,15 +41,13 @@
 
 
     /**
-     * @param o the object which has to be reloaded
+     * @param o            the object which has to be reloaded
      * @param artefactType an identifier for the artefact type so that its reloading strategies
can
-     * be adjusted depending on the type of artefact which has to be processed, we have to
pass down
-     * this artefact because we cannot rely on instanceof here for several reasons first
we do not know
-     * if a managed bean does not implement as well one of the artefact interfaces for one
reason or the other
-     * secondly how do we deal with future extensions which provide new artefacts we cannot
-     * bind the code to just one implementation, hence we add some kind of type identifier
here as well
-     * 
-     * 
+     *                     be adjusted depending on the type of artefact which has to be
processed, we have to pass down
+     *                     this artefact because we cannot rely on instanceof here for several
reasons first we do not know
+     *                     if a managed bean does not implement as well one of the artefact
interfaces for one reason or the other
+     *                     secondly how do we deal with future extensions which provide new
artefacts we cannot
+     *                     bind the code to just one implementation, hence we add some kind
of type identifier here as well
      * @return reloads an existing objects with its attributes
      *         and assigns the reloaded class to the new object
      *         &lt;p/&gt;
@@ -111,4 +109,12 @@
      */
     public void fullRecompile();
 
+
+    /**
+     * callback for artefacting request refreshes
+     * some artefacts should be refreshed or cleared upon
+     * request time, others can be dealt with on on demand time
+     */
+    public void requestRefresh();
+
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
Tue Dec  8 23:47:16 2009
@@ -18,21 +18,22 @@
  */
 package org.apache.myfaces.scripting.core.reloading;
 
-import org.apache.myfaces.scripting.api.ReloadingStrategy;
-import org.apache.myfaces.scripting.api.BaseWeaver;
-import org.apache.myfaces.scripting.core.util.WeavingContext;
-import org.apache.myfaces.config.element.ManagedBean;
-import org.apache.myfaces.config.RuntimeConfig;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.config.RuntimeConfig;
+import org.apache.myfaces.config.annotation.LifecycleProvider;
+import org.apache.myfaces.config.annotation.LifecycleProviderFactory;
+import org.apache.myfaces.config.element.ManagedBean;
+import org.apache.myfaces.scripting.api.BaseWeaver;
+import org.apache.myfaces.scripting.api.ReloadingStrategy;
+import org.apache.myfaces.scripting.core.util.ReflectUtil;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.FacesContext;
 import java.lang.reflect.InvocationTargetException;
-import java.util.Map;
 import java.util.List;
-import java.util.HashMap;
-import java.util.ArrayList;
+import java.util.Map;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -58,96 +59,16 @@
         _weaver = weaver;
     }
 
-    public Object reload(Object scriptingInstance, int artefactType) {
-        Map requestMap = WeavingContext.getRequestAttributesMap();
-        //only one reload per request allowed
-        if (requestMap != null &amp;&amp; requestMap.containsKey(RELOAD_PERFORMED)) {
-            return scriptingInstance;
-        }
-
-        //TODO build up the managed bean idx at request time or make a request blocker
-        //so that we build up the idx only once per request
-
-        //reload the class to get new static content if needed
-        Class aclass = _weaver.reloadScriptingClass(scriptingInstance.getClass());
-        if (aclass.hashCode() == scriptingInstance.getClass().hashCode()) {
-            //class of this object has not changed although
-            // reload is enabled we can skip the rest now
-            return scriptingInstance;
-        }
-
-        reloadAllDynamicBeans();
-
-
-        getLog().info("possible reload for " + scriptingInstance.getClass().getName());
-        /*only recreation of empty constructor classes is possible*/
-        try {
-            //reload the object by instiating a new class and
-            // assigning the attributes properly
-            Object newObject = aclass.newInstance();
-
-            /*now we shuffle the properties between the objects*/
-            //TODO remove this we wont need it anymore for now
-            mapProperties(newObject, scriptingInstance);
-
-            if (requestMap != null) {
-                requestMap.put(RELOAD_PERFORMED, Boolean.TRUE);
-            }
-            return newObject;
-        } catch (Exception e) {
-            getLog().error(e);
-        }
-        return null;
-
-    }
-
-    private void removeBeanReferences(String beanName) {
-        getLog().info("ManagedBeanReloadingStrategy.removeBeanReferences(" + beanName + ")");
-    }
-
-
     /**
-     * the simplest solution for now is to dump and reload
-     * all managed beans via the config
-     * ie - we drop the managed beans from all the request, session
-     * and application scope for now by checking the bean maps
-     * for their names and removing the corresponding beans unless they implement
-     * a non droppable annotation
+     * In our case the dropping already has happend at request time
+     * no need for another reloading here
+     * 
+     * @param scriptingInstance
+     * @param artefactType
+     * @return
      */
-    private void reloadAllDynamicBeans() {
-        //TODO iterate over the bean list, identify which classes are dynamic and drop those
-        //via their bean names
-        Map&lt;String, ManagedBean&gt; mbeans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
-        for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
-            Class managedBeanClass = entry.getValue().getManagedBeanClass();
-            if (WeavingContext.isDynamic(managedBeanClass)) {
-                //managed bean class found we drop the class from our session
-                removeBeanReferences(entry.getValue().getManagedBeanName());
-            }
-        }
-    }
-
-
-    /**
-     * helper to map the properties wherever possible
-     *
-     * @param target
-     * @param src
-     */
-    protected void mapProperties(Object target, Object src) {
-        try {
-
-            BeanUtils.copyProperties(target, src);
-        } catch (IllegalAccessException e) {
-            getLog().debug(e);
-            //this is wanted
-        } catch (InvocationTargetException e) {
-            getLog().debug(e);
-            //this is wanted
-        }
+    public Object reload(Object scriptingInstance, int artefactType) {
+        return scriptingInstance;
     }
 
-    private final Log getLog() {
-        return LogFactory.getLog(this.getClass());
-    }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/ObjectRefreshedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/ObjectRefreshedEvent.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/ObjectRefreshedEvent.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/ObjectRefreshedEvent.java
Tue Dec  8 23:47:16 2009
@@ -37,7 +37,7 @@
         _target = target;
     }
 
-    public ObjectRefreshedEvent( int artefactType, Object origin, Object target) {
+    public ObjectRefreshedEvent(int artefactType, Object origin, Object target) {
         super(origin.getClass().getName(), artefactType);
         _origin = origin;
         _target = target;

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/SystemEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/SystemEvent.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/SystemEvent.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/SystemEvent.java
Tue Dec  8 23:47:16 2009
@@ -6,6 +6,8 @@
  */
 public interface SystemEvent {
     public Integer getEventType();
+
     public String getAffectedClassName();
+
     public Integer getArtefactType();
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/AnnotatedArtefactLoadedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/AnnotatedArtefactLoadedEvent.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/AnnotatedArtefactLoadedEvent.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/AnnotatedArtefactLoadedEvent.java
Tue Dec  8 23:47:16 2009
@@ -23,7 +23,7 @@
  * @version $Revision$ $Date$
  */
 
-public class AnnotatedArtefactLoadedEvent extends BaseEvent  {
+public class AnnotatedArtefactLoadedEvent extends BaseEvent {
     private static final int EVT_TYPE_BEAN_ADDED = 1;
 
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java
Tue Dec  8 23:47:16 2009
@@ -42,7 +42,7 @@
     }
 
     public String getAffectedClassName() {
-        return _scannedClass;  
+        return _scannedClass;
     }
 
     public Integer getEventType() {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ClassRefreshedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ClassRefreshedEvent.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ClassRefreshedEvent.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ClassRefreshedEvent.java
Tue Dec  8 23:47:16 2009
@@ -23,7 +23,7 @@
  * @version $Revision$ $Date$
  */
 
-public class ClassRefreshedEvent extends BaseEvent  {
+public class ClassRefreshedEvent extends BaseEvent {
     public static final int EVT_TYPE_CLASSREFRESH = 2;
 
     public ClassRefreshedEvent(String className) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
Tue Dec  8 23:47:16 2009
@@ -18,7 +18,11 @@
  */
 package org.apache.myfaces.scripting.core.util;
 
+import org.apache.myfaces.scripting.loaders.java.util.DirStrategy;
+import org.apache.myfaces.scripting.loaders.java.util.FileStrategy;
+
 import java.io.File;
+import java.util.List;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -28,6 +32,9 @@
 public class FileUtils {
     static double _tempMarker = Math.random();
 
+
+    
+
     public static File getTempDir() {
         File tempDir = null;
 
@@ -98,4 +105,47 @@
             path.deleteOnExit();
         }
     }
+
+
+    /**
+     * fetches recursively the files under the current root
+     *
+     * @param sourcePath the source path from which the walker should start from
+     * @param fileType the pattern upon which the file has to be matched to aka *.java etc...
+     * @return
+     */
+    public static List&lt;File&gt; fetchSourceFiles(File sourcePath, String fileType) {
+        FileStrategy strategy = new FileStrategy(fileType);
+        listFiles(sourcePath, strategy);
+
+        return strategy.getFoundFiles();
+    }
+
+
+    /**
+     * fetches the source paths from a given root directory in the format
+     * &lt;path&gt;/&lt;appendix&gt;;...
+     *
+     * @param sourcePath the sourcePath from which the directory traversal should happen
from
+     * @param appendix the appendix which has to be appended to every path found
+     * @return a string builder of the paths found
+     */
+    public static StringBuilder fetchSourcePaths(File sourcePath,  String appendix) {
+        DirStrategy dirStrategy = new DirStrategy();
+        listFiles(sourcePath, dirStrategy);
+
+        StringBuilder sourcesList = new StringBuilder(512);
+
+        String root = sourcePath.getAbsolutePath();
+        int rootLen = root.length() + 1;
+        for (File foundDir : dirStrategy.getFoundFiles()) {
+            String dirName = foundDir.getAbsolutePath();
+            dirName = dirName.substring(rootLen);
+            sourcesList.append(dirName);
+            sourcesList.append( File.separator);
+            sourcesList.append(appendix);
+        }
+        sourcesList.append(appendix);
+        return sourcesList;
+    }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
Tue Dec  8 23:47:16 2009
@@ -113,6 +113,13 @@
     }
 
     /**
+     * some artefacts need a full request refresh
+     */
+    public static void doRequestRefreshes() {
+
+    }
+
+    /**
      * checks whether the system
      * has scripting enabled or not
      *

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
Tue Dec  8 23:47:16 2009
@@ -24,6 +24,11 @@
 import org.apache.myfaces.scripting.api.*;
 import org.apache.myfaces.scripting.core.util.ReflectUtil;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.refresh.FileChangedDaemon;
+import org.apache.myfaces.scripting.refresh.ReloadingMetadata;
+import org.apache.myfaces.config.element.ManagedBean;
+import org.apache.myfaces.config.RuntimeConfig;
 //import org.apache.myfaces.scripting.loaders.java.jsr199.ReflectCompilerFacade;
 
 import javax.servlet.ServletContext;
@@ -33,6 +38,8 @@
 import java.lang.reflect.InvocationTargetException;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
+import java.util.HashSet;
 
 /**
  * @author werpu
@@ -47,7 +54,7 @@
     DynamicClassIdentifier identifier = new DynamicClassIdentifier();
 
     private static final String JAVA_FILE_ENDING = ".java";
-    private static final String JSR199_COMPILER = "org.apache.myfaces.scripting.loaders.java.jsr199.CompilerFacade";
+    private static final String JSR199_COMPILER = "org.apache.myfaces.scripting.loaders.java.jsr199.JSR199Compiler";
     private static final String JAVA5_COMPILER = "org.apache.myfaces.scripting.loaders.java.jdk5.CompilerFacade";
 
     AnnotationScanner _scanner = null;
@@ -214,6 +221,74 @@
         markAsFullyRecompiled();
     }
 
+    public void requestRefresh() {
+        if (FileChangedDaemon.getInstance().getSystemRecompileMap().get(ScriptingConst.ENGINE_TYPE_JAVA))
{
+            fullRecompile();
+            //TODO if managed beans are tainted we have to do a full drop
+            refreshManagedBeans();
+        }
+    }
+
+    private void refreshManagedBeans() {
+        Set&lt;String&gt; tainted = new HashSet&lt;String&gt;();
+        for (Map.Entry&lt;String, ReloadingMetadata&gt; it : FileChangedDaemon.getInstance().getClassMap().entrySet())
{
+            if (it.getValue().getScriptingEngine() == ScriptingConst.ENGINE_TYPE_JAVA &amp;&amp;
it.getValue().isTainted()) {
+                tainted.add(it.getValue().getAClass().getName());
+            }
+        }
+        if (tainted.size() &gt; 0) {
+            boolean managedBeanTainted = false;
+            //We now have to check if the tainted classes belong to the managed beans
+            Set&lt;String&gt; managedBeanClasses = new HashSet&lt;String&gt;();
+            Map&lt;String, ManagedBean&gt; mbeans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
+            for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
+                managedBeanClasses.add(entry.getValue().getManagedBeanClassName());
+            }
+            for (String taintedClass : tainted) {
+                if (managedBeanClasses.contains(taintedClass)) {
+                    managedBeanTainted = true;
+                    break;
+                }
+            }
+            if (managedBeanTainted) {
+                for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
+                    Class managedBeanClass = entry.getValue().getManagedBeanClass();
+                    if (WeavingContext.isDynamic(managedBeanClass)) {
+                        //managed bean class found we drop the class from our session
+                        removeBeanReferences(entry.getValue());
+                    }
+                }
+
+            }
+        }
+    }
+
+    /**
+     * removes the references from out static scope
+     * for jsf2 we probably have some kind of notification mechanism
+     * which notifies custom scopes
+     *
+     * @param bean
+     */
+    private void removeBeanReferences(ManagedBean bean) {
+        getLog().info("JavaScriptingWeaver.removeBeanReferences(" + bean.getManagedBeanName()
+ ")");
+
+        String scope = bean.getManagedBeanScope();
+
+        if (scope != null &amp;&amp; scope.equalsIgnoreCase("session")) {
+            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(bean.getManagedBeanName());
+        } else if (scope != null &amp;&amp; scope.equalsIgnoreCase("application")) {
+            FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().remove(bean.getManagedBeanName());
+        } else if (scope != null) {
+            Object scopeImpl = FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get(scope);
+            if (scopeImpl == null) return; //scope not implemented
+            //we now have to revert to introspection here because scopes are a pure jsf2
construct
+            //so we use a messaging pattern here to cope with it
+            ReflectUtil.executeMethod(scopeImpl, "remove", bean.getManagedBeanName());
+        }
+    }
+    
+
     private void markAsFullyRecompiled() {
         FacesContext context = FacesContext.getCurrentInstance();
         if (context != null) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
Tue Dec  8 23:47:16 2009
@@ -4,7 +4,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.core.util.FileUtils;
-import org.apache.myfaces.scripting.loaders.java.util.DirStrategy;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 import java.io.File;
 import java.io.PrintWriter;
@@ -45,7 +45,6 @@
      * The class reference to the internal Javac compiler.
      */
     private Class compilerClass;
-    private static final String JAVA_WILDCARD = "*.java ";
 
     // ------------------------------------------ Constructors
 
@@ -174,21 +173,7 @@
      * @return an array of arguments that you have to pass to the Javac compiler
      */
     protected String[] buildCompilerArguments(File sourcePath, File targetPath, String classPath)
{
-        DirStrategy dirStrategy = new DirStrategy();
-        FileUtils.listFiles(sourcePath, dirStrategy);
-
-        StringBuilder sourcesList = new StringBuilder(512);
-
-        String root = sourcePath.getAbsolutePath();
-        int rootLen = root.length() + 1;
-        for (File foundDir : dirStrategy.getFoundFiles()) {
-            String dirName = foundDir.getAbsolutePath();
-            dirName = dirName.substring(rootLen);
-            sourcesList.append(dirName);
-            sourcesList.append(File.separator);
-            sourcesList.append(JAVA_WILDCARD);
-        }
-        sourcesList.append(JAVA_WILDCARD);
+        StringBuilder sourcesList = FileUtils.fetchSourcePaths(sourcePath, ScriptingConst.JAVA_WILDCARD);
 
         List arguments = getDefaultArguments(sourcePath, targetPath, classPath);
 

Copied: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
(from r888631, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java?p2=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java&amp;p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java&amp;r1=888631&amp;r2=888632&amp;rev=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
Tue Dec  8 23:47:16 2009
@@ -22,8 +22,12 @@
 
 import java.util.List;
 import java.util.LinkedList;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
 import java.io.File;
 
+import com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression;
+
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
@@ -32,14 +36,27 @@
  *          so that we can recompile them
  */
 
-public class JavaFileStrategy implements Strategy {
+public class FileStrategy implements Strategy {
+    Pattern rePattern;
+
+    public FileStrategy( String pattern) {
+        pattern = pattern.replace("\\.", "\\.");
+        pattern = "^.*"+pattern+"$";
+
+
+        rePattern = Pattern.compile("[+-]?[0-9]+");
+
+    }
+
 
     List&lt;File&gt; _foundFiles = new LinkedList&lt;File&gt;();
 
     public void apply(Object element) {
         File foundFile = (File) element;
         String fileName = foundFile.getName().toLowerCase();
-        if (!fileName.endsWith(".java")) return;
+        Matcher matcher = rePattern.matcher(fileName);
+
+        if (!matcher.matches()) return;
         _foundFiles.add(foundFile);
     }
 

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/FileStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java?rev=888632&amp;r1=888631&amp;r2=888632&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
(original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
Tue Dec  8 23:47:16 2009
@@ -31,7 +31,7 @@
 /**
  * @author werpu
  *         Reimplementation of the file changed daemon thread
- *         in java, the original one was done in groovy
+ *         in java. The original one was done in groovy
  *         this threads purpose is to watch the files
  *         loaded by the various engine loaders for
  *         for file changes and then if one has changed we have to mark
@@ -42,15 +42,6 @@
 
     static FileChangedDaemon instance = null;
 
-    //TODO replace the synchronized map with a segmented map to reduce
-    //the number of synchronisation locks on parallel access
-    //we have to have in mind that the compiler facades access this map
-    //in a writable way as well to update their meta data so we
-    //should replace the map with something segmented, probably
-    //a balanced tree of depth 2
-
-    // ConcurrentHashMap&lt;String, Renderer&gt;(8, 0.75f, 1)
-    // segmented map here because we have to deal with multithreaded access
     Map&lt;String, ReloadingMetadata&gt; classMap = new ConcurrentHashMap&lt;String, ReloadingMetadata&gt;(8,
0.75f, 1);
 
     /**
@@ -105,15 +96,15 @@
                 if (!it.getValue().isTainted()) {
 
                     File proxyFile = new File(it.getValue().getSourcePath() + File.separator
+ it.getValue().getFileName());
-                    it.getValue().setTainted(proxyFile.lastModified() != it.getValue().getTimestamp());
-                    if (it.getValue().isTainted()) {
+                    if(!it.getValue().isTainted() &amp;&amp; isModified(it, proxyFile)) {
+                        it.getValue().setTainted(true);
+
                         systemRecompileMap.put(it.getValue().getScriptingEngine(), Boolean.TRUE);
                         it.getValue().setTaintedOnce(true);
                         printInfo(it, proxyFile);
+                        it.getValue().setTimestamp(proxyFile.lastModified());
                     }
-                    it.getValue().setTimestamp(proxyFile.lastModified());
-
-                }
+               }
             }
         }
         if (log.isInfoEnabled()) {
@@ -121,6 +112,10 @@
         }
     }
 
+    private final boolean isModified(Map.Entry&lt;String, ReloadingMetadata&gt; it, File
proxyFile) {
+        return proxyFile.lastModified() != it.getValue().getTimestamp();
+    }
+
     private void printInfo(Map.Entry&lt;String, ReloadingMetadata&gt; it, File proxyFile)
{
         if (log.isInfoEnabled()) {
             log.info("comparing" + it.getKey() + "Dates:" + proxyFile.lastModified() + "-"
+ it.getValue().getTimestamp());




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888631 - in /myfaces/extensions/scripting/trunk/core: core/src/main/java/org/apache/myfaces/scripting/api/ core/src/main/java/org/apache/myfaces/scripting/core/ core/src/main/java/org/apache/myfaces/scripting/core/reloading/ core/src/main/...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208234537.8E627238889B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208234537-8E627238889B@eris-apache-org%3e</id>
<updated>2009-12-08T23:45:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:45:35 2009
New Revision: 888631

URL: http://svn.apache.org/viewvc?rev=888631&amp;view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-20
added artefact type extensions in our loader apis so that various strategies can be applied for reloading
depending on the artefact type

Added:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Unreloadable.java   (with props)
Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanLoadedEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanRemovedEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyLoadedEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyRemovedEvent.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java Tue Dec  8 23:45:35 2009
@@ -78,7 +78,7 @@
      * @param scriptingInstance the object which has to be reloaded
      * @return the reloaded object with all properties transferred or the original object if no reloading was needed
      */
-    public Object reloadScriptingInstance(Object scriptingInstance) {
+    public Object reloadScriptingInstance(Object scriptingInstance, int artefactType) {
         Map&lt;String, ReloadingMetadata&gt; classMap = getClassMap();
         if (classMap.size() == 0) {
             return scriptingInstance;
@@ -91,7 +91,7 @@
         //not tained even once == not even considered to be reloaded
         if (isReloadCandidate(reloadMeta)) {
 
-            Object reloaded = _reloadingStrategy.reload(scriptingInstance);
+            Object reloaded = _reloadingStrategy.reload(scriptingInstance, artefactType);
             if (reloaded != null) {
                 return reloaded;
             }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java Tue Dec  8 23:45:35 2009
@@ -12,5 +12,5 @@
  * 
  */
 public interface ReloadingStrategy {
-    public Object reload(Object toReload);
+    public Object reload(Object toReload, int artefactType);
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java Tue Dec  8 23:45:35 2009
@@ -36,4 +36,27 @@
     public static final int ENGINE_TYPE_NO_ENGINE = -1;
     public static final int ENGINE_TYPE_GROOVY = 0;
     public static final int ENGINE_TYPE_JAVA = 1;
+    public static final int ARTEFACT_TYPE_UNKNOWN = -1;
+    public static final int ARTEFACT_TYPE_MANAGEDBEAN = 1;
+    public static final int ARTEFACT_TYPE_MANAGEDPROPERTY = 2;
+    public static final int ARTEFACT_TYPE_RENDERKIT = 3;
+    public static final int ARTEFACT_TYPE_VIEWHANDLER = 4;
+    public static final int ARTEFACT_TYPE_RENDERER = 5;
+    public static final int ARTEFACT_TYPE_COMPONENT = 6;
+    public static final int ARTEFACT_TYPE_VALIDATOR = 7;
+    public static final int ARTEFACT_TYPE_BEHAVIOR = 8;
+    public static final int ARTEFACT_TYPE_APPLICATION = 9;
+    public static final int ARTEFACT_TYPE_ELCONTEXTLISTENER = 10;
+    public static final int ARTEFACT_TYPE_ACTIONLISTENER = 11;
+    public static final int ARTEFACT_TYPE_VALUECHANGELISTENER = 12;
+    public static final int ARTEFACT_TYPE_CONVERTER = 13;
+    public static final int ARTEFACT_TYPE_LIFECYCLE = 14;
+    public static final int ARTEFACT_TYPE_PHASELISTENER = 15;
+    public static final int ARTEFACT_TYPE_FACESCONTEXT = 16;
+    public static final int ARTEFACT_TYPE_NAVIGATIONHANDLER = 17;
+    public static final int ARTEFACT_TYPE_RESPONSEWRITER = 18;
+    public static final int ARTEFACT_TYPE_RESPONSESTREAM = 19;
+    public static final int ARTEFACT_TYPE_RESOURCEHANDLER = 19;
+    public static final int ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER = 20;
+
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java Tue Dec  8 23:45:35 2009
@@ -41,7 +41,14 @@
 
 
     /**
-     * @param o
+     * @param o the object which has to be reloaded
+     * @param artefactType an identifier for the artefact type so that its reloading strategies can
+     * be adjusted depending on the type of artefact which has to be processed, we have to pass down
+     * this artefact because we cannot rely on instanceof here for several reasons first we do not know
+     * if a managed bean does not implement as well one of the artefact interfaces for one reason or the other
+     * secondly how do we deal with future extensions which provide new artefacts we cannot
+     * bind the code to just one implementation, hence we add some kind of type identifier here as well
+     * 
      * 
      * @return reloads an existing objects with its attributes
      *         and assigns the reloaded class to the new object
@@ -49,7 +56,7 @@
      *         note, the new object must not be the same as the original one
      *         it can be a shallow clone with a new class instead
      */
-    public Object reloadScriptingInstance(Object o);
+    public Object reloadScriptingInstance(Object o, int artefactType);
 
     /**
      * reloads an existing class if needed

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Unreloadable.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Unreloadable.java?rev=888631&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Unreloadable.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Unreloadable.java Tue Dec  8 23:45:35 2009
@@ -0,0 +1,18 @@
+package org.apache.myfaces.scripting.api;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ * &lt;p&gt;
+ * This interface can be used by managed beans
+ * to prevent reloading.
+ * &lt;/p&gt;
+ * &lt;p&gt;
+ * The managed bean reloading strategy is very aggressive
+ * it drops all dynamic managed beans out of the corresponding
+ * scopes if possible to enforce a clean reload wherever possible.
+ * &lt;/p&gt;
+ */
+public interface Unreloadable {
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Unreloadable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/Unreloadable.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java Tue Dec  8 23:45:35 2009
@@ -53,14 +53,14 @@
         throw new RuntimeException("Method not supported from this facade");
     }
 
-    public Object reloadScriptingInstance(Object o) {
+    public Object reloadScriptingInstance(Object o,int artefactType) {
         if (o.getClass().getName().contains("TestBean2")) {
             System.out.println("Debugpoint found");
         }
 
         for (ScriptingWeaver weaver : _weavers) {
             if (weaver.isDynamic(o.getClass())) {
-                return weaver.reloadScriptingInstance(o);
+                return weaver.reloadScriptingInstance(o, artefactType);
             }
         }
         return o;

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/DummyWeaver.java Tue Dec  8 23:45:35 2009
@@ -40,7 +40,7 @@
     public void appendCustomScriptPath(String scriptPaths) {
     }
 
-    public Object reloadScriptingInstance(Object o) {
+    public Object reloadScriptingInstance(Object o, int artefactType) {
         return o;  
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java Tue Dec  8 23:45:35 2009
@@ -41,10 +41,12 @@
  */
 public class MethodLevelReloadingHandler extends ReloadingInvocationHandler implements  Serializable {
     ScriptingWeaver _weaver = null;
+    int _artefactType;
 
-    public MethodLevelReloadingHandler(Object rootObject) {
+    public MethodLevelReloadingHandler(Object rootObject, int artefactType) {
         _loadedClass = rootObject.getClass();
         _delegate = rootObject;
+        _artefactType = artefactType;
     }
 
 
@@ -85,7 +87,7 @@
             _delegate = (_weaver.reloadScriptingClass(_loadedClass)).newInstance();
         } else {
             //if we are stateful only a tainted artefact is reloaded
-            _delegate = _weaver.reloadScriptingInstance(_delegate);
+            _delegate = _weaver.reloadScriptingInstance(_delegate, _artefactType);
 
             //we work our way through all proxies and fetch the class for further reference
             Object delegate = WeavingContext.getDelegateFromProxy(_delegate);

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java Tue Dec  8 23:45:35 2009
@@ -18,8 +18,9 @@
  */
 package org.apache.myfaces.scripting.core.reloading;
 
-import org.apache.myfaces.scripting.api.ReloadingStrategy;
 import org.apache.myfaces.scripting.api.BaseWeaver;
+import org.apache.myfaces.scripting.api.ReloadingStrategy;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -43,9 +44,22 @@
         _allOthers = new SimpleReloadingStrategy(weaver);
     }
 
-    public Object reload(Object toReload) {
-        //TODO add the managed bean identification code here
-        //so that we can switch strategies on the fly
-        return _allOthers.reload(toReload);
+    /**
+     * the strategy callback which switches between various strategies
+     * we have in our system
+     *
+     * @param toReload
+     * @param artefactType
+     * @return
+     */
+    public Object reload(Object toReload, int artefactType) {
+
+        switch (artefactType) {
+            case ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN:
+                return _beanStrategy.reload(toReload, artefactType);
+            //TODO Add other artefact loading strategies on demand here
+            default:
+                return _allOthers.reload(toReload, artefactType);
+        }
     }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java Tue Dec  8 23:45:35 2009
@@ -20,6 +20,7 @@
 
 import org.apache.myfaces.scripting.api.ReloadingStrategy;
 import org.apache.myfaces.scripting.api.BaseWeaver;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.config.element.ManagedBean;
 import org.apache.myfaces.config.RuntimeConfig;
 import org.apache.commons.beanutils.BeanUtils;
@@ -38,8 +39,11 @@
  * @version $Revision$ $Date$
  *          &lt;p/&gt;
  *          The managed beans have a different reloading
- *          strategy, TODO
- *          we have to figure out which strategy to follow
+ *          strategy. We follow the route of dropping
+ *          all dynamic beans for now which seems to be a middle ground
+ *          between simple (do nothing at all except simple bean reloading)
+ *          and graph dependency check (drop only the dependend objects and the
+ *          referencing objects)
  */
 
 public class ManagedBeanReloadingStrategy implements ReloadingStrategy {
@@ -47,38 +51,20 @@
     BaseWeaver _weaver;
     Map&lt;String, List&lt;ManagedBean&gt;&gt; _managedBeanIdx = null;
 
+    static final String RELOAD_PERFORMED = "beanReloadPerformed";
+
 
     public ManagedBeanReloadingStrategy(BaseWeaver weaver) {
         _weaver = weaver;
-        buildupManagedBeanIdx();
     }
 
-
-    private void buildupManagedBeanIdx() {
-        /**
-         * we build up a reverse index for the managed beans to resolve
-         * make it easier for dependency reloading
-         * the current loading strategy is simple
-         * normal attribute, we do shift from the old object to the new one
-         * managed bean we refresh on the managed bean as well
-         * we need the reverse index to identify whether the attribute class justifies for being a
-         * managed bean or not
-         */
-        _managedBeanIdx = new HashMap&lt;String, List&lt;ManagedBean&gt;&gt;();
-        Map&lt;String, ManagedBean&gt; beans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
-        for (Map.Entry&lt;String, ManagedBean&gt; entry : beans.entrySet()) {
-            String className = entry.getValue().getManagedBeanClassName();
-            if (!_managedBeanIdx.containsKey(className)) {
-                List&lt;ManagedBean&gt; beanListForClass = new ArrayList&lt;ManagedBean&gt;();
-                _managedBeanIdx.put(className, beanListForClass);
-                beanListForClass.add(entry.getValue());
-            } else {
-                _managedBeanIdx.get(className).add(entry.getValue());
-            }
+    public Object reload(Object scriptingInstance, int artefactType) {
+        Map requestMap = WeavingContext.getRequestAttributesMap();
+        //only one reload per request allowed
+        if (requestMap != null &amp;&amp; requestMap.containsKey(RELOAD_PERFORMED)) {
+            return scriptingInstance;
         }
-    }
 
-    public Object reload(Object scriptingInstance) {
         //TODO build up the managed bean idx at request time or make a request blocker
         //so that we build up the idx only once per request
 
@@ -89,6 +75,10 @@
             // reload is enabled we can skip the rest now
             return scriptingInstance;
         }
+
+        reloadAllDynamicBeans();
+
+
         getLog().info("possible reload for " + scriptingInstance.getClass().getName());
         /*only recreation of empty constructor classes is possible*/
         try {
@@ -97,8 +87,12 @@
             Object newObject = aclass.newInstance();
 
             /*now we shuffle the properties between the objects*/
+            //TODO remove this we wont need it anymore for now
             mapProperties(newObject, scriptingInstance);
 
+            if (requestMap != null) {
+                requestMap.put(RELOAD_PERFORMED, Boolean.TRUE);
+            }
             return newObject;
         } catch (Exception e) {
             getLog().error(e);
@@ -107,6 +101,32 @@
 
     }
 
+    private void removeBeanReferences(String beanName) {
+        getLog().info("ManagedBeanReloadingStrategy.removeBeanReferences(" + beanName + ")");
+    }
+
+
+    /**
+     * the simplest solution for now is to dump and reload
+     * all managed beans via the config
+     * ie - we drop the managed beans from all the request, session
+     * and application scope for now by checking the bean maps
+     * for their names and removing the corresponding beans unless they implement
+     * a non droppable annotation
+     */
+    private void reloadAllDynamicBeans() {
+        //TODO iterate over the bean list, identify which classes are dynamic and drop those
+        //via their bean names
+        Map&lt;String, ManagedBean&gt; mbeans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
+        for (Map.Entry&lt;String, ManagedBean&gt; entry : mbeans.entrySet()) {
+            Class managedBeanClass = entry.getValue().getManagedBeanClass();
+            if (WeavingContext.isDynamic(managedBeanClass)) {
+                //managed bean class found we drop the class from our session
+                removeBeanReferences(entry.getValue().getManagedBeanName());
+            }
+        }
+    }
+
 
     /**
      * helper to map the properties wherever possible
@@ -116,7 +136,6 @@
      */
     protected void mapProperties(Object target, Object src) {
         try {
-            
 
             BeanUtils.copyProperties(target, src);
         } catch (IllegalAccessException e) {
@@ -128,7 +147,7 @@
         }
     }
 
-    protected Log getLog() {
+    private final Log getLog() {
         return LogFactory.getLog(this.getClass());
     }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java Tue Dec  8 23:45:35 2009
@@ -30,6 +30,13 @@
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
+ *          &lt;p/&gt;
+ *          A simple implementation of our reloading strategy
+ *          pattern this is the most basic implementation
+ *          covering our reloading.
+ *          &lt;p/&gt;
+ *          Applicable for most artefacts except for now managed beans
+ *          &lt;p/&gt;
  */
 
 public class SimpleReloadingStrategy implements ReloadingStrategy {
@@ -40,7 +47,18 @@
         _weaver = weaver;
     }
 
-    public Object reload(Object scriptingInstance) {
+    /**
+     * &lt;p&gt;
+     * the central callback for our strategy here
+     * it has to handle the reload of the scriptingInstance
+     * if possible, otherwise it has to return the
+     * original object if no reload was necessary or possible
+     * &lt;/p&gt;
+     *
+     * @param scriptingInstance the instance to be reloaded by the system
+     * @return either the same object or a new instance utilizing the changed code
+     */
+    public Object reload(Object scriptingInstance, int artefactType) {
 
         //reload the class to get new static content if needed
         Class aclass = _weaver.reloadScriptingClass(scriptingInstance.getClass());
@@ -64,12 +82,17 @@
             getLog().error(e);
         }
         return null;
-        
+
     }
 
 
     /**
      * helper to map the properties wherever possible
+     * &lt;p/&gt;
+     * This is the simplest solution for now,
+     * we apply only a copy properties here, which should be enough
+     * for all artefacts except the managed beans and the ones
+     * which have to preserve some kind of delegate before instantiation.
      *
      * @param target
      * @param src

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BaseEvent.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.core.scanEvents.events;
 
 import org.apache.myfaces.scripting.core.scanEvents.SystemEvent;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -27,19 +28,9 @@
 
 public abstract class BaseEvent implements SystemEvent {
 
-    public static final int ARTEFACT_TYPE_UNKNOWN = -1;
-    public static final int ARTEFACT_TYPE_MANAGEDBEAN = 1;
-    public static final int ARTEFACT_TYPE_MANAGEDPROPERTY = 2;
-    public static final int ARTEFACT_TYPE_RENDERKIT = 3;
-    public static final int ARTEFACT_TYPE_VIEWHANDLER = 4;
-    public static final int ARTEFACT_TYPE_RENDERER = 5;
-    public static final int ARTEFACT_TYPE_COMPONENT = 6;
-    public static final int ARTEFACT_TYPE_VALIDATOR = 7;
-    public static final int ARTEFACT_TYPE_BEHAVIOR = 8;
-
 
     private String _scannedClass = null;
-    private int _artefactType = ARTEFACT_TYPE_UNKNOWN;
+    private int _artefactType = ScriptingConst.ARTEFACT_TYPE_UNKNOWN;
 
     protected BaseEvent(String scannedClass) {
         _scannedClass = scannedClass;

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanLoadedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanLoadedEvent.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanLoadedEvent.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanLoadedEvent.java Tue Dec  8 23:45:35 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.scripting.core.scanEvents.events;
 
+import org.apache.myfaces.scripting.api.ScriptingConst;
+
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
@@ -27,7 +29,7 @@
     String _beanName;
 
     public BeanLoadedEvent(String affectedClass, String beanName) {
-        super(affectedClass, ARTEFACT_TYPE_MANAGEDBEAN);
+        super(affectedClass, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
         _beanName = beanName;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanRemovedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanRemovedEvent.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanRemovedEvent.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/BeanRemovedEvent.java Tue Dec  8 23:45:35 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.scripting.core.scanEvents.events;
 
+import org.apache.myfaces.scripting.api.ScriptingConst;
+
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
@@ -27,7 +29,7 @@
     String _beanName;
 
     public BeanRemovedEvent(String affectedClass, String beanName) {
-        super(affectedClass, ARTEFACT_TYPE_MANAGEDBEAN);
+        super(affectedClass, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
         _beanName = beanName;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyLoadedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyLoadedEvent.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyLoadedEvent.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyLoadedEvent.java Tue Dec  8 23:45:35 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.scripting.core.scanEvents.events;
 
+import org.apache.myfaces.scripting.api.ScriptingConst;
+
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
@@ -28,7 +30,7 @@
     String _propertyName;
 
     public ManagedPropertyLoadedEvent(String affectedClass, String propertyName) {
-        super(affectedClass, ARTEFACT_TYPE_MANAGEDPROPERTY);
+        super(affectedClass, ScriptingConst.ARTEFACT_TYPE_MANAGEDPROPERTY);
         _propertyName = propertyName;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyRemovedEvent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyRemovedEvent.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyRemovedEvent.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/scanEvents/events/ManagedPropertyRemovedEvent.java Tue Dec  8 23:45:35 2009
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.scripting.core.scanEvents.events;
 
+import org.apache.myfaces.scripting.api.ScriptingConst;
+
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
@@ -27,7 +29,7 @@
     String _propertyName;
 
     public ManagedPropertyRemovedEvent(String affectedClass, String propertyName) {
-        super(affectedClass, ARTEFACT_TYPE_MANAGEDPROPERTY);
+        super(affectedClass, ScriptingConst.ARTEFACT_TYPE_MANAGEDPROPERTY);
         _propertyName = propertyName;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java Tue Dec  8 23:45:35 2009
@@ -78,7 +78,7 @@
      *
      * @return the request map if available, null otherwise
      */
-    public Map&lt;String, Object&gt; getRequestAttributesMap() {
+    public static Map&lt;String, Object&gt; getRequestAttributesMap() {
         FacesContext ctx = FacesContext.getCurrentInstance();
         if (ctx == null) return null;
         return ctx.getExternalContext().getRequestMap();
@@ -152,10 +152,10 @@
      * @param theInterface the proxying interface
      * @return a proxied reloading object of type theInterface
      */
-    public static Object createMethodReloadingProxyFromObject(Object o, Class theInterface) {
+    public static Object createMethodReloadingProxyFromObject(Object o, Class theInterface, int artefactType) {
         return Proxy.newProxyInstance(o.getClass().getClassLoader(),
                                       new Class[]{theInterface},
-                                      new MethodLevelReloadingHandler(o));
+                                      new MethodLevelReloadingHandler(o, artefactType));
     }
 
     /**
@@ -167,10 +167,10 @@
      * @param theInterface
      * @return
      */
-    public static Object createConstructorReloadingProxyFromObject(Object o, Class theInterface) {
+    public static Object createConstructorReloadingProxyFromObject(Object o, Class theInterface, int artefactType) {
         return Proxy.newProxyInstance(o.getClass().getClassLoader(),
                                       new Class[]{theInterface},
-                                      new MethodLevelReloadingHandler(o));
+                                      new MethodLevelReloadingHandler(o, artefactType));
     }
 
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java Tue Dec  8 23:45:35 2009
@@ -42,7 +42,6 @@
 
      public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
 
-         WeavingContext.cleanOnRequest();
          WeavingContext.setWeaver(context.getAttribute("ScriptingWeaver"));
          filterChain.doFilter(servletRequest, servletResponse);
      }

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java Tue Dec  8 23:45:35 2009
@@ -75,7 +75,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (Application) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Application) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_APPLICATION);
         }
     }
 
@@ -112,7 +112,7 @@
          */
         if (WeavingContext.isDynamic(component.getClass()) &amp;&amp; !alreadyWovenInRequest(component.toString())) {
             /*once it was tainted we have to recreate all the time*/
-            component = (UIComponent) WeavingContext.getWeaver().reloadScriptingInstance(component);
+            component = (UIComponent) WeavingContext.getWeaver().reloadScriptingInstance(component, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
             alreadyWovenInRequest(component.toString());
         }
         return component;
@@ -127,7 +127,7 @@
     public void addELContextListener(ELContextListener elContextListener) {
         weaveDelegate();
         if (WeavingContext.isDynamic(elContextListener.getClass()))
-            elContextListener = (ELContextListener) WeavingContext.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class);
+            elContextListener = (ELContextListener) WeavingContext.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class, ScriptingConst.ARTEFACT_TYPE_ELCONTEXTLISTENER);
         _delegate.addELContextListener(elContextListener);
     }
 
@@ -148,7 +148,7 @@
         //good place for a dynamic reloading check as well
         Object retVal = _delegate.evaluateExpressionGet(facesContext, s, aClass);
         if (WeavingContext.isDynamic(retVal.getClass()))
-            retVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal);
+            retVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
         return retVal;
     }
 
@@ -156,14 +156,14 @@
         weaveDelegate();
         ActionListener retVal = _delegate.getActionListener();
         if (WeavingContext.isDynamic(retVal.getClass()))
-            retVal = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(retVal, ActionListener.class);
+            retVal = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(retVal, ActionListener.class, ScriptingConst.ARTEFACT_TYPE_ACTIONLISTENER);
         return retVal;
     }
 
     public void setActionListener(ActionListener actionListener) {
         weaveDelegate();
         if (WeavingContext.isDynamic(actionListener.getClass()))
-            actionListener = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(actionListener, ActionListener.class);
+            actionListener = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(actionListener, ActionListener.class, ScriptingConst.ARTEFACT_TYPE_ACTIONLISTENER);
         _delegate.setActionListener(actionListener);
     }
 
@@ -289,7 +289,7 @@
         * code, in the renderer we do it on method base
         * due to the fact that our renderers are recycled via
         * a flyweight pattern*/
-        return (UIComponent) reloadInstance(component);
+        return (UIComponent) reloadInstance(component, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
     }
 
     public UIComponent createComponent(ValueBinding valueBinding, FacesContext facesContext, String s) throws FacesException {
@@ -301,7 +301,7 @@
          * code, in the renderer we do it on method base
          * due to the fact that our renderers are recycled via
          * a flyweight pattern*/
-        return (UIComponent) reloadInstance(component);
+        return (UIComponent) reloadInstance(component, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
     }
 
     public Iterator&lt;String&gt; getComponentTypes() {
@@ -331,7 +331,7 @@
          * reloading objects at their interception points
          */
         if (WeavingContext.isDynamic(retVal.getClass())) {
-            retVal = (Converter) WeavingContext.createMethodReloadingProxyFromObject(retVal, Converter.class);
+            retVal = (Converter) WeavingContext.createMethodReloadingProxyFromObject(retVal, Converter.class, ScriptingConst.ARTEFACT_TYPE_CONVERTER);
 
         }
 
@@ -342,7 +342,7 @@
         weaveDelegate();
         Converter retVal = _delegate.createConverter(aClass);
         if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
-            retVal = (Converter) WeavingContext.createMethodReloadingProxyFromObject(retVal, Converter.class);
+            retVal = (Converter) WeavingContext.createMethodReloadingProxyFromObject(retVal, Converter.class, ScriptingConst.ARTEFACT_TYPE_CONVERTER);
         }
 
         return retVal;
@@ -384,7 +384,7 @@
 
         Validator retVal = _delegate.createValidator(s);
         if (WeavingContext.isDynamic(retVal.getClass()) &amp;&amp; !Proxy.isProxyClass(retVal.getClass())) {
-            retVal = (Validator) WeavingContext.createMethodReloadingProxyFromObject(retVal, Validator.class);
+            retVal = (Validator) WeavingContext.createMethodReloadingProxyFromObject(retVal, Validator.class, ScriptingConst.ARTEFACT_TYPE_VALIDATOR);
         }
         return retVal;
     }
@@ -404,12 +404,12 @@
         return _delegate;  //To change body of implemented methods use File | Settings | File Templates.
     }
 
-    private final Object reloadInstance(Object instance) {
+    private final Object reloadInstance(Object instance, int artefactType) {
         if (instance == null) {
             return null;
         }
         if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
-            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance, artefactType);
             alreadyWovenInRequest(instance.toString());
         }
         return instance;

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java Tue Dec  8 23:45:35 2009
@@ -32,10 +32,10 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEventListener;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEvent;
-import org.apache.myfaces.scripting.core.scanEvents.events.BeanLoadedEvent;
 
 /**
  * EL Resolver which is scripting enabled
@@ -55,7 +55,7 @@
         if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
 
 
-            Object newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal); /*once it was tainted or loaded by
+            Object newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN); /*once it was tainted or loaded by
                  our classloader we have to recreate all the time to avoid classloader issues*/
             if (newRetVal != retVal) {
                 _delegate.setValue(elContext, base, property, newRetVal);
@@ -104,7 +104,7 @@
 
     public Set&lt;Integer&gt; supportsEvents() {
         Set&lt;Integer&gt; supports = new HashSet&lt;Integer&gt;();
-        supports.add(BeanLoadedEvent.ARTEFACT_TYPE_MANAGEDBEAN);
+        supports.add(ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
 
         return supports;  //To change body of implemented methods use File | Settings | File Templates.
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.FacesContext;
@@ -50,7 +51,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null)
-            _delegate = (FacesContext) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (FacesContext) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_FACESCONTEXT);
     }
 
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.lifecycle.Lifecycle;
@@ -37,7 +38,7 @@
 
     private void weaveDelegate() {
         if(_delegate != null)
-            _delegate = (Lifecycle) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Lifecycle) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_LIFECYCLE);
     }
 
 
@@ -49,7 +50,7 @@
         weaveDelegate();
         /*we can put our object weaving code into the add here*/
         if (WeavingContext.isDynamic(phaseListener.getClass()))
-            phaseListener = (PhaseListener)  WeavingContext.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class);
+            phaseListener = (PhaseListener)  WeavingContext.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class,ScriptingConst.ARTEFACT_TYPE_PHASELISTENER);
 
         _delegate.addPhaseListener(phaseListener);
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.NavigationHandler;
@@ -32,7 +33,7 @@
 public class NavigationHandlerProxy extends NavigationHandler implements Decorated {
 
     private void weaveDelegate() {
-        _delegate = (NavigationHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (NavigationHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_NAVIGATIONHANDLER);
     }
 
     public NavigationHandlerProxy(NavigationHandler delegate) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java Tue Dec  8 23:45:35 2009
@@ -53,13 +53,13 @@
         weaveDelegate();
         //wo do it brute force here because we have sometimes casts and hence cannot rely on proxies
         //renderers itself are flyweight patterns which means they are shared over objects
-        renderer = (Renderer) reloadInstance(renderer);
+        renderer = (Renderer) reloadInstance(renderer, ScriptingConst.ARTEFACT_TYPE_RENDERER);
         _delegate.addRenderer(s, s1, renderer);
     }
 
     public Renderer getRenderer(String s, String s1) {
         weaveDelegate();
-        return  (Renderer) reloadInstance(_delegate.getRenderer(s, s1));
+        return  (Renderer) reloadInstance(_delegate.getRenderer(s, s1), ScriptingConst.ARTEFACT_TYPE_RENDERER);
     }
 
     public ResponseStateManager getResponseStateManager() {
@@ -69,12 +69,12 @@
 
     public ResponseWriter createResponseWriter(Writer writer, String s, String s1) {
         weaveDelegate();
-        return (ResponseWriter) reloadInstance(_delegate.createResponseWriter(writer, s, s1));
+        return (ResponseWriter) reloadInstance(_delegate.createResponseWriter(writer, s, s1), ScriptingConst.ARTEFACT_TYPE_RESPONSEWRITER);
     }
 
     public ResponseStream createResponseStream(OutputStream outputStream) {
         weaveDelegate();
-        return (ResponseStream) reloadInstance( _delegate.createResponseStream(outputStream));
+        return (ResponseStream) reloadInstance( _delegate.createResponseStream(outputStream), ScriptingConst.ARTEFACT_TYPE_RESPONSESTREAM);
     }
 
     public Object getDelegate() {
@@ -83,15 +83,15 @@
 
 
      private final void weaveDelegate() {
-        _delegate = (RenderKit) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (RenderKit) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_RENDERKIT);
     }
 
-    private final Object reloadInstance(Object instance) {
+    private final Object reloadInstance(Object instance, int artefactType) {
         if(instance == null) {
             return null;
         }
         if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
-            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance, artefactType);
             alreadyWovenInRequest(instance.toString());
         }
         return instance;

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.el.VariableResolver;
@@ -41,7 +42,7 @@
     public Object resolveVariable(FacesContext facesContext, String s) throws EvaluationException {
         Object variable = _delegate.resolveVariable(facesContext, s);
         if (WeavingContext.isDynamic(variable.getClass()))
-            variable = WeavingContext.getWeaver().reloadScriptingInstance(variable);
+            variable = WeavingContext.getWeaver().reloadScriptingInstance(variable, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
         return variable;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.ViewHandler;
@@ -39,7 +40,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (ViewHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (ViewHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_VIEWHANDLER);
         }
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java Tue Dec  8 23:45:35 2009
@@ -39,17 +39,13 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
+ * @author Werner Punz
+ *
  * our decorating applicstion
  * which should resolve our bean issues within a central
  * bean processing interceptor
- * &lt;p/&gt;
- * &lt;p/&gt;
- * TODO at component reload via annotations the component family is lost
- * locate where it is and then add the family handling here
- * so that it is set again!
- * (Line 490 it is lost)
  *
- * @author Werner Punz
+
  */
 public class ApplicationProxy extends Application implements Decorated {
 
@@ -90,7 +86,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (Application) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Application) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_APPLICATION);
         }
     }
 
@@ -128,7 +124,7 @@
         * maybe in the long run we can make a decorator here instead
         * but for now lets try it this way
         */
-        component = (UIComponent) reloadInstance(component);
+        component = (UIComponent) reloadInstance(component, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
 
         //we now have to check for an annotation change, but only in case a reload has happened
         if (component.getClass().hashCode() != oldComponent.getClass().hashCode()) {
@@ -148,7 +144,7 @@
     public void addELContextListener(ELContextListener elContextListener) {
         weaveDelegate();
         if (WeavingContext.isDynamic(elContextListener.getClass()))
-            elContextListener = (ELContextListener) WeavingContext.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class);
+            elContextListener = (ELContextListener) WeavingContext.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class, ScriptingConst.ARTEFACT_TYPE_ELCONTEXTLISTENER);
         _delegate.addELContextListener(elContextListener);
     }
 
@@ -169,14 +165,14 @@
         weaveDelegate();
         ActionListener retVal = _delegate.getActionListener();
         if (WeavingContext.isDynamic(retVal.getClass()))
-            retVal = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(retVal, ActionListener.class);
+            retVal = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(retVal, ActionListener.class, ScriptingConst.ARTEFACT_TYPE_ACTIONLISTENER);
         return retVal;
     }
 
     public void setActionListener(ActionListener actionListener) {
         weaveDelegate();
         if (WeavingContext.isDynamic(actionListener.getClass()))
-            actionListener = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(actionListener, ActionListener.class);
+            actionListener = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(actionListener, ActionListener.class, ScriptingConst.ARTEFACT_TYPE_ACTIONLISTENER);
         _delegate.setActionListener(actionListener);
     }
 
@@ -304,7 +300,7 @@
         * code, in the renderer we do it on method base
         * due to the fact that our renderers are recycled via
         * a flyweight pattern*/
-        UIComponent component = (UIComponent) reloadInstance(oldComponent);
+        UIComponent component = (UIComponent) reloadInstance(oldComponent, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
 
         //we now have to check for an annotation change, but only in case a reload has happened
         if (component.getClass().hashCode() != oldComponent.getClass().hashCode()) {
@@ -324,7 +320,7 @@
          * code, in the renderer we do it on method base
          * due to the fact that our renderers are recycled via
          * a flyweight pattern*/
-        UIComponent component = (UIComponent) reloadInstance(oldComponent);
+        UIComponent component = (UIComponent) reloadInstance(oldComponent, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
 
         //we now have to check for an annotation change, but only in case a reload has happened
         if (component.getClass().hashCode() != oldComponent.getClass().hashCode()) {
@@ -373,7 +369,7 @@
          *
          * reloading objects at their interception points
          */
-        Converter newRetVal = (Converter) reloadInstance(retVal);
+        Converter newRetVal = (Converter) reloadInstance(retVal, ScriptingConst.ARTEFACT_TYPE_CONVERTER);
         if (newRetVal != retVal) {
             return _delegate.createConverter(converterId);
         }
@@ -384,7 +380,7 @@
     public Converter createConverter(Class aClass) {
         weaveDelegate();
         Converter retVal = _delegate.createConverter(aClass);
-        Converter newRetVal = (Converter) reloadInstance(retVal);
+        Converter newRetVal = (Converter) reloadInstance(retVal, ScriptingConst.ARTEFACT_TYPE_CONVERTER);
         if (newRetVal != retVal) {
             return _delegate.createConverter(aClass);
         }
@@ -440,7 +436,7 @@
 
         Validator retVal = _delegate.createValidator(validatorId);
         //the validators are recreated every request we do not have to deal with them on method level
-        Validator newRetVal = (Validator) reloadInstance(retVal);
+        Validator newRetVal = (Validator) reloadInstance(retVal, ScriptingConst.ARTEFACT_TYPE_VALIDATOR);
         if (newRetVal != retVal) {
             return _delegate.createValidator(validatorId);
         }
@@ -493,7 +489,7 @@
 
         //we might have casts here against one of the parents
         //of this object
-        Behavior newBehavior = (Behavior) reloadInstance(retVal);
+        Behavior newBehavior = (Behavior) reloadInstance(retVal, ScriptingConst.ARTEFACT_TYPE_BEHAVIOR);
         if (newBehavior != retVal) {
             return _delegate.createBehavior(behaviorId);
         }
@@ -513,7 +509,7 @@
          * code, in the renderer we do it on method base
          * due to the fact that our renderers are recycled via
          * a flyweight pattern*/
-        UIComponent component = (UIComponent) reloadInstance(oldComponent);
+        UIComponent component = (UIComponent) reloadInstance(oldComponent, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
 
         //we now have to check for an annotation change, but only in case a reload has happened
         if (component.getClass().hashCode() != oldComponent.getClass().hashCode()) {
@@ -534,7 +530,7 @@
          * code, in the renderer we do it on method base
          * due to the fact that our renderers are recycled via
          * a flyweight pattern*/
-        UIComponent component = (UIComponent) reloadInstance(oldComponent);
+        UIComponent component = (UIComponent) reloadInstance(oldComponent, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
 
         //we now have to check for an annotation change, but only in case a reload has happened
         if (component.getClass().hashCode() != oldComponent.getClass().hashCode()) {
@@ -554,7 +550,7 @@
      * code, in the renderer we do it on method base
      * due to the fact that our renderers are recycled via
      * a flyweight pattern*/
-        UIComponent component = (UIComponent) reloadInstance(oldComponent);
+        UIComponent component = (UIComponent) reloadInstance(oldComponent, ScriptingConst.ARTEFACT_TYPE_COMPONENT);
 
         //we now have to check for an annotation change, but only in case a reload has happened
         if (component.getClass().hashCode() != oldComponent.getClass().hashCode()) {
@@ -570,7 +566,7 @@
         //good place for a dynamic reloading check as well
         T retVal = _delegate.evaluateExpressionGet(facesContext, s, aClass);
         if (WeavingContext.isDynamic(retVal.getClass()))
-            retVal = (T) WeavingContext.getWeaver().reloadScriptingInstance(retVal);
+            retVal = (T) WeavingContext.getWeaver().reloadScriptingInstance(retVal, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
         return retVal;
     }
 
@@ -597,7 +593,7 @@
     public ResourceHandler getResourceHandler() {
         weaveDelegate();
         ResourceHandler retVal = _delegate.getResourceHandler();
-        ResourceHandler newHandler = (ResourceHandler) reloadInstance(retVal);
+        ResourceHandler newHandler = (ResourceHandler) reloadInstance(retVal, ScriptingConst.ARTEFACT_TYPE_RESOURCEHANDLER);
         if (newHandler != retVal) {
             return _delegate.getResourceHandler();
         }
@@ -655,12 +651,12 @@
         return _delegate;  //To change body of implemented methods use File | Settings | File Templates.
     }
 
-    private final Object reloadInstance(Object instance) {
+    private final Object reloadInstance(Object instance, int artefactType) {
         if (instance == null) {
             return null;
         }
         if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
-            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance, artefactType);
             alreadyWovenInRequest(instance.toString());
         }
         return instance;

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java Tue Dec  8 23:45:35 2009
@@ -31,6 +31,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEventListener;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEvent;
@@ -56,7 +57,7 @@
         Object newRetVal = null;
 
         if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
-            newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal); /*once it was tainted or loaded by
+            newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN); /*once it was tainted or loaded by
                  our classloader we have to recreate all the time to avoid classloader issues*/
 
             if (newRetVal != retVal) {
@@ -188,7 +189,7 @@
 
         public Set&lt;Integer&gt; supportsEvents() {
             Set&lt;Integer&gt; supports = new HashSet&lt;Integer&gt;();
-            supports.add(BeanLoadedEvent.ARTEFACT_TYPE_MANAGEDBEAN);
+            supports.add(ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
 
             return supports;  //To change body of implemented methods use File | Settings | File Templates.
         }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.*;
@@ -51,7 +52,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null)
-            _delegate = (FacesContext) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (FacesContext) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_FACESCONTEXT);
     }
 
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.lifecycle.Lifecycle;
@@ -37,7 +38,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null)
-            _delegate = (Lifecycle) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Lifecycle) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_LIFECYCLE);
     }
 
 
@@ -49,7 +50,7 @@
         weaveDelegate();
         /*we can put our object weaving code into the add here*/
         if (WeavingContext.isDynamic(phaseListener.getClass()))
-            phaseListener = (PhaseListener) WeavingContext.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class);
+            phaseListener = (PhaseListener) WeavingContext.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class, ScriptingConst.ARTEFACT_TYPE_PHASELISTENER);
 
         _delegate.addPhaseListener(phaseListener);
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.NavigationHandler;
@@ -34,7 +35,7 @@
     NavigationHandler _delegate;
 
     private void weaveDelegate() {
-        _delegate = (NavigationHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (NavigationHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_NAVIGATIONHANDLER);
     }
 
     public NavigationHandlerProxy(NavigationHandler delegate) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java Tue Dec  8 23:45:35 2009
@@ -58,16 +58,15 @@
         weaveDelegate();
         //wo do it brute force here because we have sometimes casts and hence cannot rely on proxies
         //renderers itself are flyweight patterns which means they are shared over objects
-        renderer = (Renderer) reloadInstance(renderer);
+        renderer = (Renderer) reloadInstance(renderer, ScriptingConst.ARTEFACT_TYPE_RENDERER);
 
-        
         _delegate.addRenderer(componentFamily, rendererType, renderer);
     }
 
     public Renderer getRenderer(String componentFamily, String rendererType) {
         weaveDelegate();
         Renderer rendr = _delegate.getRenderer(componentFamily, rendererType);
-        Renderer rendr2 = (Renderer) reloadInstance(rendr);
+        Renderer rendr2 = (Renderer) reloadInstance(rendr, ScriptingConst.ARTEFACT_TYPE_RENDERER);
         if (rendr != rendr2) {
             rendr2 = _delegate.getRenderer(componentFamily, rendererType);
             if (rendr2 instanceof PurgedRenderer) {
@@ -81,15 +80,15 @@
     }
 
     private ClientBehaviorRenderer handleAnnotationChangeBehaviorRenderer(String s) {
-           ClientBehaviorRenderer rendr2;
-           WeavingContext.getWeaver().fullAnnotationScan();
-           rendr2 = _delegate.getClientBehaviorRenderer(s);
-           if (rendr2 instanceof PurgedClientBehaviorRenderer) {
-               throw new FacesException("Renderer not found");
-           }
-           rendr2 = _delegate.getClientBehaviorRenderer(s);
-           return rendr2;
-       }
+        ClientBehaviorRenderer rendr2;
+        WeavingContext.getWeaver().fullAnnotationScan();
+        rendr2 = _delegate.getClientBehaviorRenderer(s);
+        if (rendr2 instanceof PurgedClientBehaviorRenderer) {
+            throw new FacesException("Renderer not found");
+        }
+        rendr2 = _delegate.getClientBehaviorRenderer(s);
+        return rendr2;
+    }
 
 
     private Renderer handleAnnotationChange(String s, String s1) {
@@ -110,12 +109,12 @@
 
     public ResponseWriter createResponseWriter(Writer writer, String s, String s1) {
         weaveDelegate();
-        return (ResponseWriter) reloadInstance(_delegate.createResponseWriter(writer, s, s1));
+        return (ResponseWriter) reloadInstance(_delegate.createResponseWriter(writer, s, s1), ScriptingConst.ARTEFACT_TYPE_RESPONSEWRITER);
     }
 
     public ResponseStream createResponseStream(OutputStream outputStream) {
         weaveDelegate();
-        return (ResponseStream) reloadInstance(_delegate.createResponseStream(outputStream));
+        return (ResponseStream) reloadInstance(_delegate.createResponseStream(outputStream), ScriptingConst.ARTEFACT_TYPE_RESPONSESTREAM);
     }
 
     //TODO add full support for myfaces 2.0 here
@@ -123,7 +122,7 @@
     public void addClientBehaviorRenderer(String s, ClientBehaviorRenderer renderer) {
 
         weaveDelegate();
-        renderer = (ClientBehaviorRenderer) reloadInstance(renderer);
+        renderer = (ClientBehaviorRenderer) reloadInstance(renderer, ScriptingConst.ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER);
         _delegate.addClientBehaviorRenderer(s, renderer);
     }
 
@@ -132,7 +131,7 @@
     public ClientBehaviorRenderer getClientBehaviorRenderer(String s) {
         weaveDelegate();
         ClientBehaviorRenderer rendr = _delegate.getClientBehaviorRenderer(s);
-        ClientBehaviorRenderer rendr2 = (ClientBehaviorRenderer) reloadInstance(rendr);
+        ClientBehaviorRenderer rendr2 = (ClientBehaviorRenderer) reloadInstance(rendr, ScriptingConst.ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER);
         if (rendr != rendr2) {
             //TODO simplyfy this
             rendr2 = _delegate.getClientBehaviorRenderer(s);
@@ -168,16 +167,16 @@
 
 
     private final void weaveDelegate() {
-        _delegate = (RenderKit) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (RenderKit) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_RENDERKIT);
     }
 
-    private final Object reloadInstance(Object instance) {
+    private final Object reloadInstance(Object instance, int artefactType) {
         if (instance == null) {
             return null;
         }
         if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
             alreadyWovenInRequest(instance.toString());
-            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance, artefactType);
 
             //now the add should be done properly if possible
         }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 
 import javax.faces.application.Resource;
 import javax.faces.application.ResourceHandler;
@@ -70,6 +71,6 @@
     }
 
     private final void weaveDelegate() {
-        _delegate = (ResourceHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (ResourceHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_RESOURCEHANDLER);
     }
 }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.el.VariableResolver;
@@ -41,7 +42,7 @@
     public Object resolveVariable(FacesContext facesContext, String s) throws EvaluationException {
         Object variable = _delegate.resolveVariable(facesContext, s);
         if (WeavingContext.isDynamic(variable.getClass()))
-            variable = WeavingContext.getWeaver().reloadScriptingInstance(variable);
+            variable = WeavingContext.getWeaver().reloadScriptingInstance(variable, ScriptingConst.ARTEFACT_TYPE_MANAGEDBEAN);
         return variable;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java?rev=888631&amp;r1=888630&amp;r2=888631&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java Tue Dec  8 23:45:35 2009
@@ -19,6 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
+import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.ViewHandler;
@@ -42,7 +43,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (ViewHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (ViewHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate, ScriptingConst.ARTEFACT_TYPE_VIEWHANDLER);
         }
     }
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888630 [2/2] - in /myfaces/extensions/scripting/trunk/core: core-java6/ core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core-java6/src/test/java/org/apache/myfaces/javaloader/core/ core/src/main/groovy/org/apache...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208234217.4FB5823889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208234217-4FB5823889BB@eris-apache-org%3e</id>
<updated>2009-12-08T23:42:15Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java Tue Dec  8 23:42:13 2009
@@ -18,7 +18,7 @@
  */
 package org.apache.myfaces.scripting.servlet;
 
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 
 import javax.servlet.*;
@@ -42,12 +42,13 @@
 
      public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
 
-         ProxyUtils.setWeaver(context.getAttribute("ScriptingWeaver"));
+         WeavingContext.cleanOnRequest();
+         WeavingContext.setWeaver(context.getAttribute("ScriptingWeaver"));
          filterChain.doFilter(servletRequest, servletResponse);
      }
 
      public void destroy() {
-         ProxyUtils.clean();
+         WeavingContext.clean();
      }
 
 }
\ No newline at end of file

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.ApplicationProxy;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.ApplicationFactory;
 import javax.faces.application.Application;
@@ -49,7 +49,7 @@
 
     public ScriptingApplicationFactory(ApplicationFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public Application getApplication() {

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.FacesContextProxy;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.FacesContext;
 import javax.faces.context.FacesContextFactory;
@@ -40,7 +40,7 @@
 
     public ScriptingFacesContextFactory(FacesContextFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public void setDelegate(FacesContextFactory delegate) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.LifefcycleProxy;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.lifecycle.LifecycleFactory;
 import javax.faces.lifecycle.Lifecycle;
@@ -40,7 +40,7 @@
 
     public ScriptingLifecycleFactory(LifecycleFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public void addLifecycle(String s, Lifecycle lifecycle) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.factories;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.RenderkitProxy;
 
 import javax.faces.render.RenderKitFactory;
@@ -38,7 +38,7 @@
 
     public ScriptingRenderkitFactory(RenderKitFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public void addRenderKit(String s, RenderKit renderKit) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingConst;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.el.*;
 import javax.faces.FacesException;
@@ -75,7 +75,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (Application) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Application) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
         }
     }
 
@@ -110,9 +110,9 @@
          * maybe in the long run we can make a decorator here instead
          * but for now lets try it this way
          */
-        if (ProxyUtils.isDynamic(component.getClass()) &amp;&amp; !alreadyWovenInRequest(component.toString())) {
+        if (WeavingContext.isDynamic(component.getClass()) &amp;&amp; !alreadyWovenInRequest(component.toString())) {
             /*once it was tainted we have to recreate all the time*/
-            component = (UIComponent) ProxyUtils.getWeaver().reloadScriptingInstance(component);
+            component = (UIComponent) WeavingContext.getWeaver().reloadScriptingInstance(component);
             alreadyWovenInRequest(component.toString());
         }
         return component;
@@ -126,8 +126,8 @@
 
     public void addELContextListener(ELContextListener elContextListener) {
         weaveDelegate();
-        if (ProxyUtils.isDynamic(elContextListener.getClass()))
-            elContextListener = (ELContextListener) ProxyUtils.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class);
+        if (WeavingContext.isDynamic(elContextListener.getClass()))
+            elContextListener = (ELContextListener) WeavingContext.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class);
         _delegate.addELContextListener(elContextListener);
     }
 
@@ -147,23 +147,23 @@
         weaveDelegate();
         //good place for a dynamic reloading check as well
         Object retVal = _delegate.evaluateExpressionGet(facesContext, s, aClass);
-        if (ProxyUtils.isDynamic(retVal.getClass()))
-            retVal = ProxyUtils.getWeaver().reloadScriptingInstance(retVal);
+        if (WeavingContext.isDynamic(retVal.getClass()))
+            retVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal);
         return retVal;
     }
 
     public ActionListener getActionListener() {
         weaveDelegate();
         ActionListener retVal = _delegate.getActionListener();
-        if (ProxyUtils.isDynamic(retVal.getClass()))
-            retVal = (ActionListener) ProxyUtils.createMethodReloadingProxyFromObject(retVal, ActionListener.class);
+        if (WeavingContext.isDynamic(retVal.getClass()))
+            retVal = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(retVal, ActionListener.class);
         return retVal;
     }
 
     public void setActionListener(ActionListener actionListener) {
         weaveDelegate();
-        if (ProxyUtils.isDynamic(actionListener.getClass()))
-            actionListener = (ActionListener) ProxyUtils.createMethodReloadingProxyFromObject(actionListener, ActionListener.class);
+        if (WeavingContext.isDynamic(actionListener.getClass()))
+            actionListener = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(actionListener, ActionListener.class);
         _delegate.setActionListener(actionListener);
     }
 
@@ -201,14 +201,14 @@
         weaveDelegate();
         //defined in the setter to speed things up a little
         NavigationHandler retVal = _delegate.getNavigationHandler();
-        if (retVal != null &amp;&amp; ProxyUtils.isDynamic(retVal.getClass()))
+        if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass()))
             retVal = new NavigationHandlerProxy(retVal);
         return retVal;
     }
 
     public void setNavigationHandler(NavigationHandler navigationHandler) {
         weaveDelegate();
-        if (navigationHandler != null &amp;&amp; ProxyUtils.isDynamic(navigationHandler.getClass()))
+        if (navigationHandler != null &amp;&amp; WeavingContext.isDynamic(navigationHandler.getClass()))
             navigationHandler = new NavigationHandlerProxy(navigationHandler);
         _delegate.setNavigationHandler(navigationHandler);
     }
@@ -249,7 +249,7 @@
         java all our groovy reloading code is lost
         hence we have to work with proxies here
         */
-        if (ProxyUtils.isDynamic(handler.getClass()))
+        if (WeavingContext.isDynamic(handler.getClass()))
             handler = (ViewHandlerProxy) new ViewHandlerProxy(handler);
         return handler;
     }
@@ -257,7 +257,7 @@
     public void setViewHandler(ViewHandler viewHandler) {
         weaveDelegate();
         /*make sure you have the delegates as well in properties*/
-        if (ProxyUtils.isDynamic(viewHandler.getClass()))
+        if (WeavingContext.isDynamic(viewHandler.getClass()))
             viewHandler = (ViewHandlerProxy) new ViewHandlerProxy(viewHandler);
 
         _delegate.setViewHandler(viewHandler);
@@ -330,8 +330,8 @@
          *
          * reloading objects at their interception points
          */
-        if (ProxyUtils.isDynamic(retVal.getClass())) {
-            retVal = (Converter) ProxyUtils.createMethodReloadingProxyFromObject(retVal, Converter.class);
+        if (WeavingContext.isDynamic(retVal.getClass())) {
+            retVal = (Converter) WeavingContext.createMethodReloadingProxyFromObject(retVal, Converter.class);
 
         }
 
@@ -341,8 +341,8 @@
     public Converter createConverter(Class aClass) {
         weaveDelegate();
         Converter retVal = _delegate.createConverter(aClass);
-        if (retVal != null &amp;&amp; ProxyUtils.isDynamic(retVal.getClass())) {
-            retVal = (Converter) ProxyUtils.createMethodReloadingProxyFromObject(retVal, Converter.class);
+        if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
+            retVal = (Converter) WeavingContext.createMethodReloadingProxyFromObject(retVal, Converter.class);
         }
 
         return retVal;
@@ -383,8 +383,8 @@
         weaveDelegate();
 
         Validator retVal = _delegate.createValidator(s);
-        if (ProxyUtils.isDynamic(retVal.getClass()) &amp;&amp; !Proxy.isProxyClass(retVal.getClass())) {
-            retVal = (Validator) ProxyUtils.createMethodReloadingProxyFromObject(retVal, Validator.class);
+        if (WeavingContext.isDynamic(retVal.getClass()) &amp;&amp; !Proxy.isProxyClass(retVal.getClass())) {
+            retVal = (Validator) WeavingContext.createMethodReloadingProxyFromObject(retVal, Validator.class);
         }
         return retVal;
     }
@@ -408,8 +408,8 @@
         if (instance == null) {
             return null;
         }
-        if (ProxyUtils.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
-            instance = ProxyUtils.getWeaver().reloadScriptingInstance(instance);
+        if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
             alreadyWovenInRequest(instance.toString());
         }
         return instance;

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java Tue Dec  8 23:42:13 2009
@@ -32,7 +32,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEventListener;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEvent;
 import org.apache.myfaces.scripting.core.scanEvents.events.BeanLoadedEvent;
@@ -52,10 +52,10 @@
     public Object getValue(ELContext elContext, final Object base, final Object property) throws NullPointerException, PropertyNotFoundException, ELException {
         Object retVal = _delegate.getValue(elContext, base, property);
 
-        if (retVal != null &amp;&amp; ProxyUtils.isDynamic(retVal.getClass())) {
+        if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
 
 
-            Object newRetVal = ProxyUtils.getWeaver().reloadScriptingInstance(retVal); /*once it was tainted or loaded by
+            Object newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal); /*once it was tainted or loaded by
                  our classloader we have to recreate all the time to avoid classloader issues*/
             if (newRetVal != retVal) {
                 _delegate.setValue(elContext, base, property, newRetVal);
@@ -70,8 +70,8 @@
 
     public Class&lt;?&gt; getType(ELContext elContext, Object o, Object o1) throws NullPointerException, PropertyNotFoundException, ELException {
         Class&lt;?&gt; retVal = _delegate.getType(elContext, o, o1);
-        if (retVal != null &amp;&amp; ProxyUtils.isDynamic((Class) retVal)) {
-            return ProxyUtils.getWeaver().reloadScriptingClass((Class) retVal);
+        if (retVal != null &amp;&amp; WeavingContext.isDynamic((Class) retVal)) {
+            return WeavingContext.getWeaver().reloadScriptingClass((Class) retVal);
         }
         return retVal;
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.FacesContext;
 import javax.faces.context.ExternalContext;
@@ -29,7 +29,6 @@
 import javax.faces.application.FacesMessage;
 import javax.faces.render.RenderKit;
 import javax.faces.component.UIViewRoot;
-import javax.faces.lifecycle.Lifecycle;
 import javax.el.ELContext;
 import java.util.Iterator;
 
@@ -51,7 +50,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null)
-            _delegate = (FacesContext) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (FacesContext) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.lifecycle.Lifecycle;
 import javax.faces.event.PhaseListener;
@@ -33,11 +33,11 @@
  */
 public class LifefcycleProxy extends Lifecycle implements Decorated {
 
- //   GroovyWeaver ProxyUtils.getWeaver() =  ProxyUtils.getWeaver();
+ //   GroovyWeaver WeavingContext.getWeaver() =  WeavingContext.getWeaver();
 
     private void weaveDelegate() {
         if(_delegate != null)
-            _delegate = (Lifecycle) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Lifecycle) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
 
@@ -48,8 +48,8 @@
     public void addPhaseListener(PhaseListener phaseListener) {
         weaveDelegate();
         /*we can put our object weaving code into the add here*/
-        if (ProxyUtils.isDynamic(phaseListener.getClass()))
-            phaseListener = (PhaseListener)  ProxyUtils.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class);
+        if (WeavingContext.isDynamic(phaseListener.getClass()))
+            phaseListener = (PhaseListener)  WeavingContext.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class);
 
         _delegate.addPhaseListener(phaseListener);
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.NavigationHandler;
 import javax.faces.context.FacesContext;
@@ -32,7 +32,7 @@
 public class NavigationHandlerProxy extends NavigationHandler implements Decorated {
 
     private void weaveDelegate() {
-        _delegate = (NavigationHandler) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (NavigationHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
     public NavigationHandlerProxy(NavigationHandler delegate) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingConst;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseStream;
@@ -83,15 +83,15 @@
 
 
      private final void weaveDelegate() {
-        _delegate = (RenderKit) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (RenderKit) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
     private final Object reloadInstance(Object instance) {
         if(instance == null) {
             return null;
         }
-        if (ProxyUtils.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
-            instance = ProxyUtils.getWeaver().reloadScriptingInstance(instance);
+        if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
             alreadyWovenInRequest(instance.toString());
         }
         return instance;

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.el.VariableResolver;
 import javax.faces.el.EvaluationException;
@@ -40,8 +40,8 @@
 
     public Object resolveVariable(FacesContext facesContext, String s) throws EvaluationException {
         Object variable = _delegate.resolveVariable(facesContext, s);
-        if (ProxyUtils.isDynamic(variable.getClass()))
-            variable = ProxyUtils.getWeaver().reloadScriptingInstance(variable);
+        if (WeavingContext.isDynamic(variable.getClass()))
+            variable = WeavingContext.getWeaver().reloadScriptingInstance(variable);
         return variable;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.ViewHandler;
 import javax.faces.context.FacesContext;
@@ -39,7 +39,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (ViewHandler) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (ViewHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
         }
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.ApplicationProxy;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.ApplicationFactory;
 import javax.faces.application.Application;
@@ -48,7 +48,7 @@
 
     public ScriptingApplicationFactory(ApplicationFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public Application getApplication() {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.FacesContextProxy;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.FacesContext;
 import javax.faces.context.FacesContextFactory;
@@ -40,7 +40,7 @@
 
     public ScriptingFacesContextFactory(FacesContextFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public void setDelegate(FacesContextFactory delegate) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.LifefcycleProxy;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.lifecycle.LifecycleFactory;
 import javax.faces.lifecycle.Lifecycle;
@@ -40,7 +40,7 @@
 
     public ScriptingLifecycleFactory(LifecycleFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public void addLifecycle(String s, Lifecycle lifecycle) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.factories;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations.RenderkitProxy;
 
 import javax.faces.render.RenderKitFactory;
@@ -38,7 +38,7 @@
 
     public ScriptingRenderkitFactory(RenderKitFactory delegate) {
         _delegate = delegate;
-        scriptingEnabled = ProxyUtils.isScriptingEnabled();
+        scriptingEnabled = WeavingContext.isScriptingEnabled();
     }
 
     public void addRenderKit(String s, RenderKit renderKit) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingConst;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.*;
 
 import javax.el.*;
@@ -28,7 +28,6 @@
 import javax.faces.application.*;
 import javax.faces.component.UIComponent;
 import javax.faces.component.behavior.Behavior;
-import javax.faces.component.behavior.BehaviorBase;
 import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
 import javax.faces.el.*;
@@ -36,7 +35,6 @@
 import javax.faces.event.SystemEvent;
 import javax.faces.event.SystemEventListener;
 import javax.faces.validator.Validator;
-import java.lang.reflect.Proxy;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -92,7 +90,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (Application) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Application) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
         }
     }
 
@@ -149,8 +147,8 @@
 
     public void addELContextListener(ELContextListener elContextListener) {
         weaveDelegate();
-        if (ProxyUtils.isDynamic(elContextListener.getClass()))
-            elContextListener = (ELContextListener) ProxyUtils.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class);
+        if (WeavingContext.isDynamic(elContextListener.getClass()))
+            elContextListener = (ELContextListener) WeavingContext.createMethodReloadingProxyFromObject(elContextListener, ELContextListener.class);
         _delegate.addELContextListener(elContextListener);
     }
 
@@ -170,15 +168,15 @@
     public ActionListener getActionListener() {
         weaveDelegate();
         ActionListener retVal = _delegate.getActionListener();
-        if (ProxyUtils.isDynamic(retVal.getClass()))
-            retVal = (ActionListener) ProxyUtils.createMethodReloadingProxyFromObject(retVal, ActionListener.class);
+        if (WeavingContext.isDynamic(retVal.getClass()))
+            retVal = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(retVal, ActionListener.class);
         return retVal;
     }
 
     public void setActionListener(ActionListener actionListener) {
         weaveDelegate();
-        if (ProxyUtils.isDynamic(actionListener.getClass()))
-            actionListener = (ActionListener) ProxyUtils.createMethodReloadingProxyFromObject(actionListener, ActionListener.class);
+        if (WeavingContext.isDynamic(actionListener.getClass()))
+            actionListener = (ActionListener) WeavingContext.createMethodReloadingProxyFromObject(actionListener, ActionListener.class);
         _delegate.setActionListener(actionListener);
     }
 
@@ -217,7 +215,7 @@
         //defined in the setter to speed things up a little
         NavigationHandler retVal = _delegate.getNavigationHandler();
         //TODO add annotatiom support for the navigation handler as well
-        if (retVal != null &amp;&amp; ProxyUtils.isDynamic(retVal.getClass()))
+        if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass()))
             retVal = new NavigationHandlerProxy(retVal);
         return retVal;
     }
@@ -225,7 +223,7 @@
     public void setNavigationHandler(NavigationHandler navigationHandler) {
         weaveDelegate();
         //TODO add annotatiom support for the navigation handler as well
-        if (navigationHandler != null &amp;&amp; ProxyUtils.isDynamic(navigationHandler.getClass()))
+        if (navigationHandler != null &amp;&amp; WeavingContext.isDynamic(navigationHandler.getClass()))
             navigationHandler = new NavigationHandlerProxy(navigationHandler);
         _delegate.setNavigationHandler(navigationHandler);
     }
@@ -266,7 +264,7 @@
         java all our groovy reloading code is lost
         hence we have to work with proxies here
         */
-        if (ProxyUtils.isDynamic(handler.getClass()))
+        if (WeavingContext.isDynamic(handler.getClass()))
             handler = (ViewHandlerProxy) new ViewHandlerProxy(handler);
         return handler;
     }
@@ -274,7 +272,7 @@
     public void setViewHandler(ViewHandler viewHandler) {
         weaveDelegate();
         /*make sure you have the delegates as well in properties*/
-        if (ProxyUtils.isDynamic(viewHandler.getClass()))
+        if (WeavingContext.isDynamic(viewHandler.getClass()))
             viewHandler = (ViewHandlerProxy) new ViewHandlerProxy(viewHandler);
 
         _delegate.setViewHandler(viewHandler);
@@ -345,7 +343,7 @@
         weaveDelegate();
         if (converterClass.equals(PurgedConverter.class.getName())) {
             //purged case we do a full rescane
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             Converter componentToChange = _delegate.createConverter(converterId);
             if (componentToChange instanceof PurgedConverter) {
                 //Null not allowed here, but we set a purted converter to make
@@ -424,7 +422,7 @@
         weaveDelegate();
         if (validatorClass.equals(PurgedValidator.class.getName())) {
             //purged case we do a full rescane
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             Validator componentToChange = _delegate.createValidator(validatorId);
             if (componentToChange instanceof PurgedValidator) {
                 //Null not allowed here, but we set a purted validator to make
@@ -466,7 +464,7 @@
 
         if (behaviorClass.equals(PurgedValidator.class.getName())) {
             //purged case we do a full rescane
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             Behavior behavior = (Behavior) _delegate.createBehavior(behaviorId);
             _behaviors.put(behaviorId, behaviorClass);
             if (behavior instanceof PurgedBehavior) {
@@ -571,8 +569,8 @@
         weaveDelegate();
         //good place for a dynamic reloading check as well
         T retVal = _delegate.evaluateExpressionGet(facesContext, s, aClass);
-        if (ProxyUtils.isDynamic(retVal.getClass()))
-            retVal = (T) ProxyUtils.getWeaver().reloadScriptingInstance(retVal);
+        if (WeavingContext.isDynamic(retVal.getClass()))
+            retVal = (T) WeavingContext.getWeaver().reloadScriptingInstance(retVal);
         return retVal;
     }
 
@@ -624,7 +622,7 @@
         _delegate.setResourceHandler(resourceHandler);
         ResourceHandler handler = _delegate.getResourceHandler();
         if (handler instanceof PurgedResourceHandler) {
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
         }
     }
 
@@ -661,8 +659,8 @@
         if (instance == null) {
             return null;
         }
-        if (ProxyUtils.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
-            instance = ProxyUtils.getWeaver().reloadScriptingInstance(instance);
+        if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
             alreadyWovenInRequest(instance.toString());
         }
         return instance;
@@ -682,7 +680,7 @@
     private UIComponent handeAnnotationChange(UIComponent oldComponent, ValueExpression valueExpression, FacesContext facesContext, String componentType) {
         UIComponent componentToChange = _delegate.createComponent(valueExpression, facesContext, componentType);
         if (componentToChange instanceof PurgedComponent) {
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             //via an additional create component we can check whether a purged component
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(valueExpression, facesContext, componentType);
@@ -697,7 +695,7 @@
     private UIComponent handeAnnotationChange(UIComponent oldComponent, String componentType) {
         UIComponent componentToChange = _delegate.createComponent(componentType);
         if (componentToChange instanceof PurgedComponent) {
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             //via an additional create component we can check whether a purged component
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(componentType);
@@ -710,7 +708,7 @@
     private UIComponent handeAnnotationChange(UIComponent oldComponent, ValueBinding valueBinding, FacesContext context, String componentType) {
         UIComponent componentToChange = _delegate.createComponent(valueBinding, context, componentType);
         if (componentToChange instanceof PurgedComponent) {
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             //via an additional create component we can check whether a purged component
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(valueBinding, context, componentType);
@@ -723,7 +721,7 @@
     private UIComponent handeAnnotationChange(UIComponent oldComponent, FacesContext context, Resource resource) {
         UIComponent componentToChange = _delegate.createComponent(context, resource);
         if (componentToChange instanceof PurgedComponent) {
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             //via an additional create component we can check whether a purged component
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(context, resource);
@@ -736,7 +734,7 @@
     private UIComponent handeAnnotationChange(UIComponent oldComponent, FacesContext context, String componentType, String rendererType) {
         UIComponent componentToChange = _delegate.createComponent(context, componentType, rendererType);
         if (componentToChange instanceof PurgedComponent) {
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
             //via an additional create component we can check whether a purged component
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(context, componentType, rendererType);
@@ -750,7 +748,7 @@
         UIComponent componentToChange = _delegate.createComponent(valueExpression, facesContext, s, s1);
         String family = oldComponent.getFamily();
         if (componentToChange instanceof PurgedComponent) {
-            ProxyUtils.getWeaver().fullAnnotationScan();
+            WeavingContext.getWeaver().fullAnnotationScan();
 
             //via an additional create component we can check whether a purged component
             //was registered after the reload because the annotation has been removed

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java Tue Dec  8 23:42:13 2009
@@ -27,12 +27,11 @@
 import javax.el.PropertyNotFoundException;
 import javax.el.PropertyNotWritableException;
 import javax.faces.context.FacesContext;
-import javax.faces.bean.ManagedBean;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEventListener;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEvent;
 import org.apache.myfaces.scripting.core.scanEvents.events.BeanLoadedEvent;
@@ -56,8 +55,8 @@
         Object retVal = _delegate.getValue(elContext, base, property);
         Object newRetVal = null;
 
-        if (retVal != null &amp;&amp; ProxyUtils.isDynamic(retVal.getClass())) {
-            newRetVal = ProxyUtils.getWeaver().reloadScriptingInstance(retVal); /*once it was tainted or loaded by
+        if (retVal != null &amp;&amp; WeavingContext.isDynamic(retVal.getClass())) {
+            newRetVal = WeavingContext.getWeaver().reloadScriptingInstance(retVal); /*once it was tainted or loaded by
                  our classloader we have to recreate all the time to avoid classloader issues*/
 
             if (newRetVal != retVal) {
@@ -95,7 +94,7 @@
                     _delegate.setValue(elContext, base, property, null);
 
                     //we only trigger this if the bean was deregistered, we now can reregister it again
-                    ProxyUtils.getWeaver().fullAnnotationScan();
+                    WeavingContext.getWeaver().fullAnnotationScan();
                     newRetVal = _delegate.getValue(elContext, base, property);
                 }
             }
@@ -108,8 +107,8 @@
 
     public Class&lt;?&gt; getType(ELContext elContext, Object o, Object o1) throws NullPointerException, PropertyNotFoundException, ELException {
         Class&lt;?&gt; retVal = _delegate.getType(elContext, o, o1);
-        if (retVal != null &amp;&amp; ProxyUtils.isDynamic((Class) retVal)) {
-            return ProxyUtils.getWeaver().reloadScriptingClass((Class) retVal);
+        if (retVal != null &amp;&amp; WeavingContext.isDynamic((Class) retVal)) {
+            return WeavingContext.getWeaver().reloadScriptingClass((Class) retVal);
         }
         return retVal;
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.context.*;
 import javax.faces.application.Application;
@@ -27,7 +27,6 @@
 import javax.faces.application.ProjectStage;
 import javax.faces.render.RenderKit;
 import javax.faces.component.UIViewRoot;
-import javax.faces.lifecycle.Lifecycle;
 import javax.faces.event.PhaseId;
 import javax.el.ELContext;
 import java.util.Iterator;
@@ -52,7 +51,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null)
-            _delegate = (FacesContext) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (FacesContext) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.lifecycle.Lifecycle;
 import javax.faces.event.PhaseListener;
@@ -37,7 +37,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null)
-            _delegate = (Lifecycle) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (Lifecycle) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
 
@@ -48,8 +48,8 @@
     public void addPhaseListener(PhaseListener phaseListener) {
         weaveDelegate();
         /*we can put our object weaving code into the add here*/
-        if (ProxyUtils.isDynamic(phaseListener.getClass()))
-            phaseListener = (PhaseListener) ProxyUtils.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class);
+        if (WeavingContext.isDynamic(phaseListener.getClass()))
+            phaseListener = (PhaseListener) WeavingContext.createMethodReloadingProxyFromObject(phaseListener, PhaseListener.class);
 
         _delegate.addPhaseListener(phaseListener);
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.NavigationHandler;
 import javax.faces.context.FacesContext;
@@ -34,7 +34,7 @@
     NavigationHandler _delegate;
 
     private void weaveDelegate() {
-        _delegate = (NavigationHandler) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (NavigationHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
     public NavigationHandlerProxy(NavigationHandler delegate) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingConst;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedRenderer;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedClientBehaviorRenderer;
 
@@ -82,7 +82,7 @@
 
     private ClientBehaviorRenderer handleAnnotationChangeBehaviorRenderer(String s) {
            ClientBehaviorRenderer rendr2;
-           ProxyUtils.getWeaver().fullAnnotationScan();
+           WeavingContext.getWeaver().fullAnnotationScan();
            rendr2 = _delegate.getClientBehaviorRenderer(s);
            if (rendr2 instanceof PurgedClientBehaviorRenderer) {
                throw new FacesException("Renderer not found");
@@ -94,7 +94,7 @@
 
     private Renderer handleAnnotationChange(String s, String s1) {
         Renderer rendr2;
-        ProxyUtils.getWeaver().fullAnnotationScan();
+        WeavingContext.getWeaver().fullAnnotationScan();
         rendr2 = _delegate.getRenderer(s, s1);
         if (rendr2 instanceof PurgedRenderer) {
             throw new FacesException("Renderer not found");
@@ -168,16 +168,16 @@
 
 
     private final void weaveDelegate() {
-        _delegate = (RenderKit) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (RenderKit) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 
     private final Object reloadInstance(Object instance) {
         if (instance == null) {
             return null;
         }
-        if (ProxyUtils.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
+        if (WeavingContext.isDynamic(instance.getClass()) &amp;&amp; !alreadyWovenInRequest(instance.toString())) {
             alreadyWovenInRequest(instance.toString());
-            instance = ProxyUtils.getWeaver().reloadScriptingInstance(instance);
+            instance = WeavingContext.getWeaver().reloadScriptingInstance(instance);
 
             //now the add should be done properly if possible
         }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java Tue Dec  8 23:42:13 2009
@@ -18,7 +18,7 @@
  */
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.Resource;
 import javax.faces.application.ResourceHandler;
@@ -70,6 +70,6 @@
     }
 
     private final void weaveDelegate() {
-        _delegate = (ResourceHandler) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+        _delegate = (ResourceHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
     }
 }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.el.VariableResolver;
 import javax.faces.el.EvaluationException;
@@ -40,8 +40,8 @@
 
     public Object resolveVariable(FacesContext facesContext, String s) throws EvaluationException {
         Object variable = _delegate.resolveVariable(facesContext, s);
-        if (ProxyUtils.isDynamic(variable.getClass()))
-            variable = ProxyUtils.getWeaver().reloadScriptingInstance(variable);
+        if (WeavingContext.isDynamic(variable.getClass()))
+            variable = WeavingContext.getWeaver().reloadScriptingInstance(variable);
         return variable;
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java Tue Dec  8 23:42:13 2009
@@ -19,7 +19,7 @@
 package org.apache.myfaces.scripting.jsf.dynamicdecorators.implemetations;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import javax.faces.application.ViewHandler;
 import javax.faces.context.FacesContext;
@@ -42,7 +42,7 @@
 
     private void weaveDelegate() {
         if (_delegate != null) {
-            _delegate = (ViewHandler) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
+            _delegate = (ViewHandler) WeavingContext.getWeaver().reloadScriptingInstance(_delegate);
         }
     }
 

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java Tue Dec  8 23:42:13 2009
@@ -26,7 +26,7 @@
 import org.apache.myfaces.config.impl.digester.elements.ManagedBean;
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
 import org.apache.myfaces.scripting.core.util.ReflectUtil;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.core.scanEvents.events.BeanLoadedEvent;
 import org.apache.myfaces.scripting.core.scanEvents.events.BeanRemovedEvent;
 import org.apache.myfaces.scripting.core.scanEvents.events.ManagedPropertyLoadedEvent;
@@ -77,7 +77,7 @@
         _alreadyRegistered.put(beanName, mbean);
         config.addManagedBean(beanName, mbean);
 
-        ProxyUtils.getEventProcessor().dispatchEvent(new BeanLoadedEvent(clazz.getName(), beanName));
+        WeavingContext.getEventProcessor().dispatchEvent(new BeanLoadedEvent(clazz.getName(), beanName));
     }
 
     private void resolveScope(Class clazz, ManagedBean mbean) {
@@ -128,7 +128,7 @@
 
         config.addManagedBean(beanName, mbean);
 
-        ProxyUtils.getEventProcessor().dispatchEvent(new BeanLoadedEvent(clazz.getFullyQualifiedName(), beanName));
+        WeavingContext.getEventProcessor().dispatchEvent(new BeanLoadedEvent(clazz.getFullyQualifiedName(), beanName));
     }
 
     private void resolveScope(JavaClass clazz, ManagedBean mbean) {
@@ -187,7 +187,7 @@
                 mpc.setPropertyClass(field.getType().getName()); // FIXME - primitives, arrays, etc.
                 mpc.setValue(property.value());
                 mbean.addProperty(mpc);
-                ProxyUtils.getEventProcessor().dispatchEvent(new ManagedPropertyLoadedEvent(field.getType().getName(), name));
+                WeavingContext.getEventProcessor().dispatchEvent(new ManagedPropertyLoadedEvent(field.getType().getName(), name));
 
                 continue;
             }
@@ -217,7 +217,7 @@
                         managedProperty.setPropertyClass(field.getType().getValue()); // FIXME - primitives, arrays, etc.
                         managedProperty.setValue((String) ann.getPropertyMap().get("value"));
                         mbean.addProperty(managedProperty);
-                        ProxyUtils.getEventProcessor().dispatchEvent(new ManagedPropertyLoadedEvent(field.getType().getValue(), name));
+                        WeavingContext.getEventProcessor().dispatchEvent(new ManagedPropertyLoadedEvent(field.getType().getValue(), name));
                     }
                 }
             }
@@ -326,9 +326,9 @@
             if (mbeanFound instanceof ManagedBean) {
                 ManagedBean mbeanToDispatch = (ManagedBean) mbeanFound;
                 for (org.apache.myfaces.config.impl.digester.elements.ManagedProperty prop : mbeanToDispatch.getManagedProperties()) {
-                    ProxyUtils.getEventProcessor().dispatchEvent(new ManagedPropertyRemovedEvent(prop.getPropertyClass(), prop.getPropertyName()));
+                    WeavingContext.getEventProcessor().dispatchEvent(new ManagedPropertyRemovedEvent(prop.getPropertyClass(), prop.getPropertyName()));
                 }
-                ProxyUtils.getEventProcessor().dispatchEvent(new BeanRemovedEvent(className, mbeanToDispatch.getManagedBeanName()));
+                WeavingContext.getEventProcessor().dispatchEvent(new BeanRemovedEvent(className, mbeanToDispatch.getManagedBeanName()));
 
             }
             for (String toRemove : mbeanKey) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ComponentImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ComponentImplementationListener.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ComponentImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ComponentImplementationListener.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import com.thoughtworks.qdox.model.JavaClass;
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedComponent;
 
 import javax.faces.component.FacesComponent;
@@ -59,7 +59,7 @@
             log.trace("addComponent(" + val + ","
                       + clazz.getFullyQualifiedName() + ")");
         }
-        ProxyUtils.getWeaver().loadScriptingClassFromName(clazz.getFullyQualifiedName());
+        WeavingContext.getWeaver().loadScriptingClassFromName(clazz.getFullyQualifiedName());
         getApplication().addComponent(val, clazz.getFullyQualifiedName());
         _alreadyRegistered.put(clazz.getFullyQualifiedName(), val);
     }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java Tue Dec  8 23:42:13 2009
@@ -24,10 +24,9 @@
 import com.thoughtworks.qdox.model.JavaSource;
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
 import org.apache.myfaces.scripting.api.AnnotationScanner;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.*;
 
 import org.apache.myfaces.scripting.core.scanEvents.events.AnnotatedArtefactRemovedEvent;
@@ -212,7 +211,7 @@
                 if (listener.supportsAnnotation(registeredAnnotation)) {
                     listener.purge(clazz.getFullyQualifiedName());
                     _registeredAnnotations.remove(clazz.getFullyQualifiedName());
-                    ProxyUtils.getEventProcessor().dispatchEvent(new AnnotatedArtefactRemovedEvent(clazz.getFullyQualifiedName()));
+                    WeavingContext.getEventProcessor().dispatchEvent(new AnnotatedArtefactRemovedEvent(clazz.getFullyQualifiedName()));
                     FileChangedDaemon.getInstance().getClassMap().remove(clazz.getFullyQualifiedName());
                 }
             }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import com.thoughtworks.qdox.model.JavaClass;
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedRenderer;
 
 import javax.faces.FactoryFinder;
@@ -154,7 +154,7 @@
 
         try {
             //recompile the class here because we cannot deal with the renderer otherwise
-            renderKit.addRenderer(getAnnotatedStringParam(params,PAR_FAMILY), getAnnotatedStringParam(params, PAR_RENDERERTYPE), (Renderer) ProxyUtils.getWeaver().loadScriptingClassFromName(clazz.getFullyQualifiedName()).newInstance());
+            renderKit.addRenderer(getAnnotatedStringParam(params,PAR_FAMILY), getAnnotatedStringParam(params, PAR_RENDERERTYPE), (Renderer) WeavingContext.getWeaver().loadScriptingClassFromName(clazz.getFullyQualifiedName()).newInstance());
         } catch (InstantiationException e) {
             log.error(e);
         } catch (IllegalAccessException e) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java Tue Dec  8 23:42:13 2009
@@ -18,7 +18,7 @@
  */
 package org.apache.myfaces.scripting.startup;
 
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
 
 import javax.faces.event.SystemEventListener;
@@ -46,7 +46,7 @@
         }
         //we can rely on being in the same thread as the original
         //startup context listener, so the initial weaver still is activated
-        ScriptingWeaver weaver = ProxyUtils.getWeaver();
+        ScriptingWeaver weaver = WeavingContext.getWeaver();
 
         //we now do a full source or precompiled annotation scan
         //the entire scripting subsystem should be initialized by now




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888630 [1/2] - in /myfaces/extensions/scripting/trunk/core: core-java6/ core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/ core-java6/src/test/java/org/apache/myfaces/javaloader/core/ core/src/main/groovy/org/apache...</title>
<author><name>werpu@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208234217.4AFB3238889B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208234217-4AFB3238889B@eris-apache-org%3e</id>
<updated>2009-12-08T23:42:15Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: werpu
Date: Tue Dec  8 23:42:13 2009
New Revision: 888630

URL: http://svn.apache.org/viewvc?rev=888630&amp;view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-20
ongoing works on the bean strategies, I have refactored a few names which point
towards the correct patterns used now,
also I added an request map accessor in our central WeavingContext
so that we can add per request block code easier encapsulating the long jsf api that way

Added:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java   (contents, props changed)
      - copied, changed from r885883, myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/CompilerFacade.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ArtefactType.java   (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java   (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java   (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java   (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java   (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/Strategy.java   (with props)
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java   (contents, props changed)
      - copied, changed from r885883, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/DirStrategy.java
      - copied, changed from r885883, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java
      - copied, changed from r885883, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
Removed:
    myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/CompilerFacade.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java
Modified:
    myfaces/extensions/scripting/trunk/core/core-java6/pom.xml
    myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/JavaDynamicClassIdentifierTest.java
    myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy
    myfaces/extensions/scripting/trunk/core/core/src/main/java/ideas.txt
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ConstructorLevelReloadingHandler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ReloadingInvocationHandler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ReflectUtil.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/Compiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces12-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingApplicationFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingFacesContextFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingLifecycleFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/factories/ScriptingRenderkitFactory.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ELResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/FacesContextProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/LifefcycleProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/NavigationHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/RenderkitProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ResourceHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/VariableResolverProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ViewHandlerProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ComponentImplementationListener.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/JavaAnnotationScanner.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/startup/IntialScanAnnotationListener.java

Modified: myfaces/extensions/scripting/trunk/core/core-java6/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/pom.xml?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/pom.xml (original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/pom.xml Tue Dec  8 23:42:13 2009
@@ -10,6 +10,7 @@
         myfaces extension core java6 lib
     &lt;/description&gt;
 
+    
     &lt;parent&gt;
         &lt;groupId&gt;org.apache.myfaces.extension-scripting&lt;/groupId&gt;
         &lt;artifactId&gt;core-root&lt;/artifactId&gt;

Copied: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java (from r885883, myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/CompilerFacade.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java?p2=myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java&amp;p1=myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/CompilerFacade.java&amp;r1=885883&amp;r2=888630&amp;rev=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/CompilerFacade.java (original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java Tue Dec  8 23:42:13 2009
@@ -31,21 +31,38 @@
 import java.util.Locale;
 
 /**
+ * &lt;p&gt;
  * A compiler facade encapsulating the JSR 199
  * so that we can switch the implementations
  * of connecting to javac on the fly
+ * &lt;/p&gt;
+ * &lt;p&gt;
+ * This class is applied to systems which can use the JSR199 compiler
+ * API. For older systems we have a javac compiler fallback and
+ * probably in the long run also an eclipse as well.
+ * &lt;/p&gt;
+ * &lt;p&gt;
+ * We applied first the apache commons-jci project there, but the state
+ * of the project was not where we needed it to be for our implementation
+ * and fixing and changing it was more work than what was needed for this project.
+ * In the dawn of the usage of JSR 199 it simply did not make any more sense
+ * to use commons-jci so we rolled our own small specialized facade for this
+ * &lt;/p&gt;
+ *
+ * TODO move this over to the unified compiler interface
+ *
  *
  * @author Werner Punz (latest modification by $Author: werpu $)
  * @version $Revision: 812255 $ $Date: 2009-09-07 20:51:39 +0200 (Mo, 07 Sep 2009) $
  */
-public class CompilerFacade implements DynamicCompiler {
+public class JSR199Compiler implements DynamicCompiler {
 
     JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
     DiagnosticCollector&lt;JavaFileObject&gt; diagnosticCollector = new DiagnosticCollector();
     ContainerFileManager fileManager = null;
     private static final String FILE_SEPARATOR = File.separator;
 
-    public CompilerFacade() {
+    public JSR199Compiler() {
         super();
         fileManager = new ContainerFileManager(javaCompiler.getStandardFileManager(diagnosticCollector, null, null));
         if (javaCompiler == null) {

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core-java6/src/main/java/org/apache/myfaces/scripting/loaders/java/jsr199/JSR199Compiler.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/JavaDynamicClassIdentifierTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/JavaDynamicClassIdentifierTest.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/JavaDynamicClassIdentifierTest.java (original)
+++ myfaces/extensions/scripting/trunk/core/core-java6/src/test/java/org/apache/myfaces/javaloader/core/JavaDynamicClassIdentifierTest.java Tue Dec  8 23:42:13 2009
@@ -21,10 +21,8 @@
 import org.junit.Test;
 import org.junit.Before;
 import static org.junit.Assert.*;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.core.CoreWeaver;
-import org.apache.myfaces.scripting.api.ScriptingConst;
-import org.apache.myfaces.scripting.loaders.java.DynamicClassIdentifier;
 import org.apache.myfaces.scripting.loaders.java.JavaScriptingWeaver;
 
 
@@ -43,14 +41,14 @@
         probe1 = new Probe1();
         probe2 = new Probe2();
         weaver = new CoreWeaver(new JavaScriptingWeaver());
-        ProxyUtils.setWeaver(weaver); 
+        WeavingContext.setWeaver(weaver);
     }
 
 
      @Test
      public void isDynamic() {
-        assertFalse("Class should be static",ProxyUtils.isDynamic(probe1.getClass()));
-        assertTrue("Class should be dynamic",ProxyUtils.isDynamic(probe2.getClass()));
+        assertFalse("Class should be static", WeavingContext.isDynamic(probe1.getClass()));
+        assertTrue("Class should be dynamic", WeavingContext.isDynamic(probe2.getClass()));
      }
 
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/groovy/org/apache/myfaces/groovyloader/core/Groovy2GroovyObjectReloadingProxy.groovy Tue Dec  8 23:42:13 2009
@@ -20,8 +20,8 @@
 
 import org.apache.myfaces.groovyloader.core.GroovyWeaver
 import org.apache.myfaces.scripting.loaders.groovy.MetaclassStubcompilerFix
-import org.apache.myfaces.scripting.core.util.ProxyUtils
-import org.apache.myfaces.scripting.core.util.ProxyUtils
+import org.apache.myfaces.scripting.core.util.WeavingContext
+import org.apache.myfaces.scripting.core.util.WeavingContext
 
 /**
  * A proxying class doing constructor interceoption
@@ -85,7 +85,7 @@
         Object a_object = super.invokeConstructor(objects);    //To change body of overridden methods use File | Settings | File Templates.
 
         if (weaver == null)
-            weaver = ProxyUtils.getWeaver();
+            weaver = WeavingContext.getWeaver();
 
         a_object = weaver.reloadScriptingInstance(a_object);
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/ideas.txt
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/ideas.txt?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/ideas.txt (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/ideas.txt Tue Dec  8 23:42:13 2009
@@ -90,6 +90,107 @@
 track of the annotation states so that we can unregister deleted ones )
 
 
+----------------
+
+idea of a better compile cycle...
+problem currently, we do a class by class compile
+this strategy has been proven to be problematic, too many sidedependencies are not
+found and result in way too many classcast exceptions
+
+better option, since we cannot exchange the classes fully without getting exceptions
+from time to time on existing objects we try to minimize the problem the following ways
+
+beans: reload the classes which need to be reloaded, full bean tree reload with probably an annotation
+for beans which should be kept
+
+others full reload
+
+full recompilation if we have dirty classes at the beginning of the lifecycle so that
+we get fresh compilates at the time we access the page, no more on demand reload.
+
+We should keep a dirty marker centrally for artefacts which have changed.
+
+Additional advantage of the full recompile, we can deal with annotation scans on
+binary level instead of source level because and hence can support annotations
+on the fly,
+
+We still can get classcast exceptions because we cannot reload all artefacts newly compiled
+but we have less problems with classcasts than in our single file reloading strategy
+
+--------------
+
+clearing of the managed bean map:
+
+   public Object getValue(final ELContext context, final Object base, final Object property)
+        throws NullPointerException, PropertyNotFoundException, ELException
+    {
+
+        if (base != null)
+            return null;
+
+        if (property == null)
+        {
+            throw new PropertyNotFoundException();
+        }
+
+        final ExternalContext extContext = externalContext(context);
+
+        if (extContext == null)
+            return null;
+        if (extContext.getRequestMap().containsKey(property))
+            return null;
+        if (extContext.getSessionMap().containsKey(property))
+            return null;
+        if (extContext.getApplicationMap().containsKey(property))
+            return null;
+
+        if (!(property instanceof String))
+            return null;
+
+        final String strProperty = (String)property;
+
+        final ManagedBean managedBean = runtimeConfig(context).getManagedBean(strProperty);
+        Object beanInstance = null;
+        if (managedBean != null)
+        {
+            FacesContext facesContext = facesContext(context);
+            context.setPropertyResolved(true);
+            beanInstance = createManagedBean(managedBean, facesContext);
+        }
+
+        return beanInstance;
+
+        we have to clear the entire property from the request map, the session map and the application
+        map, once we have identified which managed beans are invalidated, so that
+        we can refresh all of them at request.
+
+        We also drop all properties there so and do not keep anything
+
+Ok lets sum everything up
+a) Strategy 1: we reload only the object affected and keep the properties intact,
+  positive: simple
+  negative: too limiting
+
+b) fine grained control of the reloading, we cascade over the entire object tree and invalidate the objects
+  touched by the dependency resolution while trying to keep the properties intact
+  positive: probably the best control over everything which has to be reloaded
+  negative: very complicated and slowest
+
+c) we drop all managed beans we have in the system only the ones we mark as not droppable are kept
+  (login handlers for testing etc...)
+  positive: very simple to implement by simply nulling all managed bean entries in the session application and request map
+  and then simply assigning the new managed beans to the objects kept
+  negative, way too much data loss in this case, we cannot keep the properties
+  
+
+
+
+
+
+
+
+
+
 
 
 

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ArtefactType.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ArtefactType.java?rev=888630&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ArtefactType.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ArtefactType.java Tue Dec  8 23:42:13 2009
@@ -0,0 +1,26 @@
+package org.apache.myfaces.scripting.api;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *          &lt;p/&gt;
+ *          A set of artefact types which are used internally
+ *          so that the reloading strategies and other parts of the system
+ *          can adapt to the type of the artefact which has to be reloaded
+ */
+public enum ArtefactType {
+    MANAGED_BEAN,
+    COMPONENT,
+    BEHAVIOR,
+    VALIDATOR,
+    RENDERER,
+    NAV_HANDLER,
+    RENDERKIT,
+    VIEWHANDLER,
+    LIFECYCLE,
+    FACESCONTEXT,
+    ELRESOLVER,
+    VARIABLERESOLVER,
+    SCOPE,
+    RESOURCEHANDLER
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ArtefactType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ArtefactType.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/BaseWeaver.java Tue Dec  8 23:42:13 2009
@@ -4,6 +4,8 @@
 import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.refresh.ReloadingMetadata;
 import org.apache.myfaces.scripting.refresh.FileChangedDaemon;
+import org.apache.myfaces.scripting.core.reloading.SimpleReloadingStrategy;
+import org.apache.myfaces.scripting.core.reloading.GlobalReloadingStrategy;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -27,9 +29,11 @@
      */
     protected List&lt;String&gt; scriptPaths = new LinkedList&lt;String&gt;();
 
+    ReloadingStrategy _reloadingStrategy = null;
+
 
     public BaseWeaver() {
-        //work around for yet another groovy bug
+        _reloadingStrategy = new GlobalReloadingStrategy(this);
     }
 
     public BaseWeaver(String fileEnding, int scriptingEngine) {
@@ -55,7 +59,7 @@
     /**
      * condition which marks a metadata as reload candidate
      */
-    protected boolean isReloadCandidate(ReloadingMetadata reloadMeta) {
+    public boolean isReloadCandidate(ReloadingMetadata reloadMeta) {
         return reloadMeta != null &amp;&amp; assertScriptingEngine(reloadMeta) &amp;&amp; reloadMeta.isTaintedOnce();
     }
 
@@ -87,27 +91,11 @@
         //not tained even once == not even considered to be reloaded
         if (isReloadCandidate(reloadMeta)) {
 
-            //reload the class to get new static content if needed
-            Class aclass = reloadScriptingClass(scriptingInstance.getClass());
-            if (aclass.hashCode() == scriptingInstance.getClass().hashCode()) {
-                //class of this object has not changed although
-                // reload is enabled we can skip the rest now
-                return scriptingInstance;
-            }
-            getLog().info("possible reload for " + scriptingInstance.getClass().getName());
-            /*only recreation of empty constructor classes is possible*/
-            try {
-                //reload the object by instiating a new class and
-                // assigning the attributes properly
-                Object newObject = aclass.newInstance();
-
-                /*now we shuffle the properties between the objects*/
-                mapProperties(newObject, scriptingInstance);
-
-                return newObject;
-            } catch (Exception e) {
-                getLog().error(e);
+            Object reloaded = _reloadingStrategy.reload(scriptingInstance);
+            if (reloaded != null) {
+                return reloaded;
             }
+
         }
         return scriptingInstance;
 
@@ -234,7 +222,7 @@
     }
 
     public ScriptingWeaver getWeaverInstance(Class weaverClass) {
-        if(getClass().equals(weaverClass)) return this;
+        if (getClass().equals(weaverClass)) return this;
 
         return null;
     }

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java?rev=888630&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java Tue Dec  8 23:42:13 2009
@@ -0,0 +1,16 @@
+package org.apache.myfaces.scripting.api;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ * Generic strategy for reloading
+ * this should encapsule various
+ * reloading strategies
+ * which have to be applied depending
+ * on the artefact
+ * 
+ */
+public interface ReloadingStrategy {
+    public Object reload(Object toReload);
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ReloadingStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingWeaver.java Tue Dec  8 23:42:13 2009
@@ -42,6 +42,7 @@
 
     /**
      * @param o
+     * 
      * @return reloads an existing objects with its attributes
      *         and assigns the reloaded class to the new object
      *         &lt;p/&gt;

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ConstructorLevelReloadingHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ConstructorLevelReloadingHandler.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ConstructorLevelReloadingHandler.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ConstructorLevelReloadingHandler.java Tue Dec  8 23:42:13 2009
@@ -18,12 +18,11 @@
  */
 package org.apache.myfaces.scripting.core;
 
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
 
 import java.io.Serializable;
-import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
@@ -61,7 +60,7 @@
 
     protected Object reloadInvoke(Method method, Object[] objects) throws InstantiationException, IllegalAccessException, InvocationTargetException {
         if (_weaver == null)
-            _weaver = ProxyUtils.getWeaver();
+            _weaver = WeavingContext.getWeaver();
 
         if (_delegate == null) {
             //stateless or lost state due to a lifecycle iteration we trigger anew
@@ -80,7 +79,7 @@
 
     private void unmapProxies(Object[] objects) {
         for (int cnt = 0; cnt &lt; objects.length; cnt++) {
-            objects[cnt] = ProxyUtils.getDelegateFromProxy(objects[cnt]);
+            objects[cnt] = WeavingContext.getDelegateFromProxy(objects[cnt]);
         }
     }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/CoreWeaver.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,6 @@
 
 import org.apache.myfaces.scripting.api.ScriptingConst;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -42,6 +41,8 @@
 
     List&lt;ScriptingWeaver&gt; _weavers = new ArrayList&lt;ScriptingWeaver&gt;();
 
+    
+
     public CoreWeaver(ScriptingWeaver... weavers) {
         for (ScriptingWeaver weaver : weavers) {
             _weavers.add(weaver);

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/MethodLevelReloadingHandler.java Tue Dec  8 23:42:13 2009
@@ -19,13 +19,10 @@
 package org.apache.myfaces.scripting.core;
 
 
-import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
-import org.apache.myfaces.scripting.core.util.ReflectUtil;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 
 import java.io.Serializable;
-import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
@@ -81,7 +78,7 @@
 
     protected Object reloadInvoke(Method method, Object[] objects) throws InstantiationException, IllegalAccessException, InvocationTargetException {
         if (_weaver == null)
-            _weaver = ProxyUtils.getWeaver();
+            _weaver = WeavingContext.getWeaver();
 
         if (_delegate == null) {
             //stateless or lost state due to a lifecycle iteration we trigger anew
@@ -91,7 +88,7 @@
             _delegate = _weaver.reloadScriptingInstance(_delegate);
 
             //we work our way through all proxies and fetch the class for further reference
-            Object delegate = ProxyUtils.getDelegateFromProxy(_delegate);
+            Object delegate = WeavingContext.getDelegateFromProxy(_delegate);
             _loadedClass = delegate.getClass();
         }
         //check for proxies and unproxy them before calling the methods
@@ -112,7 +109,7 @@
     private void unmapProxies(Object[] objects) {
         if (objects == null) return;
         for (int cnt = 0; cnt &lt; objects.length; cnt++) {
-            objects[cnt] = ProxyUtils.getDelegateFromProxy(objects[cnt]);
+            objects[cnt] = WeavingContext.getDelegateFromProxy(objects[cnt]);
         }
     }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ReloadingInvocationHandler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ReloadingInvocationHandler.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ReloadingInvocationHandler.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/ReloadingInvocationHandler.java Tue Dec  8 23:42:13 2009
@@ -1,12 +1,9 @@
 package org.apache.myfaces.scripting.core;
 
 import org.apache.myfaces.scripting.api.Decorated;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
 import org.apache.myfaces.scripting.core.util.ReflectUtil;
 
-import java.lang.reflect.Method;
 import java.lang.reflect.InvocationHandler;
-import java.util.Collection;
 
 /**
  * @author Werner Punz (latest modification by $Author$)

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java?rev=888630&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java Tue Dec  8 23:42:13 2009
@@ -0,0 +1,51 @@
+/*
+ * 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.scripting.core.reloading;
+
+import org.apache.myfaces.scripting.api.ReloadingStrategy;
+import org.apache.myfaces.scripting.api.BaseWeaver;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *          &lt;p/&gt;
+ *          A reloading strategy chain of responsibility which switches
+ *          depending on the artefact type to the correct
+ *          strategy
+ */
+
+public class GlobalReloadingStrategy implements ReloadingStrategy {
+
+    private BaseWeaver _weaver = null;
+
+    private ReloadingStrategy _beanStrategy;
+    private ReloadingStrategy _allOthers;
+
+    public GlobalReloadingStrategy(BaseWeaver weaver) {
+        _weaver = weaver;
+        _beanStrategy = new ManagedBeanReloadingStrategy(weaver);
+        _allOthers = new SimpleReloadingStrategy(weaver);
+    }
+
+    public Object reload(Object toReload) {
+        //TODO add the managed bean identification code here
+        //so that we can switch strategies on the fly
+        return _allOthers.reload(toReload);
+    }
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/GlobalReloadingStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java?rev=888630&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java Tue Dec  8 23:42:13 2009
@@ -0,0 +1,134 @@
+/*
+ * 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.scripting.core.reloading;
+
+import org.apache.myfaces.scripting.api.ReloadingStrategy;
+import org.apache.myfaces.scripting.api.BaseWeaver;
+import org.apache.myfaces.config.element.ManagedBean;
+import org.apache.myfaces.config.RuntimeConfig;
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.faces.context.FacesContext;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
+import java.util.List;
+import java.util.HashMap;
+import java.util.ArrayList;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *          &lt;p/&gt;
+ *          The managed beans have a different reloading
+ *          strategy, TODO
+ *          we have to figure out which strategy to follow
+ */
+
+public class ManagedBeanReloadingStrategy implements ReloadingStrategy {
+
+    BaseWeaver _weaver;
+    Map&lt;String, List&lt;ManagedBean&gt;&gt; _managedBeanIdx = null;
+
+
+    public ManagedBeanReloadingStrategy(BaseWeaver weaver) {
+        _weaver = weaver;
+        buildupManagedBeanIdx();
+    }
+
+
+    private void buildupManagedBeanIdx() {
+        /**
+         * we build up a reverse index for the managed beans to resolve
+         * make it easier for dependency reloading
+         * the current loading strategy is simple
+         * normal attribute, we do shift from the old object to the new one
+         * managed bean we refresh on the managed bean as well
+         * we need the reverse index to identify whether the attribute class justifies for being a
+         * managed bean or not
+         */
+        _managedBeanIdx = new HashMap&lt;String, List&lt;ManagedBean&gt;&gt;();
+        Map&lt;String, ManagedBean&gt; beans = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance().getExternalContext()).getManagedBeans();
+        for (Map.Entry&lt;String, ManagedBean&gt; entry : beans.entrySet()) {
+            String className = entry.getValue().getManagedBeanClassName();
+            if (!_managedBeanIdx.containsKey(className)) {
+                List&lt;ManagedBean&gt; beanListForClass = new ArrayList&lt;ManagedBean&gt;();
+                _managedBeanIdx.put(className, beanListForClass);
+                beanListForClass.add(entry.getValue());
+            } else {
+                _managedBeanIdx.get(className).add(entry.getValue());
+            }
+        }
+    }
+
+    public Object reload(Object scriptingInstance) {
+        //TODO build up the managed bean idx at request time or make a request blocker
+        //so that we build up the idx only once per request
+
+        //reload the class to get new static content if needed
+        Class aclass = _weaver.reloadScriptingClass(scriptingInstance.getClass());
+        if (aclass.hashCode() == scriptingInstance.getClass().hashCode()) {
+            //class of this object has not changed although
+            // reload is enabled we can skip the rest now
+            return scriptingInstance;
+        }
+        getLog().info("possible reload for " + scriptingInstance.getClass().getName());
+        /*only recreation of empty constructor classes is possible*/
+        try {
+            //reload the object by instiating a new class and
+            // assigning the attributes properly
+            Object newObject = aclass.newInstance();
+
+            /*now we shuffle the properties between the objects*/
+            mapProperties(newObject, scriptingInstance);
+
+            return newObject;
+        } catch (Exception e) {
+            getLog().error(e);
+        }
+        return null;
+
+    }
+
+
+    /**
+     * helper to map the properties wherever possible
+     *
+     * @param target
+     * @param src
+     */
+    protected void mapProperties(Object target, Object src) {
+        try {
+            
+
+            BeanUtils.copyProperties(target, src);
+        } catch (IllegalAccessException e) {
+            getLog().debug(e);
+            //this is wanted
+        } catch (InvocationTargetException e) {
+            getLog().debug(e);
+            //this is wanted
+        }
+    }
+
+    protected Log getLog() {
+        return LogFactory.getLog(this.getClass());
+    }
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/ManagedBeanReloadingStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java?rev=888630&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java Tue Dec  8 23:42:13 2009
@@ -0,0 +1,93 @@
+/*
+ * 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.scripting.core.reloading;
+
+import org.apache.myfaces.scripting.api.ReloadingStrategy;
+import org.apache.myfaces.scripting.api.BaseWeaver;
+import org.apache.myfaces.scripting.refresh.ReloadingMetadata;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.beanutils.BeanUtils;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class SimpleReloadingStrategy implements ReloadingStrategy {
+
+    BaseWeaver _weaver;
+
+    public SimpleReloadingStrategy(BaseWeaver weaver) {
+        _weaver = weaver;
+    }
+
+    public Object reload(Object scriptingInstance) {
+
+        //reload the class to get new static content if needed
+        Class aclass = _weaver.reloadScriptingClass(scriptingInstance.getClass());
+        if (aclass.hashCode() == scriptingInstance.getClass().hashCode()) {
+            //class of this object has not changed although
+            // reload is enabled we can skip the rest now
+            return scriptingInstance;
+        }
+        getLog().info("possible reload for " + scriptingInstance.getClass().getName());
+        /*only recreation of empty constructor classes is possible*/
+        try {
+            //reload the object by instiating a new class and
+            // assigning the attributes properly
+            Object newObject = aclass.newInstance();
+
+            /*now we shuffle the properties between the objects*/
+            mapProperties(newObject, scriptingInstance);
+
+            return newObject;
+        } catch (Exception e) {
+            getLog().error(e);
+        }
+        return null;
+        
+    }
+
+
+    /**
+     * helper to map the properties wherever possible
+     *
+     * @param target
+     * @param src
+     */
+    protected void mapProperties(Object target, Object src) {
+        try {
+            BeanUtils.copyProperties(target, src);
+        } catch (IllegalAccessException e) {
+            getLog().debug(e);
+            //this is wanted
+        } catch (InvocationTargetException e) {
+            getLog().debug(e);
+            //this is wanted
+        }
+    }
+
+    protected Log getLog() {
+        return LogFactory.getLog(this.getClass());
+    }
+
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/reloading/SimpleReloadingStrategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java Tue Dec  8 23:42:13 2009
@@ -50,4 +50,52 @@
         return tempDir;
     }
 
+
+    /**
+     * we roll our own treewalker here
+     * to avoid a dependency into commons fileutils
+     * and to apply an easier pattern than
+     * commons fileutils uses
+     *
+     * @param rootDir
+     * @param strategy
+     */
+    public static void listFiles(File rootDir, Strategy strategy) {
+        if(!rootDir.isDirectory()) {
+            strategy.apply(rootDir);
+            return;
+        }
+
+        //TODO apply a filter here instead of doing the check directly
+        File [] files = rootDir.listFiles();
+        for(File file: files) {
+            boolean isDirectory = file.isDirectory();
+            if(isDirectory &amp;&amp; !file.getName().endsWith(".")) {
+                listFiles(file, strategy);
+                strategy.apply(file);
+            } else if (!isDirectory) {
+                strategy.apply(file);
+            }
+        }
+    }
+
+    /**
+     * &lt;p&gt;
+     * target path check to check if the targetPath is valid or can be created
+     * &lt;/p&gt;
+     *
+     * @param path
+     */
+    public static void assertPath(File path) {
+        // The destination directory must already exist as javac will not create the destination directory.
+        if (!path.exists()) {
+            if (!path.mkdirs()) {
+                throw new IllegalStateException("It wasn't possible to create the target " +
+                                                "directory for the compiler ['" + path.getAbsolutePath() + "'].");
+            }
+
+            // If we've created the destination directory, we'll delete it as well once the application exits
+            path.deleteOnExit();
+        }
+    }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ReflectUtil.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ReflectUtil.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ReflectUtil.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ReflectUtil.java Tue Dec  8 23:42:13 2009
@@ -26,7 +26,6 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationHandler;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 
 /**
@@ -165,7 +164,7 @@
         if (obj instanceof InvocationHandler) {
             InvocationHandler objToInvoke = (InvocationHandler) obj;
 
-            Object realTarget = ProxyUtils.getDelegateFromProxy(objToInvoke);
+            Object realTarget = WeavingContext.getDelegateFromProxy(objToInvoke);
 
             //first we try only the public because they are the most likely ones
             //to be accessed

Added: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/Strategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/Strategy.java?rev=888630&amp;view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/Strategy.java (added)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/Strategy.java Tue Dec  8 23:42:13 2009
@@ -0,0 +1,34 @@
+/*
+ * 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.scripting.core.util;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ *
+ * Applied strategy class for iteration walkers
+ * to make the handling of iterated objects
+ * more scripty al
+ *
+ */
+public interface Strategy {
+
+    public void apply(Object element);
+
+}

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/Strategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/Strategy.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Copied: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java (from r885883, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java?p2=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java&amp;p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java&amp;r1=885883&amp;r2=888630&amp;rev=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java Tue Dec  8 23:42:13 2009
@@ -20,8 +20,6 @@
 
 import org.apache.myfaces.scripting.api.Decorated;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
-import org.apache.myfaces.scripting.api.DynamicClassIdentifier;
-import org.apache.myfaces.scripting.api.BaseWeaver;
 import org.apache.myfaces.scripting.core.MethodLevelReloadingHandler;
 import org.apache.myfaces.scripting.core.DummyWeaver;
 import org.apache.myfaces.scripting.core.scanEvents.SystemEventProcessor;
@@ -29,27 +27,34 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.Log;
 
+import javax.faces.context.FacesContext;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
- * A set of proxy utils called
+ * A set of weaving context class called
  * by the various subsystems
  *
  * @author Werner Punz
  */
-public class ProxyUtils {
+public class WeavingContext {
+
 
     /**
+     * &lt;p&gt;
      * we push our _weaver into the thread local
      * to avoid too many calls into the
      * context classloading hierarchy
      * this should speed things up a little bit.
-     * &lt;p/&gt;
+     * &lt;/p&gt;
+     * &lt;p&gt;
      * Note we could work with this with static
      * objects as well but since we also have to work with context
      * reloading we probably are safer with filters
      * a reference in the context and a threadLocal variable
+     * &lt;/p&gt;
      */
     static ThreadLocal _weaverHolder = new ThreadLocal();
 
@@ -60,10 +65,25 @@
 
     }
 
+
+    /**
+     * general shutdown clean
+     */
     public static void clean() {
         _weaverHolder.set(null);
     }
 
+    /**
+     * fetches the generic request map if available
+     *
+     * @return the request map if available, null otherwise
+     */
+    public Map&lt;String, Object&gt; getRequestAttributesMap() {
+        FacesContext ctx = FacesContext.getCurrentInstance();
+        if (ctx == null) return null;
+        return ctx.getExternalContext().getRequestMap();
+    }
+
 
     /**
      * @return returns the thread bound system event processor
@@ -77,6 +97,14 @@
         return retVal;
     }
 
+
+    /**
+     * the weavers are set from outside
+     * we have to provide the weaver facade
+     * for very thread accessing this system
+     *
+     * @param weaver
+     */
     public static void setWeaver(Object weaver) {
         _weaverHolder.set(weaver);
         if (FileChangedDaemon.getInstance().getWeavers() == null) {
@@ -84,20 +112,33 @@
         }
     }
 
+    /**
+     * checks whether the system
+     * has scripting enabled or not
+     *
+     * @return true in case of being scriptable
+     */
     public static boolean isScriptingEnabled() {
         return _weaverHolder.get() != null;
     }
 
+    /**
+     * fetches the weavers
+     * for this current thread
+     *
+     * @return a ScriptingWeaver chain for all weavers currently supported
+     */
     public static ScriptingWeaver getWeaver() {
         ScriptingWeaver weaver = (ScriptingWeaver) _weaverHolder.get();
         if (weaver == null) {
-            Log log = LogFactory.getLog(ProxyUtils.class);
+            Log log = LogFactory.getLog(WeavingContext.class);
             log.warn("Scripting Weaver is not set. Disabling script reloading subsystem. Make sure you have the scripting servlet filter enabled in your web.xml");
             _weaverHolder.set(new DummyWeaver());
         }
         return (ScriptingWeaver) _weaverHolder.get();
     }
 
+
     /**
      * we create a proxy to an existing object
      * which does reloading of the internal class
@@ -140,7 +181,7 @@
      * @return the unproxied object
      */
     public static Object getDelegateFromProxy(Object o) {
-        if(o == null) {
+        if (o == null) {
             return null;
         }
         if (o instanceof Decorated)

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaScriptingWeaver.java Tue Dec  8 23:42:13 2009
@@ -158,7 +158,7 @@
          * //we only deal with class level reloading here
          * //the deregistration notification should happen on artefact level (which will be the next subtask)
          */
-        if(_scanner != null) {
+        if (_scanner != null) {
             _scanner.scanClass(retVal);
         }
 
@@ -203,6 +203,11 @@
         for (String scriptPath : getScriptPaths()) {
             //compile via javac dynamically, also after this block dynamic compilation
             //for the entire length of the request,
+            try {
+                compiler.compileAllFiles(scriptPath, classPath);
+            } catch (ClassNotFoundException e) {
+                log.error(e);
+            }
 
         }
 

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/Compiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/Compiler.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/Compiler.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/Compiler.java Tue Dec  8 23:42:13 2009
@@ -6,17 +6,27 @@
 /**
  *
  */
-interface Compiler {
+public interface Compiler {
 
     /**
      * &lt;p&gt;Compiles the given file and creates an according class file in the given target path.&lt;/p&gt;
      *
      * @param sourcePath the path to the source directory
      * @param targetPath the path to the target directory
-     * @param file the relative file name of the class you want to compile
-     * 
+     * @param file       the relative file name of the class you want to compile
      * @return the compilation result, i.e. the compiler output, a list of errors and a list of warnings
      */
     public CompilationResult compile(File sourcePath, File targetPath, String file, String classPath) throws CompilationException;
 
+
+    /**
+     * &lt;p&gt;Compiles the given sources and creates an according class files in the given target path.&lt;/p&gt;
+     *
+     * @param sourcePath the path to the source directory
+     * @param targetPath the path to the target directory
+     * @param file       the relative file name of the class you want to compile
+     * @return the compilation result, i.e. the compiler output, a list of errors and a list of warnings
+     */
+    public CompilationResult compile(File sourcePath, File targetPath, String classPath) throws CompilationException;
+
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/CompilerFacade.java Tue Dec  8 23:42:13 2009
@@ -49,6 +49,31 @@
     }
 
 
+    /**
+     * does a compilation of all files one compile per request
+     * is allowed for performance reasons, the request blocking will be done
+     * probably on the caller side of things
+     *
+     * @param sourceRoot
+     * @param classPath
+     */
+    public void compileAll(String sourceRoot, String classPath) {
+        try {
+            //TODO do a full compile and block the compile for the rest of the request
+            //so that we do not run into endless compile cycles
+
+            CompilationResult result = compiler.compile(new File(sourceRoot), fileManager.getTempDir(), fileManager.getClassPath());
+            displayMessages(result);
+            if(result.hasErrors()) {
+                log.error("Compiler output:" + result.getCompilerOutput());
+            }
+
+        } catch (CompilationException e) {
+            log.error(e);
+        }
+    }
+
+
     public Class compileFile(String sourceRoot, String classPath, String filePath) throws ClassNotFoundException {
 
         String className = filePath.replaceAll(File.separator, ".");
@@ -59,7 +84,7 @@
 
             displayMessages(result);
 
-            if (result.getErrors().size() == 0) {
+            if (!result.hasErrors()) {
                 ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
                 if (!(oldClassLoader instanceof RecompiledClassLoader)) {
                     try {
@@ -74,7 +99,7 @@
                     }
                 }
             } else {
-                log.error("Compiler output:"+result.getCompilerOutput());
+                log.error("Compiler output:" + result.getCompilerOutput());
             }
 
         } catch (CompilationException e) {
@@ -89,7 +114,7 @@
 
     private void displayMessages(CompilationResult result) {
         for (CompilationResult.CompilationMessage error : result.getErrors()) {
-            log.error(error.getLineNumber()+"-"+error.getMessage());
+            log.error(error.getLineNumber() + "-" + error.getMessage());
 
         }
         for (CompilationResult.CompilationMessage error : result.getWarnings()) {

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/jdk5/JavacCompiler.java Tue Dec  8 23:42:13 2009
@@ -3,6 +3,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.scripting.core.util.ClassUtils;
+import org.apache.myfaces.scripting.core.util.FileUtils;
+import org.apache.myfaces.scripting.loaders.java.util.DirStrategy;
 
 import java.io.File;
 import java.io.PrintWriter;
@@ -43,6 +45,7 @@
      * The class reference to the internal Javac compiler.
      */
     private Class compilerClass;
+    private static final String JAVA_WILDCARD = "*.java ";
 
     // ------------------------------------------ Constructors
 
@@ -80,26 +83,58 @@
 
     // ------------------------------------------ Compiler methods
 
+
     /**
      * &lt;p&gt;Compiles the given file and creates an according class file in the given target path.&lt;/p&gt;
      *
      * @param sourcePath the path to the source directory
      * @param targetPath the path to the target directory
-     * @param file       the relative file name of the class you want to compile
      * @return the compilation result, i.e. as of now only the compiler output
      */
-    public CompilationResult compile(File sourcePath, File targetPath, String file, String classPath) throws CompilationException {
-        // The destination directory must already exist as javac will not create the destination directory.
-        if (!targetPath.exists()) {
-            if (!targetPath.mkdirs()) {
-                throw new IllegalStateException("It wasn't possible to create the target " +
-                                                "directory for the compiler ['" + targetPath.getAbsolutePath() + "'].");
+    public CompilationResult compile(File sourcePath, File targetPath, String classPath) throws CompilationException {
+        FileUtils.assertPath(targetPath);
+
+        try {
+            StringWriter compilerOutput = new StringWriter();
+
+            // Invoke the Javac compiler
+            Method compile = compilerClass.getMethod("compile", new Class[]{String[].class, PrintWriter.class});
+            Integer returnCode = (Integer) compile.invoke(null,
+                                                          new Object[]{buildCompilerArguments(sourcePath, targetPath, classPath), new PrintWriter(compilerOutput)});
+
+            CompilationResult result = new CompilationResult(compilerOutput.toString());
+            if (returnCode == null || returnCode.intValue() != 0) {
+                result.registerError(new CompilationResult.CompilationMessage(-1,
+                                                                              "Executing the javac compiler failed. The return code is '" + returnCode + "'."));
             }
 
-            // If we've created the destination directory, we'll delete it as well once the application exits
-            targetPath.deleteOnExit();
+            return result;
+        } catch (NoSuchMethodException ex) {
+            throw new IllegalStateException("The Javac compiler class '" + compilerClass + "' doesn't provide the method " +
+                                            "compile(String, PrintWriter). Are you sure that you're using a valid Sun JDK?", ex);
+        } catch (InvocationTargetException ex) {
+            throw new IllegalStateException("An error occured while invoking the compile(String, PrintWriter) method of the " +
+                                            "Javac compiler class '" + compilerClass + "'. Are you sure that you're using a valid Sun JDK?", ex);
+        } catch (IllegalAccessException ex) {
+            throw new IllegalStateException("An error occured while invoking the compile(String, PrintWriter) method of the " +
+                                            "Javac compiler class '" + compilerClass + "'. Are you sure that you're using a valid Sun JDK?", ex);
         }
 
+    }
+
+
+    /**
+     * &lt;p&gt;Compiles the given file and creates an according class file in the given target path.&lt;/p&gt;
+     *
+     * @param sourcePath the path to the source directory
+     * @param targetPath the path to the target directory
+     * @param file       the relative file name of the class you want to compile
+     * @return the compilation result, i.e. as of now only the compiler output
+     */
+    public CompilationResult compile(File sourcePath, File targetPath, String file, String classPath) throws CompilationException {
+        // The destination directory must already exist as javac will not create the destination directory.
+        FileUtils.assertPath(targetPath);
+
         try {
             StringWriter compilerOutput = new StringWriter();
 
@@ -130,15 +165,71 @@
     // ------------------------------------------ Utility methods
 
     /**
+     * &lt;p/&gt;
+     * Creates the arguments for the compiler, i.e. builds up an array of arguments
+     * that one would pass to the javac compiler to compile a full path instead of a single file
+     *
+     * @param sourcePath the path to the source directory
+     * @param targetPath the path to the target directory
+     * @return an array of arguments that you have to pass to the Javac compiler
+     */
+    protected String[] buildCompilerArguments(File sourcePath, File targetPath, String classPath) {
+        DirStrategy dirStrategy = new DirStrategy();
+        FileUtils.listFiles(sourcePath, dirStrategy);
+
+        StringBuilder sourcesList = new StringBuilder(512);
+
+        String root = sourcePath.getAbsolutePath();
+        int rootLen = root.length() + 1;
+        for (File foundDir : dirStrategy.getFoundFiles()) {
+            String dirName = foundDir.getAbsolutePath();
+            dirName = dirName.substring(rootLen);
+            sourcesList.append(dirName);
+            sourcesList.append(File.separator);
+            sourcesList.append(JAVA_WILDCARD);
+        }
+        sourcesList.append(JAVA_WILDCARD);
+
+        List arguments = getDefaultArguments(sourcePath, targetPath, classPath);
+
+        // Append the source file that is to be compiled. Note that the user specifies only a relative file location.
+        arguments.add(sourcesList.toString());
+
+        return (String[]) arguments.toArray(new String[0]);
+    }
+
+    /**
      * &lt;p&gt;Creates the arguments for the compiler, i.e. it builds an array of arguments that one would pass to
      * the Javac compiler on the command line.&lt;/p&gt;
      *
      * @param sourcePath the path to the source directory
      * @param targetPath the path to the target directory
+     * @param classPath  the classpath for the compiler
      * @param file       the relative file name of the class you want to compile
      * @return an array of arguments that you have to pass to the Javac compiler
      */
     protected String[] buildCompilerArguments(File sourcePath, File targetPath, String file, String classPath) {
+        List arguments = getDefaultArguments(sourcePath, targetPath, classPath);
+
+        // Append the source file that is to be compiled. Note that the user specifies only a relative file location.
+        arguments.add(new File(sourcePath, file).getAbsolutePath());
+
+        return (String[]) arguments.toArray(new String[0]);
+    }
+
+    /**
+     * &lt;p&gt;
+     * Determination of the default arguments
+     * which have to be the same over all
+     * different compilation strategies
+     * &lt;/p&gt;
+     *
+     * @param sourcePath the path to the source directory
+     * @param targetPath the path to the target directory
+     * @param classPath  the classpath for the compiler
+     * @return
+     */
+    private List getDefaultArguments(File sourcePath, File targetPath, String classPath) {
         List arguments = new ArrayList();
 
         // Set both the source code path to search for class or interface
@@ -148,18 +239,14 @@
         arguments.add("-d");
         arguments.add(targetPath.getAbsolutePath());
         arguments.add("-cp");
-        arguments.add(classPath);       
+        arguments.add(classPath);
 
         // Enable verbose output.
         arguments.add("-verbose");
 
         // Generate all debugging information, including local variables.
         arguments.add("-g");
-
-        // Append the source file that is to be compiled. Note that the user specifies only a relative file location.
-        arguments.add(new File(sourcePath, file).getAbsolutePath());
-
-        return (String[]) arguments.toArray(new String[0]);
+        return arguments;
     }
 
     /**

Copied: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/DirStrategy.java (from r885883, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/DirStrategy.java?p2=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/DirStrategy.java&amp;p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java&amp;r1=885883&amp;r2=888630&amp;rev=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/DirStrategy.java Tue Dec  8 23:42:13 2009
@@ -16,38 +16,35 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.myfaces.scripting.core.util;
+package org.apache.myfaces.scripting.loaders.java.util;
+
+import org.apache.myfaces.scripting.core.util.Strategy;
 
 import java.io.File;
+import java.util.List;
+import java.util.LinkedList;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
 
-public class FileUtils {
-    static double _tempMarker = Math.random();
-
-    public static File getTempDir() {
-        File tempDir = null;
+public class DirStrategy implements Strategy {
+    List&lt;File&gt; _foundFiles = new LinkedList&lt;File&gt;();
 
-        String baseTempPath = System.getProperty("java.io.tmpdir");
-        String tempDirName = "myfaces_compilation_" + _tempMarker;
-
-        tempDir = new File(baseTempPath + File.separator + tempDirName);
-        while (tempDir.exists()) {
-            tempDirName = "myfaces_compilation_" + System.currentTimeMillis() + Math.random();
-            tempDir = new File(baseTempPath + File.separator + tempDirName);
+    public void apply(Object element) {
+        File foundFile = (File) element;
+        if (foundFile.isDirectory()) {
+            _foundFiles.add(foundFile);
         }
+    }
 
-        synchronized (FileUtils.class) {
-            if (tempDir.exists()) {
-                return tempDir;
-            }
-            tempDir.mkdirs();
-            tempDir.deleteOnExit();
-        }
-        return tempDir;
+    public List&lt;File&gt; getFoundFiles() {
+        return _foundFiles;
     }
 
+    public void setFoundFiles(List&lt;File&gt; foundFiles) {
+        _foundFiles = foundFiles;
+    }
 }
+

Copied: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java (from r885883, myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java?p2=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java&amp;p1=myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java&amp;r1=885883&amp;r2=888630&amp;rev=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/FileUtils.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/util/JavaFileStrategy.java Tue Dec  8 23:42:13 2009
@@ -16,38 +16,38 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.myfaces.scripting.core.util;
+package org.apache.myfaces.scripting.loaders.java.util;
 
+import org.apache.myfaces.scripting.core.util.Strategy;
+
+import java.util.List;
+import java.util.LinkedList;
 import java.io.File;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
+ *          &lt;p/&gt;
+ *          Java file strategy pattern to filter out all java files which are possible sources
+ *          so that we can recompile them
  */
 
-public class FileUtils {
-    static double _tempMarker = Math.random();
+public class JavaFileStrategy implements Strategy {
 
-    public static File getTempDir() {
-        File tempDir = null;
+    List&lt;File&gt; _foundFiles = new LinkedList&lt;File&gt;();
 
-        String baseTempPath = System.getProperty("java.io.tmpdir");
-        String tempDirName = "myfaces_compilation_" + _tempMarker;
+    public void apply(Object element) {
+        File foundFile = (File) element;
+        String fileName = foundFile.getName().toLowerCase();
+        if (!fileName.endsWith(".java")) return;
+        _foundFiles.add(foundFile);
+    }
 
-        tempDir = new File(baseTempPath + File.separator + tempDirName);
-        while (tempDir.exists()) {
-            tempDirName = "myfaces_compilation_" + System.currentTimeMillis() + Math.random();
-            tempDir = new File(baseTempPath + File.separator + tempDirName);
-        }
-
-        synchronized (FileUtils.class) {
-            if (tempDir.exists()) {
-                return tempDir;
-            }
-            tempDir.mkdirs();
-            tempDir.deleteOnExit();
-        }
-        return tempDir;
+    public List&lt;File&gt; getFoundFiles() {
+        return _foundFiles;
     }
 
+    public void setFoundFiles(List&lt;File&gt; foundFiles) {
+        _foundFiles = foundFiles;
+    }
 }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.java Tue Dec  8 23:42:13 2009
@@ -52,7 +52,18 @@
     // ConcurrentHashMap&lt;String, Renderer&gt;(8, 0.75f, 1)
     // segmented map here because we have to deal with multithreaded access
     Map&lt;String, ReloadingMetadata&gt; classMap = new ConcurrentHashMap&lt;String, ReloadingMetadata&gt;(8, 0.75f, 1);
-    
+
+    /**
+     * this map is a shortcut for the various scripting engines
+     * it keeps track whether the engines source paths
+     * have dirty files or not and if true we enforce a recompile at the
+     * next refresh!
+     * &lt;p/&gt;
+     * We keep track on engine level to avoid to search the classMap for every refresh
+     * the classMap still is needed for various identification tasks which are reload
+     * related
+     */
+    Map&lt;Integer, Boolean&gt; systemRecompileMap = new ConcurrentHashMap&lt;Integer, Boolean&gt;(8, 0.75f, 1);
 
 
     boolean running = false;
@@ -60,7 +71,6 @@
     ScriptingWeaver _weavers = null;
 
 
-
     public static synchronized FileChangedDaemon getInstance() {
         if (instance == null) {
             instance = new FileChangedDaemon();
@@ -85,21 +95,37 @@
             if (classMap == null || classMap.size() == 0)
                 continue;
 
+            /**
+             * centrail tainted mark method which keeps
+             * track if some file in one of the supported engines has changed
+             * and if yes marks the file as tainted as well
+             * as marks the engine as having to do a full recompile
+             */
             for (Map.Entry&lt;String, ReloadingMetadata&gt; it : this.classMap.entrySet()) {
                 if (!it.getValue().isTainted()) {
 
                     File proxyFile = new File(it.getValue().getSourcePath() + File.separator + it.getValue().getFileName());
                     it.getValue().setTainted(proxyFile.lastModified() != it.getValue().getTimestamp());
                     if (it.getValue().isTainted()) {
+                        systemRecompileMap.put(it.getValue().getScriptingEngine(), Boolean.TRUE);
                         it.getValue().setTaintedOnce(true);
-                        log.info("comparing" + it.getKey() + "Dates:" + proxyFile.lastModified() + "-" + it.getValue().getTimestamp());
-                        log.info("Tainting:" + it.getValue().getFileName());
+                        printInfo(it, proxyFile);
                     }
                     it.getValue().setTimestamp(proxyFile.lastModified());
+
                 }
             }
         }
-        log.info("Dynamic reloading watch daemon is shutting down");
+        if (log.isInfoEnabled()) {
+            log.info("Dynamic reloading watch daemon is shutting down");
+        }
+    }
+
+    private void printInfo(Map.Entry&lt;String, ReloadingMetadata&gt; it, File proxyFile) {
+        if (log.isInfoEnabled()) {
+            log.info("comparing" + it.getKey() + "Dates:" + proxyFile.lastModified() + "-" + it.getValue().getTimestamp());
+            log.info("Tainting:" + it.getValue().getFileName());
+        }
     }
 
     public boolean isRunning() {
@@ -111,6 +137,14 @@
     }
 
 
+    public Map&lt;Integer, Boolean&gt; getSystemRecompileMap() {
+        return systemRecompileMap;
+    }
+
+    public void setSystemRecompileMap(Map&lt;Integer, Boolean&gt; systemRecompileMap) {
+        this.systemRecompileMap = systemRecompileMap;
+    }
+
     public Map&lt;String, ReloadingMetadata&gt; getClassMap() {
         return classMap;
     }

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java?rev=888630&amp;r1=888629&amp;r2=888630&amp;view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/CustomChainLoader.java Tue Dec  8 23:42:13 2009
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.groovyloader.core.GroovyWeaver;
 import org.apache.myfaces.scripting.api.ScriptingWeaver;
-import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
 import org.apache.myfaces.scripting.core.CoreWeaver;
 import org.apache.myfaces.scripting.loaders.java.JavaScriptingWeaver;
 import org.apache.myfaces.shared_impl.util.ClassLoaderExtension;
@@ -67,7 +67,7 @@
         this.scriptingWeaver = new CoreWeaver(groovyWeaver, javaWeaver);
         //we have to store it because our filter
         //does not trigger upon initialisation
-        ProxyUtils.setWeaver(this.scriptingWeaver);
+        WeavingContext.setWeaver(this.scriptingWeaver);
     }
 
     private void setupScriptingPaths(ServletContext servletContext, ScriptingWeaver weaver, String contextRootKey, String initParams) {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888604 - in /myfaces/tomahawk/trunk: core/src/main/java/org/apache/myfaces/custom/tree/taglib/ core/src/main/java/org/apache/myfaces/renderkit/html/util/ core12/src/main/java/org/apache/myfaces/renderkit/html/util/</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208223206.9C00423889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208223206-9C00423889BB@eris-apache-org%3e</id>
<updated>2009-12-08T22:32:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Tue Dec  8 22:32:04 2009
New Revision: 888604

URL: http://svn.apache.org/viewvc?rev=888604&amp;view=rev
Log:
fix compatibility with JDK 1.4

Added:
    myfaces/tomahawk/trunk/core12/src/main/java/org/apache/myfaces/renderkit/html/util/
    myfaces/tomahawk/trunk/core12/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java
Modified:
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree/taglib/AbstractTreeTag.java
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree/taglib/AbstractTreeTag.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree/taglib/AbstractTreeTag.java?rev=888604&amp;r1=888603&amp;r2=888604&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree/taglib/AbstractTreeTag.java
(original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/tree/taglib/AbstractTreeTag.java
Tue Dec  8 22:32:04 2009
@@ -87,7 +87,7 @@
         int answer = super.doStartTag();
         HtmlTree tree = (HtmlTree) getComponentInstance();
 
-        if (getCreated() &amp;&amp; Boolean.parseBoolean(expandRoot)) {
+        if (getCreated() &amp;&amp; parseBoolean(expandRoot)) {
             // component was created, so expand the root node
             TreeModel model = tree.getModel(context);
 
@@ -100,6 +100,11 @@
         tree.addToModelListeners();
         return answer;
     }
+    
+    private boolean parseBoolean(String s)
+    {
+        return ((s != null) &amp;&amp; s.equalsIgnoreCase("true"));
+    }
 
     public void release() {
         super.release();

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java?rev=888604&amp;r1=888603&amp;r2=888604&amp;view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java
(original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java
Tue Dec  8 22:32:04 2009
@@ -230,7 +230,7 @@
         try {
             writeJavaScriptReference(context,getResourceUri(context,resourceHandler),true,false);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -239,7 +239,7 @@
             writeJavaScriptReference(context,getResourceUri(context,new MyFacesResourceHandler(
                     myfacesCustomComponent, resourceName)),true,false);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -248,7 +248,7 @@
             writeJavaScriptReference(context,getResourceUri(context,new MyFacesResourceHandler(
                     myfacesCustomComponent, resourceName)),true,true);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -256,7 +256,7 @@
         try {
             writeJavaScriptReference(context,getResourceUri(context,uri),true,false);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -264,7 +264,7 @@
         try {
             writeJavaScriptReference(context,getResourceUri(context,uri),true,true);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -284,7 +284,7 @@
         try {
             writeJavaScriptReference(context,getResourceUri(context,resourceHandler),true,defer);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -292,7 +292,7 @@
         try {
             writeJavaScriptReference(context,getResourceUri(context,new MyFacesResourceHandler(myfacesCustomComponent,
resourceName)),false,false);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -300,7 +300,7 @@
         try {
             writeStyleReference(context,getResourceUri(context,new MyFacesResourceHandler(myfacesCustomComponent,
resourceName)));
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -308,7 +308,7 @@
         try {
             writeStyleReference(context,getResourceUri(context,uri));
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -316,7 +316,7 @@
         try {
             writeStyleReference(context,getResourceUri(context,resourceHandler));
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -324,7 +324,7 @@
         try {
             writeInlineStylesheet(context.getResponseWriter(), inlineStyle);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 
@@ -332,7 +332,7 @@
         try {
             writeInlineScript(context.getResponseWriter(), inlineScript);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new IllegalStateException(e.getMessage());
         }
     }
 

Added: myfaces/tomahawk/trunk/core12/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core12/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java?rev=888604&amp;view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core12/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java
(added)
+++ myfaces/tomahawk/trunk/core12/src/main/java/org/apache/myfaces/renderkit/html/util/NonBufferingAddResource.java
Tue Dec  8 22:32:04 2009
@@ -0,0 +1,616 @@
+/*
+ * 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.renderkit.html.util;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.shared_tomahawk.config.MyfacesConfig;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlResponseWriterImpl;
+import org.apache.myfaces.shared_tomahawk.util.ClassUtils;
+
+import javax.faces.FacesException;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Map;
+
+/**
+ * @since 1.1.7
+ * @author Martin Marinschek
+ */
+public class NonBufferingAddResource implements AddResource {
+
+    protected static final String PATH_SEPARATOR = "/";
+    protected String _contextPath;
+
+    private static final String RESOURCES_CACHE_KEY = AddResource.class.getName() + ".CACHE_KEY";
+
+    private String resourceVirtualPath;
+
+    protected Log log = LogFactory.getLog(NonBufferingAddResource.class);
+
+    /**
+     * the context path for the web-app.&lt;br /&gt;
+     * You can set the context path only once, every subsequent set will throw an SecurityException
+     */
+    public void setContextPath(String contextPath)
+    {
+        if (_contextPath != null)
+        {
+            throw new SecurityException("context path already set");
+        }
+
+        _contextPath = contextPath;
+    }
+
+    // Methods to add resources
+
+    /**
+     * Insert a [script src="url"] entry at the current location in the response.
+     * The resource is expected to be in the classpath, at the same location as the
+     * specified component + "/resource".
+     * &lt;p/&gt;
+     * Example: when customComponent is class example.Widget, and
+     * resourceName is script.js, the resource will be retrieved from
+     * "example/Widget/resource/script.js" in the classpath.
+     */
+    public void addJavaScriptHere(FacesContext context, Class myfacesCustomComponent,
+                                  String resourceName) throws IOException
+    {
+        addJavaScriptHere(context, new MyFacesResourceHandler(myfacesCustomComponent, resourceName));
+    }
+
+    /**
+     * Insert a [script src="url"] entry at the current location in the response.
+     *
+     * @param uri is the location of the desired resource, relative to the base
+     *            directory of the webapp (ie its contextPath).
+     */
+    public void addJavaScriptHere(FacesContext context, String uri) throws IOException
+    {
+        writeJavaScriptReference(context, getResourceUri(context, uri), true, false);
+    }
+
+    protected static void writeJavaScriptReference(FacesContext context, String resourceUri,
boolean encoding, boolean defer) throws IOException{
+        ResponseWriter writer = context.getResponseWriter();
+
+        String src = null;
+        if(encoding) {
+            src=context.getExternalContext().encodeResourceURL(resourceUri);
+        }
+        else {
+            src = resourceUri;
+        }
+
+        writeJavaScriptReference(defer, writer, src);
+    }
+
+    protected static void writeJavaScriptReference(HttpServletResponse response, ResponseWriter
writer, String resourceUri, boolean encoding, boolean defer) throws IOException {
+        String src = null;
+        if(encoding) {
+            src=response.encodeURL(resourceUri);
+        }
+        else {
+            src = resourceUri;
+        }
+
+        writeJavaScriptReference(defer, writer, src);
+    }
+
+    private static void writeJavaScriptReference(boolean defer, ResponseWriter writer, String
src) throws IOException {
+        writer.startElement(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.SCRIPT_ELEM,
null);
+        writer.writeAttribute(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.SCRIPT_TYPE_ATTR,
org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
+
+        if(defer) {
+            writer.writeAttribute(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.SCRIPT_ELEM_DEFER_ATTR,
"true", null);
+        }
+        writer.writeURIAttribute(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.SRC_ATTR,
src, null);
+        writer.endElement(HTML.SCRIPT_ELEM);
+    }
+
+    protected static void writeStyleReference(FacesContext context, String resourceUri) throws
IOException {
+        ResponseWriter writer = context.getResponseWriter();
+        writer.startElement(HTML.LINK_ELEM, null);
+        writer.writeAttribute(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.REL_ATTR,
org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.STYLESHEET_VALUE, null);
+        writer.writeAttribute(HTML.HREF_ATTR, context.getExternalContext().encodeResourceURL(resourceUri),
null);
+        writer.writeAttribute(HTML.TYPE_ATTR, HTML.STYLE_TYPE_TEXT_CSS, null);
+        writer.endElement(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.LINK_ELEM);
+    }
+
+    protected static void writeStyleReference(HttpServletResponse response, ResponseWriter
writer,  String resourceUri) throws IOException {
+        writer.startElement(HTML.LINK_ELEM, null);
+        writer.writeAttribute(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.REL_ATTR,
org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.STYLESHEET_VALUE, null);
+        writer.writeAttribute(HTML.HREF_ATTR, response.encodeURL(resourceUri), null);
+        writer.writeAttribute(HTML.TYPE_ATTR, HTML.STYLE_TYPE_TEXT_CSS, null);
+        writer.endElement(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.LINK_ELEM);
+    }
+
+    protected static void writeInlineScript(ResponseWriter writer, String inlineScript) throws
IOException {
+            writer.startElement(HTML.SCRIPT_ELEM, null);
+            writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT,
null);
+            writer.writeText(inlineScript, null);
+            writer.endElement(HTML.SCRIPT_ELEM);
+    }
+
+    protected static  void writeInlineStylesheet(ResponseWriter writer, String inlineStyle)
throws IOException {
+        writer.startElement(HTML.STYLE_ELEM, null);
+        writer.writeAttribute(HTML.REL_ATTR, HTML.STYLESHEET_VALUE, null);
+        writer.writeAttribute(HTML.TYPE_ATTR, HTML.STYLE_TYPE_TEXT_CSS, null);
+        writer.writeText(inlineStyle, null);
+        writer.endElement(HTML.STYLE_ELEM);
+    }
+
+    public void addJavaScriptHerePlain(FacesContext context, String uri) throws IOException
+    {
+        writeJavaScriptReference(context, getResourceUri(context, uri), false, false);
+    }
+
+    /**
+     * Insert a [script src="url"] entry at the current location in the response.
+     *
+     * @param context The current faces-context
+     * @param resourceHandler is an object which specifies exactly how to build the url
+     *                        that is emitted into the script tag. Code which needs to generate
URLs in ways
+     *                        that this class does not support by default can implement a
custom ResourceHandler.
+     * @throws IOException
+     */
+    public void addJavaScriptHere(FacesContext context, ResourceHandler resourceHandler)
+            throws IOException
+    {
+        validateResourceHandler(resourceHandler);
+        writeJavaScriptReference(context, getResourceUri(context, resourceHandler), true,
false);
+    }
+
+    public void addResourceHere(FacesContext context, ResourceHandler resourceHandler)
+            throws IOException
+    {
+        validateResourceHandler(resourceHandler);
+
+        String path = getResourceUri(context, resourceHandler);
+        ResponseWriter writer = context.getResponseWriter();
+        writer.write(context.getExternalContext().encodeResourceURL(path));
+    }
+
+    /**
+     * Verify that the resource handler is acceptable. Null is not
+     * valid, and the getResourceLoaderClass method must return a
+     * Class object whose instances implements the ResourceLoader
+     * interface.
+     *
+     * @param resourceHandler handler to check
+     */
+    protected void validateResourceHandler(ResourceHandler resourceHandler)
+    {
+        if (resourceHandler == null)
+        {
+            throw new IllegalArgumentException("ResourceHandler is null");
+        }
+        validateResourceLoader(resourceHandler.getResourceLoaderClass());
+    }
+
+    /**
+     * Given a Class object, verify that the instances of that class
+     * implement the ResourceLoader interface.
+     *
+     * @param resourceloader loader to check
+     */
+    protected void validateResourceLoader(Class resourceloader)
+    {
+        if (!ResourceLoader.class.isAssignableFrom(resourceloader))
+        {
+            throw new FacesException("Class " + resourceloader.getName() + " must implement
"
+                    + ResourceLoader.class.getName());
+        }
+    }
+
+    public void addJavaScriptAtPosition(FacesContext context, ResourcePosition position,
ResourceHandler resourceHandler) {
+        try {
+            writeJavaScriptReference(context,getResourceUri(context,resourceHandler),true,false);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addJavaScriptAtPosition(FacesContext context, ResourcePosition position,
Class myfacesCustomComponent, String resourceName) {
+        try {
+            writeJavaScriptReference(context,getResourceUri(context,new MyFacesResourceHandler(
+                    myfacesCustomComponent, resourceName)),true,false);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addJavaScriptAtPosition(FacesContext context, ResourcePosition position,
Class myfacesCustomComponent, String resourceName, boolean defer) {
+        try {
+            writeJavaScriptReference(context,getResourceUri(context,new MyFacesResourceHandler(
+                    myfacesCustomComponent, resourceName)),true,true);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addJavaScriptAtPosition(FacesContext context, ResourcePosition position,
String uri) {
+        try {
+            writeJavaScriptReference(context,getResourceUri(context,uri),true,false);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addJavaScriptAtPosition(FacesContext context, ResourcePosition position,
String uri, boolean defer) {
+        try {
+            writeJavaScriptReference(context,getResourceUri(context,uri),true,true);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    /**
+     *
+     * @param context
+     * @param javascriptEventName
+     * @param addedJavaScript
+     *
+     * @deprecated
+     */
+    public void addJavaScriptToBodyTag(FacesContext context, String javascriptEventName,
String addedJavaScript) {
+        throw new UnsupportedOperationException("not supported anymore - use javascript to
register your body-event-handler directly");
+    }
+
+    public void addJavaScriptAtPosition(FacesContext context, ResourcePosition position,
ResourceHandler resourceHandler, boolean defer) {
+        try {
+            writeJavaScriptReference(context,getResourceUri(context,resourceHandler),true,defer);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addJavaScriptAtPositionPlain(FacesContext context, ResourcePosition position,
Class myfacesCustomComponent, String resourceName) {
+        try {
+            writeJavaScriptReference(context,getResourceUri(context,new MyFacesResourceHandler(myfacesCustomComponent,
resourceName)),false,false);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addStyleSheet(FacesContext context, ResourcePosition position, Class myfacesCustomComponent,
String resourceName) {
+        try {
+            writeStyleReference(context,getResourceUri(context,new MyFacesResourceHandler(myfacesCustomComponent,
resourceName)));
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addStyleSheet(FacesContext context, ResourcePosition position, String uri)
{
+        try {
+            writeStyleReference(context,getResourceUri(context,uri));
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addStyleSheet(FacesContext context, ResourcePosition position, ResourceHandler
resourceHandler) {
+        try {
+            writeStyleReference(context,getResourceUri(context,resourceHandler));
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addInlineStyleAtPosition(FacesContext context, ResourcePosition position,
String inlineStyle) {
+        try {
+            writeInlineStylesheet(context.getResponseWriter(), inlineStyle);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public void addInlineScriptAtPosition(FacesContext context, ResourcePosition position,
String inlineScript) {
+        try {
+            writeInlineScript(context.getResponseWriter(), inlineScript);
+        } catch (IOException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public String getResourceUri(FacesContext context, Class myfacesCustomComponent,
+                                 String resource, boolean withContextPath)
+    {
+        return getResourceUri(context,
+                new MyFacesResourceHandler(myfacesCustomComponent, resource), withContextPath);
+    }
+
+    public String getResourceUri(FacesContext context, Class myfacesCustomComponent, String
resource)
+    {
+        return getResourceUri(context, new MyFacesResourceHandler(myfacesCustomComponent,
resource));
+    }
+
+
+    /**
+     * Get the Path used to retrieve an resource.
+     */
+    public String getResourceUri(FacesContext context, ResourceHandler resourceHandler)
+    {
+        String uri = resourceHandler.getResourceUri(context);
+        if (uri == null)
+        {
+            return getResourceUri(context, resourceHandler.getResourceLoaderClass(), true);
+        }
+        return getResourceUri(context, resourceHandler.getResourceLoaderClass(), true) +
uri;
+    }
+
+    /**
+     * Get the Path used to retrieve an resource.
+     */
+    public String getResourceUri(FacesContext context, ResourceHandler resourceHandler,
+                                 boolean withContextPath)
+    {
+        String uri = resourceHandler.getResourceUri(context);
+        if (uri == null)
+        {
+            return getResourceUri(context, resourceHandler.getResourceLoaderClass(),
+                    withContextPath);
+        }
+        return getResourceUri(context, resourceHandler.getResourceLoaderClass(), withContextPath)
+                + uri;
+    }
+
+    /**
+     * Get the Path used to retrieve an resource.
+     */
+    public String getResourceUri(FacesContext context, String uri)
+    {
+        return getResourceUri(context, uri, true);
+    }
+
+    /**
+     * Get the Path used to retrieve an resource.
+     */
+    public String getResourceUri(FacesContext context, String uri, boolean withContextPath)
+    {
+        if (withContextPath)
+        {
+            return context.getApplication().getViewHandler().getResourceURL(context, uri);
+        }
+        return uri;
+    }
+
+    /**
+     * Get the Path used to retrieve an resource.
+     * @param context current faces-context
+     * @param resourceLoader resourceLoader
+     * @param withContextPath use the context-path of the web-app when accessing the resources
+     *
+     * @return the URI of the resource
+     */
+    protected String getResourceUri(FacesContext context, Class resourceLoader,
+                                    boolean withContextPath)
+    {
+        StringBuffer sb = new StringBuffer(200);
+        sb.append(MyfacesConfig.getCurrentInstance(context.getExternalContext()).getResourceVirtualPath());
+        sb.append(PATH_SEPARATOR);
+        sb.append(resourceLoader.getName());
+        sb.append(PATH_SEPARATOR);
+        sb.append(getCacheKey(context));
+        sb.append(PATH_SEPARATOR);
+        return getResourceUri(context, sb.toString(), withContextPath);
+    }
+
+    /**
+     * Return a value used in the {cacheKey} part of a generated URL for a
+     * resource reference.
+     * &lt;p/&gt;
+     * Caching in browsers normally works by having files served to them
+     * include last-modified and expiry-time http headers. Until the expiry
+     * time is reached, a browser will silently use its cached version. After
+     * the expiry time, it will send a "get if modified since {time}" message,
+     * where {time} is the last-modified header from the version it has cached.
+     * &lt;p/&gt;
+     * Unfortunately this scheme only works well for resources represented as
+     * plain files on disk, where the webserver can easily and efficiently see
+     * the last-modified time of the resource file. When that query has to be
+     * processed by a servlet that doesn't scale well, even when it is possible
+     * to determine the resource's last-modified date from servlet code.
+     * &lt;p/&gt;
+     * Fortunately, for the AddResource class a static resource is only ever
+     * accessed because a URL was embedded by this class in a dynamic page.
+     * This makes it possible to implement caching by instead marking every
+     * resource served with a very long expiry time, but forcing the URL that
+     * points to the resource to change whenever the old cached version becomes
+     * invalid; the browser effectively thinks it is fetching a different
+     * resource that it hasn't seen before. This is implemented by embedding
+     * a "cache key" in the generated URL.
+     * &lt;p/&gt;
+     * Rather than using the actual modification date of a resource as the
+     * cache key, we simply use the webapp deployment time. This means that all
+     * data cached by browsers will become invalid after a webapp deploy (all
+     * the urls to the resources change). It also means that changes that occur
+     * to a resource &lt;i&gt;without&lt;/i&gt; a webapp redeploy will not be seen by browsers.
+     *
+     * @param context the current faces-context
+     *
+     * @return the key for caching
+     */
+    protected long getCacheKey(FacesContext context)
+    {
+        // cache key is hold in application scope so it is recreated on redeploying the webapp.
+        Map applicationMap = context.getExternalContext().getApplicationMap();
+        Long cacheKey = (Long) applicationMap.get(RESOURCES_CACHE_KEY);
+        if (cacheKey == null)
+        {
+            cacheKey = new Long(System.currentTimeMillis() / 100000);
+            applicationMap.put(RESOURCES_CACHE_KEY, cacheKey);
+        }
+        return cacheKey.longValue();
+    }
+
+    public boolean isResourceUri(ServletContext servletContext, HttpServletRequest request)
+    {
+
+        String path;
+        if (_contextPath != null)
+        {
+            path = _contextPath + getResourceVirtualPath(servletContext);
+        }
+        else
+        {
+            path = getResourceVirtualPath(servletContext);
+        }
+
+        //fix for TOMAHAWK-660; to be sure this fix is backwards compatible, the
+        //encoded context-path is only used as a first option to check for the prefix
+        //if we're sure this works for all cases, we can directly return the first value
+        //and not double-check.
+        try
+        {
+            if(request.getRequestURI().startsWith(URLEncoder.encode(path,"UTF-8")))
+                return true;
+        }
+        catch (UnsupportedEncodingException e)
+        {
+            log.error("Unsupported encoding UTF-8 used",e);
+
+        }
+
+        return request.getRequestURI().startsWith(path);
+    }
+
+    private String getResourceVirtualPath(ServletContext servletContext)
+    {
+        if(resourceVirtualPath == null)
+        {
+            resourceVirtualPath = servletContext.getInitParameter(MyfacesConfig.INIT_PARAM_RESOURCE_VIRTUAL_PATH);
+
+            if(resourceVirtualPath == null)
+            {
+                resourceVirtualPath = MyfacesConfig.INIT_PARAM_RESOURCE_VIRTUAL_PATH_DEFAULT;
+            }
+        }
+
+        return resourceVirtualPath;
+    }
+
+    private Class getClass(String className) throws ClassNotFoundException
+    {
+        Class clazz = ClassUtils.classForName(className);
+        validateResourceLoader(clazz);
+        return clazz;
+    }
+
+    public void serveResource(ServletContext context, HttpServletRequest request,
+                              HttpServletResponse response) throws IOException
+    {
+        String pathInfo = request.getPathInfo();
+        String uri = request.getContextPath() + request.getServletPath()
+                + (pathInfo == null ? "" : pathInfo);
+        String classNameStartsAfter = getResourceVirtualPath(context) + '/';
+
+        int posStartClassName = uri.indexOf(classNameStartsAfter) + classNameStartsAfter.length();
+        int posEndClassName = uri.indexOf(PATH_SEPARATOR, posStartClassName);
+        String className = uri.substring(posStartClassName, posEndClassName);
+        int posEndCacheKey = uri.indexOf(PATH_SEPARATOR, posEndClassName + 1);
+        String resourceUri = null;
+        if (posEndCacheKey + 1 &lt; uri.length())
+        {
+            resourceUri = uri.substring(posEndCacheKey + 1);
+        }
+        try
+        {
+            Class resourceLoader = getClass(className);
+            validateResourceLoader(resourceLoader);
+            ((ResourceLoader) resourceLoader.newInstance()).serveResource(context, request,
+                    response, resourceUri);
+
+            // Do not call response.flushBuffer buffer here. There is no point, as if there
+            // ever were header data to write, this would fail as we have already written
+            // the response body. The only point would be to flush the output stream, but
+            // that will happen anyway when the servlet container closes the socket.
+            //
+            // In addition, flushing could fail here; it appears that Microsoft IE
+            // hasthe habit of hard-closing its socket as soon as it has received a complete
+            // gif file, rather than letting the server close it. The container will hopefully
+            // silently ignore exceptions on close.
+        }
+        catch (ResourceLoader.ClosedSocketException e)
+        {
+            // The ResourceLoader was unable to send the data because the client closed
+            // the socket on us; just ignore.
+        }
+        catch (ClassNotFoundException e)
+        {
+            log.error("Could not find class for name: " + className, e);
+            response.sendError(HttpServletResponse.SC_NOT_FOUND,
+                    "Could not find resourceloader class for name: " + className);
+        }
+        catch (InstantiationException e)
+        {
+            log.error("Could not instantiate class for name: " + className, e);
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+                    "Could not instantiate resourceloader class for name: " + className);
+        }
+        catch (IllegalAccessException e)
+        {
+            log.error("Could not access class for name: " + className, e);
+            response.sendError(HttpServletResponse.SC_FORBIDDEN,
+                    "Could not access resourceloader class for name: " + className);
+        }
+        catch (Throwable e)
+        {
+            log.error("Error while serving resource: " + resourceUri + ", message : " + e.getMessage(),
e);
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+        }
+    }
+
+    public void parseResponse(HttpServletRequest request, String bufferedResponse, HttpServletResponse
response) throws IOException {
+        throw new UnsupportedOperationException("non-buffering add resource is not buffering.");
+    }
+
+    public void writeMyFacesJavascriptBeforeBodyEnd(HttpServletRequest request, HttpServletResponse
response) throws IOException {
+        throw new UnsupportedOperationException("non-buffering add resource is not buffering.");
+    }
+
+    public void writeWithFullHeader(HttpServletRequest request, HttpServletResponse response)
throws IOException {
+        throw new UnsupportedOperationException("non-buffering add resource is not buffering.");
+    }
+
+    public void writeResponse(HttpServletRequest request, HttpServletResponse response) throws
IOException {
+        throw new UnsupportedOperationException("non-buffering add resource is not buffering.");
+    }
+
+    public boolean requiresBuffer() {
+        return false;
+    }
+
+    public void responseStarted() {
+    }
+
+    public void responseFinished() {
+    }
+
+    public boolean hasHeaderBeginInfos() {
+        return false;
+    }
+}




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888598 - /myfaces/core/branches/1.1.x/impl/pom.xml</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208221659.B24BD23889E4@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208221659-B24BD23889E4@eris-apache-org%3e</id>
<updated>2009-12-08T22:16:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Tue Dec  8 22:16:59 2009
New Revision: 888598

URL: http://svn.apache.org/viewvc?rev=888598&amp;view=rev
Log:
update to 2.0.11-SNAPSHOT to fix compatibility with JDK 1.4

Modified:
    myfaces/core/branches/1.1.x/impl/pom.xml

Modified: myfaces/core/branches/1.1.x/impl/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.1.x/impl/pom.xml?rev=888598&amp;r1=888597&amp;r2=888598&amp;view=diff
==============================================================================
--- myfaces/core/branches/1.1.x/impl/pom.xml (original)
+++ myfaces/core/branches/1.1.x/impl/pom.xml Tue Dec  8 22:16:59 2009
@@ -543,7 +543,7 @@
   &lt;/reporting&gt;
 
   &lt;properties&gt;
-    &lt;myfaces-shared.version&gt;2.0.10&lt;/myfaces-shared.version&gt;
+    &lt;myfaces-shared.version&gt;2.0.11-SNAPSHOT&lt;/myfaces-shared.version&gt;
   &lt;/properties&gt;
 
 &lt;/project&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888596 - in /myfaces/shared/trunk: core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java pom.xml</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208221538.ACEDC23889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208221538-ACEDC23889BB@eris-apache-org%3e</id>
<updated>2009-12-08T22:15:38Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Tue Dec  8 22:15:38 2009
New Revision: 888596

URL: http://svn.apache.org/viewvc?rev=888596&amp;view=rev
Log:
replace StringBuilder to StringBuffer to fix JDK 1.4 compatibility

Modified:
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java
    myfaces/shared/trunk/pom.xml

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java?rev=888596&amp;r1=888595&amp;r2=888596&amp;view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java
(original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java
Tue Dec  8 22:15:38 2009
@@ -168,7 +168,7 @@
     public static String encodeURIAtributte(final String string, final String characterEncoding)
         throws IOException
     {
-        StringBuilder sb = null;    //create later on demand
+        StringBuffer sb = null;    //create later on demand
         String app;
         char c;
         boolean endLoop = false;
@@ -352,7 +352,7 @@
             {
                 if (sb == null)
                 {
-                    sb = new StringBuilder(string.substring(0, i));
+                    sb = new StringBuffer(string.substring(0, i));
                 }
                 sb.append(app);
             } else {
@@ -437,7 +437,7 @@
      */
     private static String encodeURIQuery(final String string, final String characterEncoding)
     {
-        StringBuilder sb = null;    //create later on demand
+        StringBuffer sb = null;    //create later on demand
         String app;
         char c;
         boolean endLoop = false;
@@ -518,7 +518,7 @@
             {
                 if (sb == null)
                 {
-                    sb = new StringBuilder(string.substring(0, i));
+                    sb = new StringBuffer(string.substring(0, i));
                 }
                 sb.append(app);
             } else {

Modified: myfaces/shared/trunk/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/pom.xml?rev=888596&amp;r1=888595&amp;r2=888596&amp;view=diff
==============================================================================
--- myfaces/shared/trunk/pom.xml (original)
+++ myfaces/shared/trunk/pom.xml Tue Dec  8 22:15:38 2009
@@ -75,8 +75,8 @@
           &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
           &lt;version&gt;2.0.2&lt;/version&gt;
           &lt;configuration&gt;
-            &lt;source&gt;1.3&lt;/source&gt;
-            &lt;target&gt;1.3&lt;/target&gt;
+            &lt;source&gt;1.4&lt;/source&gt;
+            &lt;target&gt;1.4&lt;/target&gt;
             &lt;encoding&gt;iso-8859-1&lt;/encoding&gt;
             &lt;showWarnings&gt;true&lt;/showWarnings&gt;
           &lt;/configuration&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888592 - in /myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit: RendererUtils.java html/HtmlButtonRendererBase.java html/HtmlLinkRendererBase.java</title>
<author><name>lu4242@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208220846.DA03F23889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208220846-DA03F23889BB@eris-apache-org%3e</id>
<updated>2009-12-08T22:08:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: lu4242
Date: Tue Dec  8 22:08:46 2009
New Revision: 888592

URL: http://svn.apache.org/viewvc?rev=888592&amp;view=rev
Log:
fix incompatibilities with tomahawk (preserve some method signatures used there)

Modified:
    myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java
    myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
    myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java

Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java?rev=888592&amp;r1=888591&amp;r2=888592&amp;view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java
(original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/RendererUtils.java
Tue Dec  8 22:08:46 2009
@@ -520,7 +520,11 @@
     }
 
 
-
+    public static List getSelectItemList(UISelectOne uiSelectOne)
+    {
+        return internalGetSelectItemList(uiSelectOne, FacesContext.getCurrentInstance());
+    }
+    
     /**
      * @param uiSelectOne
      * @param facesContext
@@ -530,6 +534,11 @@
     {
         return internalGetSelectItemList(uiSelectOne, facesContext);
     }
+    
+    public static List getSelectItemList(UISelectMany uiSelectMany)
+    {
+        return internalGetSelectItemList(uiSelectMany, FacesContext.getCurrentInstance());
+    }
 
     /**
      * @param uiSelectMany

Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java?rev=888592&amp;r1=888591&amp;r2=888592&amp;view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
(original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
Tue Dec  8 22:08:46 2009
@@ -182,7 +182,7 @@
         }
         //fallback into the pre 2.0 code to keep backwards comptability with libraries which
rely on internals
         else if (JavascriptUtils.isJavascriptAllowed(externalContext)) {
-            StringBuffer onClick = buildOnClick(uiComponent, facesContext, writer, formInfo);
+            StringBuffer onClick = buildOnClick(uiComponent, facesContext, writer);
             if (onClick.length() != 0) {
                 writer.writeAttribute(HTML.ONCLICK_ATTR, onClick.toString(), null);
             }
@@ -273,7 +273,7 @@
     }
 
     protected StringBuffer buildOnClick(UIComponent uiComponent, FacesContext facesContext,

-                                        ResponseWriter writer, FormInfo nestedFormInfo)
+                                        ResponseWriter writer)
         throws IOException
     {
         /* DUMMY STUFF
@@ -312,6 +312,8 @@
             onClick.append(';');
         }
         
+        FormInfo nestedFormInfo = findNestingForm(uiComponent, facesContext);
+        
         if (nestedFormInfo != null)
         {
             String formName = nestedFormInfo.getFormName();

Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?rev=888592&amp;r1=888591&amp;r2=888592&amp;view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
(original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
Tue Dec  8 22:08:46 2009
@@ -170,10 +170,10 @@
 
         if (component instanceof UICommand)
         {
+            renderCommandLinkEnd(facesContext, component);
+
             FormInfo formInfo = findNestingForm(component, facesContext);
             
-            renderCommandLinkEnd(facesContext, component, formInfo);
-
             if (formInfo != null)
             {
                 HtmlFormRendererBase.renderScrollHiddenInputIfNecessary(
@@ -852,9 +852,11 @@
         }
     }
 
-    protected void renderCommandLinkEnd(FacesContext facesContext, UIComponent component,
FormInfo formInfo)
+    protected void renderCommandLinkEnd(FacesContext facesContext, UIComponent component)
             throws IOException
     {
+        FormInfo formInfo = findNestingForm(component, facesContext);
+        
         ResponseWriter writer = facesContext.getResponseWriter();
         if (HtmlRendererUtils.isDisabled(component) || formInfo == null)
         {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888498 - /myfaces/trinidad-maven/branches/1.2.10.1-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl</title>
<author><name>matzew@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208175828.E856523889B5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208175828-E856523889B5@eris-apache-org%3e</id>
<updated>2009-12-08T17:58:28Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: matzew
Date: Tue Dec  8 17:58:28 2009
New Revision: 888498

URL: http://svn.apache.org/viewvc?rev=888498&amp;view=rev
Log:
TRINIDAD-1656 - Maven-faces-plugin faces-config.xml generation does not allow ViewRoot replacement

Modified:
    myfaces/trinidad-maven/branches/1.2.10.1-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl

Modified: myfaces/trinidad-maven/branches/1.2.10.1-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/branches/1.2.10.1-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl?rev=888498&amp;r1=888497&amp;r2=888498&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/branches/1.2.10.1-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
(original)
+++ myfaces/trinidad-maven/branches/1.2.10.1-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
Tue Dec  8 17:58:28 2009
@@ -80,7 +80,8 @@
       &lt;xsl:apply-templates select="javaee:application" /&gt;
       &lt;xsl:apply-templates select="javaee:factory" /&gt;
       &lt;xsl:apply-templates select="javaee:component[not(contains(javaee:component-extension/mfp:component-class-modifier/text(),
'abstract')) and
-                                                    starts-with(javaee:component-type, $typePrefix)]"
/&gt;
+        (starts-with(javaee:component-type, $typePrefix) or 
+          (contains(javaee:component-type, 'javax.faces.ViewRoot')))]" /&gt;
       &lt;xsl:apply-templates select="javaee:converter[contains(javaee:converter-class, $converterPackageContains)]"
/&gt;
       &lt;xsl:apply-templates select="javaee:managed-bean[contains(javaee:managed-bean-class,
$packageContains)]" /&gt;
       &lt;xsl:apply-templates select="javaee:navigation-rule" /&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BMyfaces_Wiki=5D_Update_of_=22Trinidad=5Fgoes=5FProjectStage?= =?utf-8?q?=22_by_MatthiasWessendorf?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208165636.1441.93358@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091208165636-1441-93358@eos-apache-org%3e</id>
<updated>2009-12-08T16:56:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Myfaces Wiki" for change notification.

The "Trinidad_goes_ProjectStage" page has been changed by MatthiasWessendorf.
http://wiki.apache.org/myfaces/Trinidad_goes_ProjectStage?action=diff&amp;rev1=6&amp;rev2=7

--------------------------------------------------

  
  
  == Overriding single settings ==
- Perhaps we want to be able to still override settings, regardless for the current STAGE.
Means: If the application runs in ''ProjectStage.Production'', we do CSS ompression. BUT...
if the web.xml says ''org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION =&gt; TRUE'',
we should honor that... This would give users a more fine grained control over these configuration
settings.
+ Perhaps we want to be able to still override settings, regardless for the current STAGE.
Means: If the application runs in ''ProjectStage.Production'', we do CSS ompression. BUT...
if the web.xml says ''org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION =&gt; TRUE'',
we should honor that... This would give users a more fine grained control over these configuration
settings. Once a user actually overrides stuff, we log a WARNING
  


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BMyfaces_Wiki=5D_Update_of_=22Trinidad=5Fgoes=5FProjectStage?= =?utf-8?q?=22_by_MatthiasWessendorf?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208165531.1442.99744@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091208165531-1442-99744@eos-apache-org%3e</id>
<updated>2009-12-08T16:55:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Myfaces Wiki" for change notification.

The "Trinidad_goes_ProjectStage" page has been changed by MatthiasWessendorf.
http://wiki.apache.org/myfaces/Trinidad_goes_ProjectStage?action=diff&amp;rev1=5&amp;rev2=6

--------------------------------------------------

    * '''other stages''' =&gt; TRUE
   * org.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION (System Property)
    * '''Production''' =&gt; NONE
-   * '''Development and UnitTest''' =&gt; SESSION,TREE 
+   * '''Development and !UnitTest''' =&gt; SESSION,TREE 
-   * '''SystemTest''' =&gt; ALL 
+   * '''!SystemTest''' =&gt; ALL 
  
  
  == Overriding single settings ==


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BMyfaces_Wiki=5D_Update_of_=22Trinidad=5Fgoes=5FProjectStage?= =?utf-8?q?=22_by_MatthiasWessendorf?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208165442.1441.3115@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091208165442-1441-3115@eos-apache-org%3e</id>
<updated>2009-12-08T16:54:42Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Myfaces Wiki" for change notification.

The "Trinidad_goes_ProjectStage" page has been changed by MatthiasWessendorf.
http://wiki.apache.org/myfaces/Trinidad_goes_ProjectStage?action=diff&amp;rev1=4&amp;rev2=5

--------------------------------------------------

   * http://issues.apache.org/jira/browse/TRINIDAD-1245
   * http://myfaces.apache.org/trinidad/trinidad-api/apidocs/org/apache/myfaces/trinidad/bean/util/StateUtils.html
  
- '''''does make sense to port to ProjectStage API'''''
+ '''''does make sense to port to !ProjectStage API'''''
  
  == The trinidad-config.xml file ==
  See here for infos about it:


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BMyfaces_Wiki=5D_Update_of_=22Trinidad=5Fgoes=5FProjectStage?= =?utf-8?q?=22_by_MatthiasWessendorf?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208165329.27277.15959@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091208165329-27277-15959@eos-apache-org%3e</id>
<updated>2009-12-08T16:53:29Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Myfaces Wiki" for change notification.

The "Trinidad_goes_ProjectStage" page has been changed by MatthiasWessendorf.
http://wiki.apache.org/myfaces/Trinidad_goes_ProjectStage?action=diff&amp;rev1=3&amp;rev2=4

--------------------------------------------------

   * http://issues.apache.org/jira/browse/TRINIDAD-1245
   * http://myfaces.apache.org/trinidad/trinidad-api/apidocs/org/apache/myfaces/trinidad/bean/util/StateUtils.html
  
- '''''does not really make sense to port to Stage'''''
+ '''''does make sense to port to ProjectStage API'''''
  
  == The trinidad-config.xml file ==
  See here for infos about it:
@@ -66, +66 @@

   * &lt;debug-output&gt; (from trinidad-config.xml file)
    * '''Production''' =&gt; FALSE 
    * '''other stages''' =&gt; TRUE
+  * org.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION (System Property)
+   * '''Production''' =&gt; NONE
+   * '''Development and UnitTest''' =&gt; SESSION,TREE 
+   * '''SystemTest''' =&gt; ALL 
+ 
  
  == Overriding single settings ==
  Perhaps we want to be able to still override settings, regardless for the current STAGE.
Means: If the application runs in ''ProjectStage.Production'', we do CSS ompression. BUT...
if the web.xml says ''org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION =&gt; TRUE'',
we should honor that... This would give users a more fine grained control over these configuration
settings.


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888467 - in /myfaces/trinidad-maven/trunk: ./ maven-faces-plugin/ maven-i18n-plugin/ maven-javacc-plugin/ maven-javascript-plugin/ maven-jdev-plugin/ maven-tagdoc-plugin/ maven-xrts-plugin/</title>
<author><name>matzew@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208162231.640F023889D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208162231-640F023889D1@eris-apache-org%3e</id>
<updated>2009-12-08T16:22:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: matzew
Date: Tue Dec  8 16:22:30 2009
New Revision: 888467

URL: http://svn.apache.org/viewvc?rev=888467&amp;view=rev
Log:
[maven-release-plugin] prepare for next development iteration

Modified:
    myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml
    myfaces/trinidad-maven/trunk/pom.xml

Modified: myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml Tue Dec  8 16:22:30 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt; 
-    &lt;version&gt;1.2.11&lt;/version&gt;
+    &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml Tue Dec  8 16:22:30 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11&lt;/version&gt;
+    &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml Tue Dec  8 16:22:30 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11&lt;/version&gt;
+    &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml Tue Dec  8 16:22:30 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11&lt;/version&gt;
+    &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml Tue Dec  8 16:22:30 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11&lt;/version&gt;
+    &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml Tue Dec  8 16:22:30 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11&lt;/version&gt;
+    &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml Tue Dec  8 16:22:30 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11&lt;/version&gt;
+    &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/pom.xml?rev=888467&amp;r1=888466&amp;r2=888467&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/pom.xml Tue Dec  8 16:22:30 2009
@@ -25,7 +25,7 @@
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
   &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-  &lt;version&gt;1.2.11&lt;/version&gt;
+  &lt;version&gt;1.2.12-SNAPSHOT&lt;/version&gt;
   &lt;packaging&gt;pom&lt;/packaging&gt;
   &lt;name&gt;Apache Trinidad Maven Plugin Parent&lt;/name&gt;
 
@@ -160,9 +160,9 @@
   &lt;/reporting&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/myfaces/trinidad-maven/tags/maven-plugin-parent-1.2.11&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/myfaces/trinidad-maven/tags/maven-plugin-parent-1.2.11&lt;/developerConnection&gt;
-    &lt;url&gt;http://svn.apache.org/viewvc/maven/pom/tags/maven-plugin-parent-1.2.11&lt;/url&gt;
+    &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/myfaces/trinidad-maven/trunk/&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/myfaces/trinidad-maven/trunk/&lt;/developerConnection&gt;
+    &lt;url&gt;http://svn.apache.org/viewvc/maven/pom/tags/apache-4/maven-plugin-parent&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;modules&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888466 - /myfaces/trinidad-maven/tags/maven-plugin-parent-1.2.11/</title>
<author><name>matzew@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208162200.014E623889B3@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208162200-014E623889B3@eris-apache-org%3e</id>
<updated>2009-12-08T16:21:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: matzew
Date: Tue Dec  8 16:21:59 2009
New Revision: 888466

URL: http://svn.apache.org/viewvc?rev=888466&amp;view=rev
Log:
[maven-release-plugin]  copy for tag maven-plugin-parent-1.2.11

Added:
    myfaces/trinidad-maven/tags/maven-plugin-parent-1.2.11/
      - copied from r888465, myfaces/trinidad-maven/trunk/



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888464 - in /myfaces/trinidad-maven/trunk: ./ maven-faces-plugin/ maven-i18n-plugin/ maven-javacc-plugin/ maven-javascript-plugin/ maven-jdev-plugin/ maven-tagdoc-plugin/ maven-xrts-plugin/</title>
<author><name>matzew@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208162112.A314923889D7@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208162112-A314923889D7@eris-apache-org%3e</id>
<updated>2009-12-08T16:21:12Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: matzew
Date: Tue Dec  8 16:21:11 2009
New Revision: 888464

URL: http://svn.apache.org/viewvc?rev=888464&amp;view=rev
Log:
[maven-release-plugin] prepare release maven-plugin-parent-1.2.11

Modified:
    myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml
    myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml
    myfaces/trinidad-maven/trunk/pom.xml

Modified: myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-faces-plugin/pom.xml Tue Dec  8 16:21:11 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt; 
-    &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-i18n-plugin/pom.xml Tue Dec  8 16:21:11 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-javacc-plugin/pom.xml Tue Dec  8 16:21:11 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-javascript-plugin/pom.xml Tue Dec  8 16:21:11 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-jdev-plugin/pom.xml Tue Dec  8 16:21:11 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/pom.xml Tue Dec  8 16:21:11 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/maven-xrts-plugin/pom.xml Tue Dec  8 16:21:11 2009
@@ -23,7 +23,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
     &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-    &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;/parent&gt;
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;

Modified: myfaces/trinidad-maven/trunk/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/pom.xml?rev=888464&amp;r1=888463&amp;r2=888464&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/pom.xml (original)
+++ myfaces/trinidad-maven/trunk/pom.xml Tue Dec  8 16:21:11 2009
@@ -25,7 +25,7 @@
 
   &lt;groupId&gt;org.apache.myfaces.trinidadbuild&lt;/groupId&gt;
   &lt;artifactId&gt;maven-plugin-parent&lt;/artifactId&gt;
-  &lt;version&gt;1.2.11-SNAPSHOT&lt;/version&gt;
+  &lt;version&gt;1.2.11&lt;/version&gt;
   &lt;packaging&gt;pom&lt;/packaging&gt;
   &lt;name&gt;Apache Trinidad Maven Plugin Parent&lt;/name&gt;
 
@@ -160,9 +160,9 @@
   &lt;/reporting&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/myfaces/trinidad-maven/trunk/&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/myfaces/trinidad-maven/trunk/&lt;/developerConnection&gt;
-    &lt;url&gt;http://svn.apache.org/viewvc/maven/pom/tags/apache-4/maven-plugin-parent&lt;/url&gt;
+    &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/myfaces/trinidad-maven/tags/maven-plugin-parent-1.2.11&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/myfaces/trinidad-maven/tags/maven-plugin-parent-1.2.11&lt;/developerConnection&gt;
+    &lt;url&gt;http://svn.apache.org/viewvc/maven/pom/tags/maven-plugin-parent-1.2.11&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;modules&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888457 - in /myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources: transform12.xsl transform20.xsl</title>
<author><name>matzew@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208160814.7E50B23889B3@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208160814-7E50B23889B3@eris-apache-org%3e</id>
<updated>2009-12-08T16:08:14Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: matzew
Date: Tue Dec  8 16:08:13 2009
New Revision: 888457

URL: http://svn.apache.org/viewvc?rev=888457&amp;view=rev
Log:
TRINIDAD-1656 - Maven-faces-plugin faces-config.xml generation does not allow ViewRoot replacement

Modified:
    myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
    myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform20.xsl

Modified: myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl?rev=888457&amp;r1=888456&amp;r2=888457&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
(original)
+++ myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
Tue Dec  8 16:08:13 2009
@@ -80,7 +80,8 @@
       &lt;xsl:apply-templates select="javaee:application" /&gt;
       &lt;xsl:apply-templates select="javaee:factory" /&gt;
       &lt;xsl:apply-templates select="javaee:component[not(contains(javaee:component-extension/mfp:component-class-modifier/text(),
'abstract')) and
-                                                    starts-with(javaee:component-type, $typePrefix)]"
/&gt;
+        (starts-with(javaee:component-type, $typePrefix) or 
+          (contains(javaee:component-type, 'javax.faces.ViewRoot')))]" /&gt;
       &lt;xsl:apply-templates select="javaee:converter[contains(javaee:converter-class, $converterPackageContains)]"
/&gt;
       &lt;xsl:apply-templates select="javaee:managed-bean[contains(javaee:managed-bean-class,
$packageContains)]" /&gt;
       &lt;xsl:apply-templates select="javaee:navigation-rule" /&gt;

Modified: myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform20.xsl
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform20.xsl?rev=888457&amp;r1=888456&amp;r2=888457&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform20.xsl
(original)
+++ myfaces/trinidad-maven/branches/2.0.0-branch/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform20.xsl
Tue Dec  8 16:08:13 2009
@@ -84,7 +84,8 @@
       &lt;xsl:apply-templates select="javaee:application" /&gt;
       &lt;xsl:apply-templates select="javaee:factory" /&gt;
       &lt;xsl:apply-templates select="javaee:component[not(contains(javaee:component-extension/mfp:component-class-modifier/text(),
'abstract')) and
-                                                    starts-with(javaee:component-type, $typePrefix)]"
/&gt;
+        (starts-with(javaee:component-type, $typePrefix) or 
+          (contains(javaee:component-type, 'javax.faces.ViewRoot')))]" /&gt;
       &lt;xsl:apply-templates select="javaee:converter[contains(javaee:converter-class, $converterPackageContains)]"
/&gt;
       &lt;xsl:apply-templates select="javaee:managed-bean[contains(javaee:managed-bean-class,
$packageContains)]" /&gt;
       &lt;xsl:apply-templates select="javaee:navigation-rule" /&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888456 - /myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl</title>
<author><name>matzew@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c20091208160631.178F223889B3@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091208160631-178F223889B3@eris-apache-org%3e</id>
<updated>2009-12-08T16:06:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: matzew
Date: Tue Dec  8 16:06:30 2009
New Revision: 888456

URL: http://svn.apache.org/viewvc?rev=888456&amp;view=rev
Log:
TRINIDAD-1656 - Maven-faces-plugin faces-config.xml generation does not allow ViewRoot replacement

Thx to Andy Schwartz for his patch

Modified:
    myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl

Modified: myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl?rev=888456&amp;r1=888455&amp;r2=888456&amp;view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
(original)
+++ myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/resources/org/apache/myfaces/trinidadbuild/plugin/faces/resources/transform12.xsl
Tue Dec  8 16:06:30 2009
@@ -80,7 +80,8 @@
       &lt;xsl:apply-templates select="javaee:application" /&gt;
       &lt;xsl:apply-templates select="javaee:factory" /&gt;
       &lt;xsl:apply-templates select="javaee:component[not(contains(javaee:component-extension/mfp:component-class-modifier/text(),
'abstract')) and
-                                                    starts-with(javaee:component-type, $typePrefix)]"
/&gt;
+        (starts-with(javaee:component-type, $typePrefix) or 
+          (contains(javaee:component-type, 'javax.faces.ViewRoot')))]" /&gt;
       &lt;xsl:apply-templates select="javaee:converter[contains(javaee:converter-class, $converterPackageContains)]"
/&gt;
       &lt;xsl:apply-templates select="javaee:managed-bean[contains(javaee:managed-bean-class,
$packageContains)]" /&gt;
       &lt;xsl:apply-templates select="javaee:navigation-rule" /&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>[continuum] BUILD FAILURE: Trinidad Maven2 Plugins - Apache Trinidad Maven Tag Documentation Report -</title>
<author><name>&quot;Continuum@vmbuild.apache.org&quot; &lt;continuum@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/myfaces-commits/200912.mbox/%3c25729523.91260287403211.JavaMail.continuum@vmbuild.apache.org%3e"/>
<id>urn:uuid:%3c25729523-91260287403211-JavaMail-continuum@vmbuild-apache-org%3e</id>
<updated>2009-12-08T15:50:03Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Online report : http://vmbuild.apache.org/continuum/buildResult.action?buildId=254742&amp;projectId=208

Build statistics:
  State: Failed
  Previous State: Ok
  Started at: Tue 8 Dec 2009 07:49:44 -0800
  Finished at: Tue 8 Dec 2009 07:49:53 -0800
  Total time: 9s
  Build Trigger: Schedule
  Build Number: 81
  Exit code: 1
  Building machine hostname: vmbuild.apache.org
  Operating system : Linux(unknown)
  Java Home version : 
          java version "1.6.0_06"
          Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
          Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
        
  Builder version :
          Maven version: 2.0.9
          Java version: 1.6.0_06
          OS name: "linux" version: "2.6.24-23-server" arch: "i386" Family: "unix"
    
****************************************************************************
SCM Changes:
****************************************************************************
Changed: no author @ no date
Comment: no comment
Files changed:
  pom.xml ( no revision )

****************************************************************************
Dependencies Changes:
****************************************************************************
No dependencies changed


****************************************************************************
Build Definition:
****************************************************************************
POM filename: pom.xml
Goals: clean install source:jar deploy:deploy   
Arguments: --non-recursive --batch-mode -DaltDeploymentRepository=vmbuild.repo::default::file://localhost/home/continuum/data/repositories/myfaces
Build Fresh: false
Always Build: false
Default Build Definition: true
Schedule: DEFAULT_SCHEDULE
Description: 

****************************************************************************
Test Summary:
****************************************************************************
Tests: 0
Failures: 0
Errors: 0
Total time: 0.0






</pre>
</div>
</content>
</entry>
</feed>
