Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-1810

ServiceBinder.bind() with an interface should check to see if there's an Impl class and bind to that.

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.5
    • Fix Version/s: 5.0.14
    • Component/s: tapestry-ioc
    • Labels:
      None

      Description

      In a module bind() method, if you invoke ServiceBinder.bind() and pass an interface, the code should check to see if there's a class in the same package named "XYZImpl" (for interface XYZ). If so, it should bind that Impl class as the implementation class. Convention over configuration, even in the small details.

      1. jira1810.zip
        4 kB
        Paul Cooley

        Activity

        Hide
        joshcanfield Josh Canfield added a comment -

        Nice, but I put my Impl classes in an impl subpackage...

        Show
        joshcanfield Josh Canfield added a comment - Nice, but I put my Impl classes in an impl subpackage...
        Hide
        hlship Howard M. Lewis Ship added a comment -

        I appreciate the effort of this "patch", but just providing new code is actually less useful in most cases than providing a real patch that can be applied by an IDE. Subversion can generate such a patch file from a modified workspace.

        Show
        hlship Howard M. Lewis Ship added a comment - I appreciate the effort of this "patch", but just providing new code is actually less useful in most cases than providing a real patch that can be applied by an IDE. Subversion can generate such a patch file from a modified workspace.
        Hide
        mobiusjava Paul Cooley added a comment -

        Created test module and test to prove the ServiceBinderImpl checks to see if the class passed into the ServiceBinder.bind(Class<T>) method is an interface. If so, then the binder checks to see if a class exists in the same package with "Impl" as its suffix.

        Show
        mobiusjava Paul Cooley added a comment - Created test module and test to prove the ServiceBinderImpl checks to see if the class passed into the ServiceBinder.bind(Class<T>) method is an interface. If so, then the binder checks to see if a class exists in the same package with "Impl" as its suffix.

          People

          • Assignee:
            igor.drobiazko Igor Drobiazko
            Reporter:
            hlship Howard M. Lewis Ship
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development