You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2023/10/12 15:53:39 UTC

[myfaces] branch main updated: Spec 1832 - Unify ActionSource and ActionSource2

This is an automated email from the ASF dual-hosted git repository.

tandraschko pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces.git


The following commit(s) were added to refs/heads/main by this push:
     new 2274a472e Spec 1832 - Unify ActionSource and ActionSource2
2274a472e is described below

commit 2274a472eb42128f3bed37d3baa71d6d253a4dc9
Author: tandraschko <ta...@apache.org>
AuthorDate: Thu Oct 12 17:49:50 2023 +0200

    Spec 1832 - Unify ActionSource and ActionSource2
---
 .../main/java/jakarta/faces/annotation/View.java   |  2 +-
 .../jakarta/faces/application/Application.java     |  4 --
 .../java/jakarta/faces/component/ActionSource.java |  6 +++
 .../jakarta/faces/component/ActionSource2.java     |  8 +--
 .../java/jakarta/faces/component/UICommand.java    |  2 +-
 .../java/jakarta/faces/component/UIViewAction.java |  2 +-
 .../view/ActionSource2AttachedObjectHandler.java   |  3 +-
 .../view/ActionSource2AttachedObjectTarget.java    |  3 +-
 ...java => ActionSourceAttachedObjectHandler.java} |  4 +-
 ....java => ActionSourceAttachedObjectTarget.java} |  4 +-
 .../myfaces/application/ActionListenerImpl.java    | 10 ++--
 .../facelets/FaceletViewDeclarationLanguage.java   | 30 +++++------
 .../ActionSource2AttachedObjectTargetImpl.java     |  6 +--
 ...a => ActionSourceAttachedObjectTargetImpl.java} | 14 ++---
 .../tag/composite/ActionSourceHandler.java         |  8 +--
 .../view/facelets/tag/faces/ActionSourceRule.java  | 61 +++-------------------
 .../tag/faces/core/ActionListenerHandler.java      |  4 +-
 .../core/ResetValuesActionListenerHandler.java     |  4 +-
 .../core/SetPropertyActionListenerHandler.java     |  4 +-
 ...ompositeComponentConditionalButtonTestCase.java |  2 +-
 .../view/facelets/tag/faces/html/HtmlTestCase.java |  4 +-
 .../composite/testConditionalButtonTargets.xhtml   |  2 +-
 22 files changed, 65 insertions(+), 122 deletions(-)

diff --git a/api/src/main/java/jakarta/faces/annotation/View.java b/api/src/main/java/jakarta/faces/annotation/View.java
index f1537907d..0475cba20 100644
--- a/api/src/main/java/jakarta/faces/annotation/View.java
+++ b/api/src/main/java/jakarta/faces/annotation/View.java
@@ -55,7 +55,7 @@ public @interface View
      * or a pattern like "/foo/bar/*". Though the exact interpretation of the Faces View Id
      * for a single view is ultimately defined by the annotated element, in general it should
      * align with the return value from an action expression
