You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2009/10/19 08:20:01 UTC

svn commit: r826590 - in /myfaces/extensions/scripting/trunk/core: core/src/main/java/org/apache/myfaces/scripting/core/ core/src/main/java/org/apache/myfaces/scripting/refresh/ myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamic...

Author: werpu
Date: Mon Oct 19 06:20:00 2009
New Revision: 826590

URL: http://svn.apache.org/viewvc?rev=826590&view=rev
Log:
merging conflict introduced by foreign commit

Added:
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedComponent.java   (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/DummyWeaver.java
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/refresh/FileChangedDaemon.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/jsf2/annotation/BaseAnnotationScanListener.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/jsf2/annotation/purged/PurgedValidator.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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -104,22 +104,25 @@
     }
 
     public ScriptingWeaver getWeaverInstance(Class weaverClass) {
-         for (ScriptingWeaver weaver : _weavers) {
+        for (ScriptingWeaver weaver : _weavers) {
             ScriptingWeaver retVal = weaver.getWeaverInstance(weaverClass);
-            if(retVal != null) {
+            if (retVal != null) {
                 return retVal;
             }
-         }
-         return null;   
+        }
+        return null;
     }
 
     public void fullAnnotationScan() {
-        for(ScriptingWeaver weaver : _weavers) {
+        for (ScriptingWeaver weaver : _weavers) {
             weaver.fullAnnotationScan();
         }
     }
 
     public void fullRecompile() {
+        for (ScriptingWeaver weaver : _weavers) {
+            weaver.fullRecompile();
+        }
     }
 }
 

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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -68,5 +68,8 @@
     }
 
     public void fullRecompile() {
+
     }
