Differences between revisions 8 and 9
Revision 8 as of 2006-09-14 15:37:44
Size: 2964
Editor: WendySmoak
Comment:
Revision 9 as of 2009-09-20 23:01:00
Size: 2964
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 20: Line 20:
[[BR]]Later we can optionally move them to a newly created !MyFaces module named "shared". <<BR>>Later we can optionally move them to a newly created !MyFaces module named "shared".
Line 36: Line 36:
[[BR]]Later we can optionally move them to a newly created !MyFaces module named "global" or (better) add them to the new "shared" module.
[[BR]]'''Note''': These classes must be moved to different namespaces for usage by api and impl. For myfaces-api we must auto-move the classes to package javax.faces.*. For myfaces-impl we must auto-move the classes back to org.apache.myfaces.*.
<<BR>>Later we can optionally move them to a newly created !MyFaces module named "global" or (better) add them to the new "shared" module.
<<BR>>'''Note''': These classes must be moved to different namespaces for usage by api and impl. For myfaces-api we must auto-move the classes to package javax.faces.*. For myfaces-impl we must auto-move the classes back to org.apache.myfaces.*.

Was this idea discarded in favor of the 'Shared' code that gets re-packaged at build time?

Introduction

On this page we collect important issues regarding the planned package refactoring of the MyFaces commons classes.

All classes from the commons module will be moved from their current org.apache.myfaces.* namespace to org.apache.myfaces.commons.*

Task 1: Group classes by usage focus

Group "C": Classes (or parts of classes) of public interest (the real "commons" JSF classes)

They should remain in the commons module under the new org.apache.myfaces.commons.* namespace

Identified candidates so far:

  • o.a.m.context.ResponseWriterWrapper

  • o.a.m.config.MyfacesConfig

  • o.a.m.el.SimpleActionMethodBinding

  • o.a.m.renderkit.html.util.HTMLEncoder

Group "S": Classes (or parts of classes) only useful for the MyFaces implementation and/or Tomahawk (the MyFaces "shared" classes)

They should be moved to a separate package (eg. org.apache.myfaces.shared.*).
Later we can optionally move them to a newly created MyFaces module named "shared".

Group "I": Classes (or parts of classes) specific to the MyFaces implementation (the "actual myfaces impl" classes)

They should be marked @deprecated (with comment "will be moved to myfaces impl in the future") in the meantime and moved to the impl module later.

Identified candidates so far:

  • o.a.m.portlet.PortletUtil#isPortletRequest() (works only with the MyFaces implementation!)

Group "T": Classes (or parts of classes) specific to Tomahawk (the "actual tomahawk" classes)

They should be marked @deprecated (with comment "will be moved to tomahawk in the future") in the meantime and moved to the tomahawk module later.

Identified candidates so far:

  • o.a.m.component.ExecuteOnCallback

Group "G": Classes (or parts of classes) shared between myfaces-api, myfaces-impl and component libs (the "global" classes)

They should be moved to a separate package (eg. org.apache.myfaces.global.*).
Later we can optionally move them to a newly created MyFaces module named "global" or (better) add them to the new "shared" module.
Note: These classes must be moved to different namespaces for usage by api and impl. For myfaces-api we must auto-move the classes to package javax.faces.*. For myfaces-impl we must auto-move the classes back to org.apache.myfaces.*.

Identified candidates so far:

  • org.apache.myfaces.renderkit._SharedRendererUtils

Task 2: Seal off the public classes in Group "C" (ie. define the "Commons API")

All methods or fields in classes of Group "C" (see above) that are implementation specific, should become private. If not possible, they should at least have a note in javadoc stating that they might be subject of future change and that custom component developers should not rely on that method/field.

MyFaces_Commons_Refactoring (last edited 2009-09-20 23:01:00 by localhost)