-     * (see {@link jakarta.faces.component.ActionSource2#setActionExpression(jakarta.el.MethodExpression)}
+     * (see {@link jakarta.faces.component.ActionSource#setActionExpression(jakarta.el.MethodExpression)}
      *
      * @return the Faces View Id pattern
      */
diff --git a/api/src/main/java/jakarta/faces/application/Application.java b/api/src/main/java/jakarta/faces/application/Application.java
index f70d23617..7da1638fc 100755
--- a/api/src/main/java/jakarta/faces/application/Application.java
+++ b/api/src/main/java/jakarta/faces/application/Application.java
@@ -518,10 +518,6 @@ public abstract class Application
      * <li>the logical outcome as determined above</li>
      * </ul>
      * <p>
-     * Note that the specification for the default <code>ActionListener</code> contiues to call for the use of a
-     * deprecated property (<code>action</code>) and class (<code>MethodExpression</code>). Unfortunately, this is
-     * necessary because the default ActionListener must continue to work with components that do not implement
-     * {@link jakarta.faces.component.ActionSource2}, and only implement {@link jakarta.faces.component.ActionSource}.
      */
     public abstract ActionListener getActionListener();
 
diff --git a/api/src/main/java/jakarta/faces/component/ActionSource.java b/api/src/main/java/jakarta/faces/component/ActionSource.java
index 20e2985a8..cd4573775 100755
--- a/api/src/main/java/jakarta/faces/component/ActionSource.java
+++ b/api/src/main/java/jakarta/faces/component/ActionSource.java
@@ -18,6 +18,8 @@
  */
 package jakarta.faces.component;
 
+import jakarta.el.MethodExpression;
+
 /**
  * see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">Faces Specification</a>
  */
@@ -32,4 +34,8 @@ public interface ActionSource
     public jakarta.faces.event.ActionListener[] getActionListeners();
 
     public void removeActionListener(jakarta.faces.event.ActionListener listener);
+
+    public MethodExpression getActionExpression();
+
+    public void setActionExpression(MethodExpression action);
 }
diff --git a/api/src/main/java/jakarta/faces/component/ActionSource2.java b/api/src/main/java/jakarta/faces/component/ActionSource2.java
index 7eed64be5..ce9e55855 100644
--- a/api/src/main/java/jakarta/faces/component/ActionSource2.java
+++ b/api/src/main/java/jakarta/faces/component/ActionSource2.java
@@ -19,15 +19,11 @@
 
 package jakarta.faces.component;
 
-import jakarta.el.MethodExpression;
-
 /**
  * See Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">Faces Specification</a>
  */
+@Deprecated(since = "4.1", forRemoval = true)
 public interface ActionSource2 extends ActionSource
 {
-    
-    public MethodExpression getActionExpression();
-    
-    public void setActionExpression(MethodExpression action);
+
 }
diff --git a/api/src/main/java/jakarta/faces/component/UICommand.java b/api/src/main/java/jakarta/faces/component/UICommand.java
index 861b4605d..a6b8f72a2 100644
--- a/api/src/main/java/jakarta/faces/component/UICommand.java
+++ b/api/src/main/java/jakarta/faces/component/UICommand.java
@@ -36,7 +36,7 @@ import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFPropert
  * 
  */
 @JSFComponent(defaultRendererType = "jakarta.faces.Button")
-public class UICommand extends UIComponentBase implements ActionSource2
+public class UICommand extends UIComponentBase implements ActionSource
 {
     public static final String COMPONENT_TYPE = "jakarta.faces.Command";
     public static final String COMPONENT_FAMILY = "jakarta.faces.Command";
diff --git a/api/src/main/java/jakarta/faces/component/UIViewAction.java b/api/src/main/java/jakarta/faces/component/UIViewAction.java
index 6eaf87da5..8a4728725 100644
--- a/api/src/main/java/jakarta/faces/component/UIViewAction.java
+++ b/api/src/main/java/jakarta/faces/component/UIViewAction.java
@@ -34,7 +34,7 @@ import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFPropert
  * @since 2.2
  */
 @JSFComponent(name = "f:viewAction")
-public class UIViewAction extends UIComponentBase implements ActionSource2
+public class UIViewAction extends UIComponentBase implements ActionSource
 {
 
     public static final String COMPONENT_FAMILY = "jakarta.faces.ViewAction";
diff --git a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectHandler.java b/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectHandler.java
index 207aa103c..7904d837e 100644
--- a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectHandler.java
+++ b/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectHandler.java
@@ -25,7 +25,8 @@ package jakarta.faces.view;
  * 
  * @since 2.0
  */
-public interface ActionSource2AttachedObjectHandler extends AttachedObjectHandler
+@Deprecated(since = "4.1", forRemoval = true)
+public interface ActionSource2AttachedObjectHandler extends ActionSourceAttachedObjectHandler
 {
 
 }
diff --git a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectTarget.java b/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectTarget.java
index 1a0818b96..9ed4f506a 100644
--- a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectTarget.java
+++ b/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectTarget.java
@@ -24,7 +24,8 @@ package jakarta.faces.view;
  * 
  * @since 2.0
  */
-public interface ActionSource2AttachedObjectTarget extends AttachedObjectTarget
+@Deprecated(since = "4.1", forRemoval = true)
+public interface ActionSource2AttachedObjectTarget extends ActionSourceAttachedObjectTarget
 {
 
 }
diff --git a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectHandler.java b/api/src/main/java/jakarta/faces/view/ActionSourceAttachedObjectHandler.java
similarity index 92%
copy from api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectHandler.java
copy to api/src/main/java/jakarta/faces/view/ActionSourceAttachedObjectHandler.java
index 207aa103c..44366063a 100644
--- a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectHandler.java
+++ b/api/src/main/java/jakarta/faces/view/ActionSourceAttachedObjectHandler.java
@@ -23,9 +23,9 @@ package jakarta.faces.view;
  * default implementation of Facelets must provide an implemention of this in the handler for the
  * <code>&lt;f:actionListener&gt;</code> tag.
  * 
- * @since 2.0
+ * @since 4.1
  */
-public interface ActionSource2AttachedObjectHandler extends AttachedObjectHandler
+public interface ActionSourceAttachedObjectHandler extends AttachedObjectHandler
 {
 
 }
diff --git a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectTarget.java b/api/src/main/java/jakarta/faces/view/ActionSourceAttachedObjectTarget.java
similarity index 91%
copy from api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectTarget.java
copy to api/src/main/java/jakarta/faces/view/ActionSourceAttachedObjectTarget.java
index 1a0818b96..f0d3050ed 100644
--- a/api/src/main/java/jakarta/faces/view/ActionSource2AttachedObjectTarget.java
+++ b/api/src/main/java/jakarta/faces/view/ActionSourceAttachedObjectTarget.java
@@ -22,9 +22,9 @@ package jakarta.faces.view;
  * A marker interface for PDL tags that represent <code>&lt;composite:actionSource/&gt;</code> for use by the
  * <em>composite component page author</em>.
  * 
- * @since 2.0
+ * @since 4.1
  */
-public interface ActionSource2AttachedObjectTarget extends AttachedObjectTarget
+public interface ActionSourceAttachedObjectTarget extends AttachedObjectTarget
 {
 
 }
diff --git a/impl/src/main/java/org/apache/myfaces/application/ActionListenerImpl.java b/impl/src/main/java/org/apache/myfaces/application/ActionListenerImpl.java
index 44a5c2673..e22111c57 100755
--- a/impl/src/main/java/org/apache/myfaces/application/ActionListenerImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/application/ActionListenerImpl.java
@@ -23,7 +23,7 @@ import jakarta.faces.application.Application;
 import jakarta.faces.application.ConfigurableNavigationHandler;
 import jakarta.faces.application.NavigationCase;
 import jakarta.faces.application.NavigationHandler;
-import jakarta.faces.component.ActionSource2;
+import jakarta.faces.component.ActionSource;
 import jakarta.faces.component.UIComponent;
 import jakarta.faces.component.UIViewRoot;
 import jakarta.faces.context.FacesContext;
@@ -54,12 +54,12 @@ public class ActionListenerImpl implements ActionListener
         String fromAction = null;
         String outcome = null;
         
-        if (component instanceof ActionSource2)
+        if (component instanceof ActionSource)
         {
-            // Must be an instance of ActionSource2, so don't look on action if the actionExpression is set 
-            methodExpression = ((ActionSource2) component).getActionExpression();            
+            // Must be an instance of ActionSource, so don't look on action if the actionExpression is set 
+            methodExpression = ((ActionSource) component).getActionExpression();            
         }
-        
+
         if (methodExpression != null)
         {
             fromAction = methodExpression.getExpressionString();
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java b/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
index d0f38fe81..6496d05f8 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
@@ -49,7 +49,7 @@ import jakarta.faces.application.Resource;
 import jakarta.faces.application.StateManager;
 import jakarta.faces.application.ViewHandler;
 import jakarta.faces.application.ViewVisitOption;
-import jakarta.faces.component.ActionSource2;
+import jakarta.faces.component.ActionSource;
 import jakarta.faces.component.EditableValueHolder;
 import jakarta.faces.component.UIComponent;
 import jakarta.faces.component.UINamingContainer;
@@ -72,8 +72,8 @@ import jakarta.faces.render.RenderKit;
 import jakarta.faces.render.ResponseStateManager;
 import jakarta.faces.validator.MethodExpressionValidator;
 import jakarta.faces.validator.Validator;
-import jakarta.faces.view.ActionSource2AttachedObjectHandler;
-import jakarta.faces.view.ActionSource2AttachedObjectTarget;
+import jakarta.faces.view.ActionSourceAttachedObjectHandler;
+import jakarta.faces.view.ActionSourceAttachedObjectTarget;
 import jakarta.faces.view.AttachedObjectHandler;
 import jakarta.faces.view.AttachedObjectTarget;
 import jakarta.faces.view.BehaviorHolderAttachedObjectHandler;
@@ -799,8 +799,8 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
                 FaceletCompositionContext mctx = FaceletCompositionContext.getCurrentInstance();
 
                 if ((forValue != null && forValue.equals(currentTarget.getName())) &&
-                        ((currentTarget instanceof ActionSource2AttachedObjectTarget &&
-                                currentHandler instanceof ActionSource2AttachedObjectHandler) ||
+                        ((currentTarget instanceof ActionSourceAttachedObjectTarget &&
+                                currentHandler instanceof ActionSourceAttachedObjectHandler) ||
                                 (currentTarget instanceof EditableValueHolderAttachedObjectTarget &&
                                         currentHandler instanceof EditableValueHolderAttachedObjectHandler) ||
                                 (currentTarget instanceof ValueHolderAttachedObjectTarget &&
@@ -1217,7 +1217,7 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
                                                ValueExpression attributeNameValueExpression, 
                                                boolean ccAttrMeRedirection)
     {
-        // target is ActionSource2
+        // target is ActionSource
         MethodExpression methodExpression = reWrapMethodExpression(context.getApplication().getExpressionFactory().
                 createMethodExpression(elContext,
                         attributeExpressionString, null,
@@ -1241,7 +1241,7 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
                                                        ValueExpression attributeNameValueExpression, 
                                                        boolean ccAttrMeRedirection)
     {
-        // target is ActionSource2
+        // target is ActionSource
         MethodExpression methodExpression = reWrapMethodExpression(context.getApplication().getExpressionFactory().
                 createMethodExpression(elContext,
                         attributeExpressionString, Void.TYPE, ACTION_LISTENER_SIGNATURE),
@@ -1326,7 +1326,7 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
                                                    ValueExpression attributeNameValueExpression,
                                                    boolean ccAttrMeRedirection)
     {
-        // target is ActionSource2
+        // target is ActionSource
         MethodExpression methodExpression
                 = reWrapMethodExpression(context.getApplication().getExpressionFactory().
                 createMethodExpression(elContext,
@@ -1337,12 +1337,12 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
         // locate the right instance and call it properly.
         if (ccAttrMeRedirection)
         {
-            ((ActionSource2) innerComponent).setActionExpression(
+            ((ActionSource) innerComponent).setActionExpression(
                     new ValueExpressionMethodExpression(attributeNameValueExpression));
         }
         else
         {
-            ((ActionSource2) innerComponent).setActionExpression(methodExpression);
+            ((ActionSource) innerComponent).setActionExpression(methodExpression);
         }
     }
 
@@ -1361,10 +1361,10 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
                 mctx.removeMethodExpressionTargeted(innerComponent, targetAttributeName);
         if (o != null)
         {
-            ((ActionSource2) innerComponent).removeActionListener(o);
+            ((ActionSource) innerComponent).removeActionListener(o);
         }
 
-        // target is ActionSource2
+        // target is ActionSource
         ActionListener actionListener = null;
         // If it is a redirection, a wrapper is used to locate the right instance and call
         //it properly.
@@ -1392,7 +1392,7 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
                 actionListener = new MethodExpressionActionListener(methodExpression, methodExpression2);
             }
         }
-        ((ActionSource2) innerComponent).addActionListener(actionListener);
+        ((ActionSource) innerComponent).addActionListener(actionListener);
         mctx.addMethodExpressionTargeted(innerComponent, targetAttributeName, actionListener);
     }
     
@@ -1617,11 +1617,11 @@ public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLangua
                     {
                         if ("action".equals(targetAttributeName))
                         {
-                            return !(component instanceof ActionSource2);
+                            return !(component instanceof ActionSource);
                         }
                         else if ("actionListener".equals(targetAttributeName))
                         {
-                            return !(component instanceof ActionSource2);
+                            return !(component instanceof ActionSource);
                         }
                         else if ("validator".equals(targetAttributeName))
                         {
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSource2AttachedObjectTargetImpl.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSource2AttachedObjectTargetImpl.java
index 755e73863..62907eac1 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSource2AttachedObjectTargetImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSource2AttachedObjectTargetImpl.java
@@ -25,13 +25,11 @@ import jakarta.faces.view.ActionSource2AttachedObjectTarget;
  * @author Leonardo Uribe (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
+@Deprecated(since = "4.1", forRemoval = true)
 public class ActionSource2AttachedObjectTargetImpl extends
-        AttachedObjectTargetImpl implements ActionSource2AttachedObjectTarget
+        ActionSourceAttachedObjectTargetImpl implements ActionSource2AttachedObjectTarget
 {
 
-    /**
-     * 
-     */
     private static final long serialVersionUID = 6944946794856707903L;
 
 }
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSource2AttachedObjectTargetImpl.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSourceAttachedObjectTargetImpl.java
similarity index 74%
copy from impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSource2AttachedObjectTargetImpl.java
copy to impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSourceAttachedObjectTargetImpl.java
index 755e73863..90e266913 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSource2AttachedObjectTargetImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSourceAttachedObjectTargetImpl.java
@@ -18,20 +18,12 @@
  */
 package org.apache.myfaces.view.facelets.tag.composite;
 
-import jakarta.faces.view.ActionSource2AttachedObjectTarget;
+import jakarta.faces.view.ActionSourceAttachedObjectTarget;
 
-/**
- * 
- * @author Leonardo Uribe (latest modification by $Author$)
- * @version $Revision$ $Date$
- */
-public class ActionSource2AttachedObjectTargetImpl extends
-        AttachedObjectTargetImpl implements ActionSource2AttachedObjectTarget
+public class ActionSourceAttachedObjectTargetImpl extends
+        AttachedObjectTargetImpl implements ActionSourceAttachedObjectTarget
 {
 
-    /**
-     * 
-     */
     private static final long serialVersionUID = 6944946794856707903L;
 
 }
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSourceHandler.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSourceHandler.java
index 81a8abb67..348b381b3 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSourceHandler.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/ActionSourceHandler.java
@@ -18,7 +18,7 @@
  */
 package org.apache.myfaces.view.facelets.tag.composite;
 
-import jakarta.faces.view.ActionSource2AttachedObjectTarget;
+import jakarta.faces.view.ActionSourceAttachedObjectTarget;
 import jakarta.faces.view.facelets.FaceletContext;
 import jakarta.faces.view.facelets.TagConfig;
 
@@ -29,7 +29,7 @@ import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFacelet
  * @version $Revision$ $Date$
  */
 @JSFFaceletTag(name="composite:actionSource")
-public class ActionSourceHandler extends AttachedObjectTargetHandler<ActionSource2AttachedObjectTarget>
+public class ActionSourceHandler extends AttachedObjectTargetHandler<ActionSourceAttachedObjectTarget>
 {
 
     public ActionSourceHandler(TagConfig config)
@@ -38,9 +38,9 @@ public class ActionSourceHandler extends AttachedObjectTargetHandler<ActionSourc
     }
 
     @Override
-    protected ActionSource2AttachedObjectTarget createAttachedObjectTarget(FaceletContext ctx)
+    protected ActionSourceAttachedObjectTarget createAttachedObjectTarget(FaceletContext ctx)
     {
-        ActionSource2AttachedObjectTargetImpl target = new ActionSource2AttachedObjectTargetImpl();
+        ActionSourceAttachedObjectTargetImpl target = new ActionSourceAttachedObjectTargetImpl();
         
         if (_name != null)
         {
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/ActionSourceRule.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/ActionSourceRule.java
index ceed1f411..04d3385b5 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/ActionSourceRule.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/ActionSourceRule.java
@@ -20,7 +20,6 @@ package org.apache.myfaces.view.facelets.tag.faces;
 
 import jakarta.el.MethodExpression;
 import jakarta.faces.component.ActionSource;
-import jakarta.faces.component.ActionSource2;
 import jakarta.faces.event.ActionEvent;
 import jakarta.faces.event.MethodExpressionActionListener;
 import jakarta.faces.view.facelets.FaceletContext;
@@ -43,26 +42,10 @@ public final class ActionSourceRule extends MetaRule
     public final static Class<?>[] ACTION_LISTENER_SIG = new Class<?>[] { ActionEvent.class };
 
     final static class ActionMapper extends Metadata
-    {
-        private final TagAttribute attr;
-
-        public ActionMapper(TagAttribute attr)
-        {
-            this.attr = attr;
-        }
-
-        @Override
-        public void applyMetadata(FaceletContext ctx, Object instance)
-        {
-
-        }
-    }
-    
-    final static class ActionMapper2 extends Metadata
     {
         private final TagAttribute _attr;
 
-        public ActionMapper2(TagAttribute attr)
+        public ActionMapper(TagAttribute attr)
         {
             this._attr = attr;
         }
@@ -71,31 +54,15 @@ public final class ActionSourceRule extends MetaRule
         public void applyMetadata(FaceletContext ctx, Object instance)
         {
             MethodExpression expr = _attr.getMethodExpression(ctx, null, ActionSourceRule.ACTION_SIG);
-            ((ActionSource2) instance).setActionExpression(expr);
+            ((ActionSource) instance).setActionExpression(expr);
         }
     }
 
     final static class ActionListenerMapper extends Metadata
-    {
-        private final TagAttribute attr;
-
-        public ActionListenerMapper(TagAttribute attr)
-        {
-            this.attr = attr;
-        }
-
-        @Override
-        public void applyMetadata(FaceletContext ctx, Object instance)
-        {
-
-        }
-    }
-
-    final static class ActionListenerMapper2 extends Metadata
     {
         private final TagAttribute _attr;
 
-        public ActionListenerMapper2(TagAttribute attr)
+        public ActionListenerMapper(TagAttribute attr)
         {
             _attr = attr;
         }
@@ -115,12 +82,12 @@ public final class ActionSourceRule extends MetaRule
                     = _attr.getMethodExpression(ctx, null, ActionSourceRule.ACTION_SIG);
             if (FaceletCompositionContext.getCurrentInstance(ctx).isUsingPSSOnThisView())
             {
-                ((ActionSource2) instance).addActionListener(
+                ((ActionSource) instance).addActionListener(
                         new PartialMethodExpressionActionListener(methodExpressionOneArg, methodExpressionZeroArg));
             }
             else
             {
-                ((ActionSource2) instance).addActionListener(
+                ((ActionSource) instance).addActionListener(
                         new MethodExpressionActionListener(methodExpressionOneArg, methodExpressionZeroArg));
             }
         }
@@ -140,26 +107,12 @@ public final class ActionSourceRule extends MetaRule
         {
             if ("action".equals(name))
             {
-                if (meta.isTargetInstanceOf(ActionSource2.class))
-                {
-                    return new ActionMapper2(attribute);
-                }
-                else
-                {
-                    return new ActionMapper(attribute);
-                }
+                return new ActionMapper(attribute);
             }
 
             if ("actionListener".equals(name))
             {
-                if (meta.isTargetInstanceOf(ActionSource2.class))
-                {
-                    return new ActionListenerMapper2(attribute);
-                }
-                else
-                {
-                    return new ActionListenerMapper(attribute);
-                }
+                return new ActionListenerMapper(attribute);
             }
         }
         
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ActionListenerHandler.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ActionListenerHandler.java
index 78d64cadb..30a7fbf0d 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ActionListenerHandler.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ActionListenerHandler.java
@@ -30,7 +30,7 @@ import jakarta.faces.context.FacesContext;
 import jakarta.faces.event.AbortProcessingException;
 import jakarta.faces.event.ActionEvent;
 import jakarta.faces.event.ActionListener;
-import jakarta.faces.view.ActionSource2AttachedObjectHandler;
+import jakarta.faces.view.ActionSourceAttachedObjectHandler;
 import jakarta.faces.view.facelets.ComponentHandler;
 import jakarta.faces.view.facelets.FaceletContext;
 import jakarta.faces.view.facelets.FaceletException;
@@ -56,7 +56,7 @@ import org.apache.myfaces.renderkit.html.util.ComponentAttrs;
  */
 @JSFFaceletTag(name = "f:actionListener", bodyContent = "empty")
 public final class ActionListenerHandler extends TagHandler
-    implements ActionSource2AttachedObjectHandler 
+    implements ActionSourceAttachedObjectHandler
 {
 
     private final static class LazyActionListener implements ActionListener, Serializable
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ResetValuesActionListenerHandler.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ResetValuesActionListenerHandler.java
index cb775e77b..dde110366 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ResetValuesActionListenerHandler.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/ResetValuesActionListenerHandler.java
@@ -35,7 +35,7 @@ import jakarta.faces.context.FacesContext;
 import jakarta.faces.event.AbortProcessingException;
 import jakarta.faces.event.ActionEvent;
 import jakarta.faces.event.ActionListener;
-import jakarta.faces.view.ActionSource2AttachedObjectHandler;
+import jakarta.faces.view.ActionSourceAttachedObjectHandler;
 import jakarta.faces.view.AttachedObjectHandler;
 import jakarta.faces.view.Location;
 import jakarta.faces.view.facelets.ComponentHandler;
@@ -56,7 +56,7 @@ import org.apache.myfaces.renderkit.html.util.ComponentAttrs;
  * @author Leonardo Uribe
  */
 @JSFFaceletTag(name = "f:resetValues", bodyContent = "empty")
-public class ResetValuesActionListenerHandler extends TagHandler implements ActionSource2AttachedObjectHandler
+public class ResetValuesActionListenerHandler extends TagHandler implements ActionSourceAttachedObjectHandler
 {
 
     @JSFFaceletAttribute(name = "render", className = "jakarta.el.ValueExpression",
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/SetPropertyActionListenerHandler.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/SetPropertyActionListenerHandler.java
index 7d324606d..052ad6ccd 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/SetPropertyActionListenerHandler.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/faces/core/SetPropertyActionListenerHandler.java
@@ -32,7 +32,7 @@ import jakarta.faces.context.FacesContext;
 import jakarta.faces.event.AbortProcessingException;
 import jakarta.faces.event.ActionEvent;
 import jakarta.faces.event.ActionListener;
-import jakarta.faces.view.ActionSource2AttachedObjectHandler;
+import jakarta.faces.view.ActionSourceAttachedObjectHandler;
 import jakarta.faces.view.Location;
 import jakarta.faces.view.facelets.ComponentHandler;
 import jakarta.faces.view.facelets.FaceletContext;
@@ -50,7 +50,7 @@ import org.apache.myfaces.view.facelets.el.ContextAwareELException;
 
 @JSFFaceletTag(name = "f:setPropertyActionListener", bodyContent = "empty")
 public class SetPropertyActionListenerHandler extends TagHandler
-    implements ActionSource2AttachedObjectHandler 
+    implements ActionSourceAttachedObjectHandler 
 {
     private final TagAttribute _target;
     private final TagAttribute _value;
diff --git a/impl/src/test/java/org/apache/myfaces/view/facelets/tag/composite/CompositeComponentConditionalButtonTestCase.java b/impl/src/test/java/org/apache/myfaces/view/facelets/tag/composite/CompositeComponentConditionalButtonTestCase.java
index a173dcb98..662b915ba 100644
--- a/impl/src/test/java/org/apache/myfaces/view/facelets/tag/composite/CompositeComponentConditionalButtonTestCase.java
+++ b/impl/src/test/java/org/apache/myfaces/view/facelets/tag/composite/CompositeComponentConditionalButtonTestCase.java
@@ -68,7 +68,7 @@ public class CompositeComponentConditionalButtonTestCase extends FaceletTestCase
         Assertions.assertNotNull(button1.getActionListeners());
         Assertions.assertEquals(1, button1.getActionListeners().length);
         
-        UINamingContainer compositeComponent2 = (UINamingContainer) form.findComponent("actionSource2");
+        UINamingContainer compositeComponent2 = (UINamingContainer) form.findComponent("actionSource");
         Assertions.assertNotNull(compositeComponent2);
         UICommand button2 = (UICommand) compositeComponent2.findComponent("button");
         Assertions.assertNotNull(button2);
diff --git a/impl/src/test/java/org/apache/myfaces/view/facelets/tag/faces/html/HtmlTestCase.java b/impl/src/test/java/org/apache/myfaces/view/facelets/tag/faces/html/HtmlTestCase.java
index 0f8dffaa3..5c3a6f311 100644
--- a/impl/src/test/java/org/apache/myfaces/view/facelets/tag/faces/html/HtmlTestCase.java
+++ b/impl/src/test/java/org/apache/myfaces/view/facelets/tag/faces/html/HtmlTestCase.java
@@ -21,7 +21,7 @@ package org.apache.myfaces.view.facelets.tag.faces.html;
 
 import java.io.StringWriter;
 import jakarta.el.MethodExpression;
-import jakarta.faces.component.ActionSource2;
+import jakarta.faces.component.ActionSource;
 import jakarta.faces.component.UIComponent;
 import jakarta.faces.component.UIForm;
 import jakarta.faces.component.UIOutput;
@@ -90,7 +90,7 @@ public class HtmlTestCase extends FaceletTestCase {
         Object v = c.getAttributes().get("id");
         Assertions.assertEquals("cmd", v);
         
-        ActionSource2 as2 = (ActionSource2) c;
+        ActionSource as2 = (ActionSource) c;
         MethodExpression me = as2.getActionExpression();
         Assertions.assertNotNull(me);
         
diff --git a/impl/src/test/resources/org/apache/myfaces/view/facelets/tag/composite/testConditionalButtonTargets.xhtml b/impl/src/test/resources/org/apache/myfaces/view/facelets/tag/composite/testConditionalButtonTargets.xhtml
index 615928690..f0cbdaa79 100644
--- a/impl/src/test/resources/org/apache/myfaces/view/facelets/tag/composite/testConditionalButtonTargets.xhtml
+++ b/impl/src/test/resources/org/apache/myfaces/view/facelets/tag/composite/testConditionalButtonTargets.xhtml
@@ -25,7 +25,7 @@
 <testComposite:simpleConditionalButtonTargets id="actionSource1">
     <f:actionListener for="button" binding="#{helloWorldBean.actionListener}"/>
 </testComposite:simpleConditionalButtonTargets>
-<testComposite:simpleConditionalButtonTargets id="actionSource2">
+<testComposite:simpleConditionalButtonTargets id="actionSource">
     <f:actionListener for="button" binding="#{helloWorldBean.actionListener}"/>
     <f:facet name="defaultAction">
         <h:commandButton id="button" action="fail"/>