+        
+
 }

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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -25,6 +25,7 @@
 
 import java.io.File;
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 
 
 /**
@@ -47,7 +48,10 @@
     //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
-    Map<String, ReloadingMetadata> classMap = Collections.synchronizedMap(new HashMap<String, ReloadingMetadata>());
+
+    // ConcurrentHashMap<String, Renderer>(8, 0.75f, 1)
+    // segmented map here because we have to deal with multithreaded access
+    Map<String, ReloadingMetadata> classMap = new ConcurrentHashMap<String, ReloadingMetadata>(8, 0.75f, 1);
     
 
 

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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -21,6 +21,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.jsf2.annotation.purged.PurgedRenderer;
 
 import javax.faces.context.FacesContext;
 import javax.faces.render.RenderKit;
@@ -56,12 +57,18 @@
         //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);
+
+        //we have a purged renderer we now have to trigger a full recompile and rescan!
+        //and once found we should get the new renderer in recursively without further hazzles
+        if (renderer instanceof PurgedRenderer) {
+            ProxyUtils.getWeaver().fullAnnotationScan();
+        }
         _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));
     }
 
     public ResponseStateManager getResponseStateManager() {
@@ -76,7 +83,7 @@
 
     public ResponseStream createResponseStream(OutputStream outputStream) {
         weaveDelegate();
-        return (ResponseStream) reloadInstance( _delegate.createResponseStream(outputStream));
+        return (ResponseStream) reloadInstance(_delegate.createResponseStream(outputStream));
     }
 
     //TODO add full support for myfaces 2.0 here
@@ -114,16 +121,16 @@
     }
 
     public Object getDelegate() {
-        return _delegate;  
+        return _delegate;
     }
 
 
-     private final void weaveDelegate() {
+    private final void weaveDelegate() {
         _delegate = (RenderKit) ProxyUtils.getWeaver().reloadScriptingInstance(_delegate);
     }
 
     private final Object reloadInstance(Object instance) {
-        if(instance == null) {
+        if (instance == null) {
             return null;
         }
         if (ProxyUtils.isDynamic(instance.getClass()) && !alreadyWovenInRequest(instance.toString())) {

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java?rev=826590&r1=826589&r2=826590&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java Mon Oct 19 06:20:00 2009
@@ -27,6 +27,7 @@
 import javax.faces.context.FacesContext;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -35,7 +36,7 @@
 
 public class BaseAnnotationScanListener {
     Log log = LogFactory.getLog(this.getClass());
-    static Map<String, Object> _alreadyRegistered = new HashMap<String, Object>();
+    static Map<String, Object> _alreadyRegistered = new ConcurrentHashMap<String, Object>(8, 0.75f, 1);
 
     protected RuntimeConfig getRuntimeConfig() {
         final FacesContext facesContext = FacesContext.getCurrentInstance();

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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -47,11 +47,11 @@
 
 public class BeanImplementationListener extends BaseAnnotationScanListener implements AnnotationScanListener {
 
-    private static final String SCOPE_SESSION = "session";
-    private static final String SCOPE_APPLICATION = "application";
-    private static final String SCOPE_VIEW = "view";
-    private static final String SCOPE_NONE = "none";
-    private static final String SCOPE_CUSTOM = "custom";
+    private static final String SCOPE_SESSION       = "session";
+    private static final String SCOPE_APPLICATION   = "application";
+    private static final String SCOPE_VIEW          = "view";
+    private static final String SCOPE_NONE          = "none";
+    private static final String SCOPE_CUSTOM        = "custom";
 
 
     public boolean supportsAnnotation(String annotation) {

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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -20,8 +20,11 @@
 
 import com.thoughtworks.qdox.model.JavaClass;
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
+import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedComponent;
 
 import javax.faces.component.FacesComponent;
+import java.util.Map;
+import java.util.Iterator;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -30,7 +33,6 @@
 
 public class ComponentImplementationListener extends SingleEntityAnnotationListener implements AnnotationScanListener {
 
-
     public ComponentImplementationListener() {
         super();
         _entityParamValue = "value";
@@ -48,6 +50,7 @@
                       + clazz.getName() + ")");
         }
         getApplication().addComponent(val, clazz.getName());
+        _alreadyRegistered.put(val, clazz.getName());
     }
 
     protected void addEntity(JavaClass clazz, String val) {
@@ -56,6 +59,24 @@
                       + clazz.getFullyQualifiedName() + ")");
         }
         getApplication().addComponent(val, clazz.getFullyQualifiedName());
+        _alreadyRegistered.put(val, clazz.getFullyQualifiedName());
     }
 
+
+    @Override
+    public void purge(String className) {
+        super.purge(className);
+        Iterator<Map.Entry<String, Object>> it = _alreadyRegistered.entrySet().iterator();
+        while (it.hasNext()) {
+            Map.Entry<String, Object> entry = it.next();
+            String storedClassName = (String) entry.getValue();
+            if (className.equals(storedClassName)) {
+                //this is a recursive call into getApplication().addComponent we have to
+                //our application has to respond to this by blocking additional scans
+                //if the add component already has been called and is not finished
+                getApplication().addComponent(entry.getKey(), PurgedComponent.class.getName());
+                it.remove();
+            }
+        }
+    }
 }

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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -111,9 +111,9 @@
         _builder = new JavaDocBuilder();
         for (String sourcePath : _sourcePaths) {
             File source = new File(sourcePath);
-            if(source.exists() ) {
+            if (source.exists()) {
 
-                    _builder.addSourceTree(source);
+                _builder.addSourceTree(source);
 
             }
         }

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=826590&r1=826589&r2=826590&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 Mon Oct 19 06:20:00 2009
@@ -20,13 +20,21 @@
 
 import com.thoughtworks.qdox.model.JavaClass;
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
+import org.apache.myfaces.scripting.api.ScriptingWeaver;
+import org.apache.myfaces.scripting.core.util.ClassUtils;
+import org.apache.myfaces.scripting.core.util.ProxyUtils;
+import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedComponent;
+import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedRenderer;
 
 import javax.faces.FactoryFinder;
+import javax.faces.context.FacesContext;
 import javax.faces.render.FacesRenderer;
 import javax.faces.render.RenderKit;
 import javax.faces.render.RenderKitFactory;
 import javax.faces.render.Renderer;
 import java.util.Map;
+import java.util.Iterator;
+import java.util.HashMap;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -102,24 +110,21 @@
     protected void addEntity(Class clazz, Map<String, Object> params) {
         String value = (String) params.get(PAR_FAMILY);
         String theDefault = (String) params.get(PAR_RENDERERTYPE);
-        String renderKitId = (String) params.get(PAR_RENDERKITID);
+
+        String renderKitId = getRenderKitId(params);
+        RenderKit renderKit = getRenderkit(renderKitId);
 
         AnnotationEntry entry = new AnnotationEntry(value, theDefault, renderKitId);
         _alreadyRegistered.put(clazz.getName(), entry);
 
-        //getApplication().getResourceBundle(entry.getComponentFamily(), clazz.getName()) ;
-        if (renderKitId == null) {
-            renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT;
-        }
         if (log.isTraceEnabled()) {
             log.trace("addRenderer(" + renderKitId + ", "
                       + entry.getComponentFamily() + ", " + entry.getRendererType()
                       + ", " + clazz.getName() + ")");
         }
-        RenderKit rk = renderKitFactory().getRenderKit(null,
-                                                       renderKitId);
+
         try {
-            rk.addRenderer(entry.getComponentFamily(), entry.getRendererType(), (Renderer) clazz.newInstance());
+            renderKit.addRenderer(entry.getComponentFamily(), entry.getRendererType(), (Renderer) clazz.newInstance());
         } catch (InstantiationException e) {
             log.error(e);
         } catch (IllegalAccessException e) {
@@ -127,17 +132,51 @@
         }
     }
 
-    private RenderKitFactory renderKitFactory() {
+    private RenderKitFactory getRenderKitFactory() {
         return (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
     }
 
     @Override
     protected void addEntity(JavaClass clazz, Map<String, Object> params) {
+        String value = (String) params.get(PAR_FAMILY);
+        String theDefault = (String) params.get(PAR_RENDERERTYPE);
+
+        String renderKitId = getRenderKitId(params);
+        RenderKit renderKit = getRenderkit(renderKitId);
+        AnnotationEntry entry = new AnnotationEntry(value, theDefault, renderKitId);
+        _alreadyRegistered.put(clazz.getName(), entry);
+
+        if (renderKit == null) {
+            log.error("addEntity(): Renderkit with id " + renderKitId + " not found ");
+            return;
+        }
+
+        if (log.isTraceEnabled()) {
+            log.trace("addRenderer(" + renderKitId + ", "
+                      + entry.getComponentFamily() + ", " + entry.getRendererType()
+                      + ", " + clazz.getFullyQualifiedName() + ")");
+        }
+
+        try {
+            //recompile the class here because we cannot deal with the renderer otherwise
+            renderKit.addRenderer((String) params.get(PAR_FAMILY), (String) params.get(PAR_RENDERERTYPE), (Renderer) ProxyUtils.getWeaver().loadScriptingClassFromName(clazz.getFullyQualifiedName()).newInstance());
+        } catch (InstantiationException e) {
+            log.error(e);
+        } catch (IllegalAccessException e) {
+            log.error(e);
+        }
+    }
 
-        //TODO map this into a compile time thing, we have to compile our source
-        //class referenced and then we can process here
-        //not possible at source scan time :-(
+    private String getRenderKitId(Map<String, Object> params) {
+        String renderKitId = (String) params.get(PAR_RENDERKITID);
+        renderKitId = (renderKitId == null) ? getApplication().getDefaultRenderKitId() : renderKitId;
+        return renderKitId;
+    }
 
+    private RenderKit getRenderkit(String renderKitId) {
+        RenderKitFactory factory = getRenderKitFactory();
+        RenderKit renderKit = factory.getRenderKit(FacesContext.getCurrentInstance(), renderKitId);
+        return renderKit;
     }
 
     @Override
@@ -171,4 +210,27 @@
 
         return alreadyRegistered.equals(entry);
     }
+
+    @Override
+    public void purge(String className) {
+        super.purge(className);
+        AnnotationEntry entry = (AnnotationEntry) _alreadyRegistered.remove(className);
+        if (entry == null) {
+            return;
+        }
+
+        Map<String, Object> newParams = new HashMap<String, Object>();
+        newParams.put(PAR_FAMILY, entry.getComponentFamily());
+        newParams.put(PAR_RENDERERTYPE, entry.getRendererType());
+        newParams.put(PAR_RENDERKITID, entry.getRenderKitId());
+
+        RenderKit renderKit = getRenderkit(entry.getRenderKitId());
+        try {
+            renderKit.addRenderer(entry.getComponentFamily(), entry.getRendererType(), PurgedRenderer.class.newInstance());
+        } catch (InstantiationException e) {
+            log.error(e);
+        } catch (IllegalAccessException e) {
+            log.error(e);
+        }
+    }
 }

Added: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedComponent.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedComponent.java?rev=826590&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedComponent.java (added)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedComponent.java Mon Oct 19 06:20:00 2009
@@ -0,0 +1,234 @@
+/*
+ * 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.jsf2.annotation.purged;
+
+import javax.faces.component.UIComponent;
+import javax.faces.el.ValueBinding;
+import javax.faces.context.FacesContext;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.FacesListener;
+import javax.faces.render.Renderer;
+import java.util.Map;
+import java.util.List;
+import java.util.Iterator;
+import java.io.IOException;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+
+public class PurgedComponent extends UIComponent{
+    @Override
+    public Map<String, Object> getAttributes() {
+        return null;  
+    }
+
+    @Override
+    public boolean isRendered() {
+        return false;  
+    }
+
+    @Override
+    public void setValueBinding(String name, ValueBinding binding) {
+        
+    }
+
+    @Override
+    public String getClientId(FacesContext context) {
+        return null;  
+    }
+
+    @Override
+    public String getFamily() {
+        return null;  
+    }
+
+    @Override
+    public String getId() {
+        return null;  
+    }
+
+    @Override
+    public void setId(String id) {
+        
+    }
+
+    @Override
+    public void setParent(UIComponent parent) {
+        
+    }
+
+    @Override
+    public UIComponent getParent() {
+        return null;  
+    }
+
+    @Override
+    public void setRendered(boolean rendered) {
+        
+    }
+
+    @Override
+    public String getRendererType() {
+        return null;  
+    }
+
+    @Override
+    public void setRendererType(String rendererType) {
+        
+    }
+
+    @Override
+    public boolean getRendersChildren() {
+        return false;  
+    }
+
+    @Override
+    public ValueBinding getValueBinding(String name) {
+        return null;  
+    }
+
+    @Override
+    public List<UIComponent> getChildren() {
+        return null;  
+    }
+
+    @Override
+    public int getChildCount() {
+        return 0;  
+    }
+
+    @Override
+    public UIComponent findComponent(String expr) {
+        return null;  
+    }
+
+    @Override
+    public Map<String, UIComponent> getFacets() {
+        return null;  
+    }
+
+    @Override
+    public UIComponent getFacet(String name) {
+        return null;  
+    }
+
+    @Override
+    public Iterator<UIComponent> getFacetsAndChildren() {
+        return null;  
+    }
+
+    @Override
+    public void broadcast(FacesEvent event) throws AbortProcessingException {
+        
+    }
+
+    @Override
+    public void decode(FacesContext context) {
+        
+    }
+
+    @Override
+    public void encodeBegin(FacesContext context) throws IOException {
+        
+    }
+
+    @Override
+    public void encodeChildren(FacesContext context) throws IOException {
+        
+    }
+
+    @Override
+    public void encodeEnd(FacesContext context) throws IOException {
+        
+    }
+
+    @Override
+    protected void addFacesListener(FacesListener listener) {
+        
+    }
+
+    @Override
+    protected FacesListener[] getFacesListeners(Class clazz) {
+        return new FacesListener[0];  
+    }
+
+    @Override
+    protected void removeFacesListener(FacesListener listener) {
+        
+    }
+
+    @Override
+    public void queueEvent(FacesEvent event) {
+        
+    }
+
+    @Override
+    public void processRestoreState(FacesContext context, Object state) {
+        
+    }
+
+    @Override
+    public void processDecodes(FacesContext context) {
+        
+    }
+
+    @Override
+    public void processValidators(FacesContext context) {
+        
+    }
+
+    @Override
+    public void processUpdates(FacesContext context) {
+        
+    }
+
+    @Override
+    public Object processSaveState(FacesContext context) {
+        return null;  
+    }
+
+    @Override
+    protected FacesContext getFacesContext() {
+        return null;  
+    }
+
+    @Override
+    protected Renderer getRenderer(FacesContext context) {
+        return null;  
+    }
+
+    public Object saveState(FacesContext context) {
+        return null;  
+    }
+
+    public void restoreState(FacesContext context, Object state) {
+        
+    }
+
+    public boolean isTransient() {
+        return false;  
+    }
+
+    public void setTransient(boolean newTransientValue) {
+        
+    }
+}

Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedComponent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedComponent.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedValidator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedValidator.java?rev=826590&r1=826589&r2=826590&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedValidator.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/purged/PurgedValidator.java Mon Oct 19 06:20:00 2009
@@ -18,12 +18,10 @@
  */
 package org.apache.myfaces.scripting.jsf2.annotation.purged;
 
-import org.apache.myfaces.scripting.api.Decorated;
-
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
 import javax.faces.validator.Validator;
 import javax.faces.validator.ValidatorException;
-import javax.faces.context.FacesContext;
-import javax.faces.component.UIComponent;
 
 /**
  * @author Werner Punz (latest modification by $Author$)