Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-1171

Tapestry should ignore FXBase methods in JavaFX module classes

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Invalid
    • Affects Version/s: 5.2
    • Fix Version/s: None
    • Component/s: tapestry-ioc

      Description

      JavaFX classes always extends the com.sun.javafx.runtime.FXBase class. For module classes written in JavaFX, Tapestry complains that it doesn't recognize the public methods from FXBase. These methods should be ignored.

      1. fix_for_TAP5-1171.patch
        6 kB
        Antoine Mischler
      2. InjectionTest-src.zip
        17 kB
        Antoine Mischler
      3. log.txt
        7 kB
        Antoine Mischler

        Issue Links

          Activity

          Hide
          antoine.mischler Antoine Mischler added a comment -

          Sources of the JavaFX project using tapestry-ioc.

          Show
          antoine.mischler Antoine Mischler added a comment - Sources of the JavaFX project using tapestry-ioc.
          Hide
          antoine.mischler Antoine Mischler added a comment -

          Execution log of the attached JavaFX script showing the full list of unrecognized public methods

          Show
          antoine.mischler Antoine Mischler added a comment - Execution log of the attached JavaFX script showing the full list of unrecognized public methods
          Hide
          antoine.mischler Antoine Mischler added a comment -

          Sorry for the assignement of this issue, it looks like creating it by cloning was not the best way to do it...

          Show
          antoine.mischler Antoine Mischler added a comment - Sorry for the assignement of this issue, it looks like creating it by cloning was not the best way to do it...
          Hide
          riduidel Nicolas Delsaux added a comment -

          As all JavaFX objects extend the FXBase root class, it could be possible to mimic behaviour of TAP5 830.
          It can be done witouth prior knowledge of JavaFX presence, by simply checking if object class implements FXObject (indeed, Antoine, as JavaFX objects may sometimes be subclasses of Java objects, the inheritance from FXBase is not always true, which IS the case of the implementation of FXObject). So a code like this one

          try {
          if(Class.forName("com.sun.javafx.runtime.FXObject").isAssignableFrom(myObject.getClass()))

          { // Speciic JavaFX code goes here }


          } catch(ClassNotFoundException cnfe) {
          // this code surely isn't JavaFX code
          }

          could be added where TAP5-830 handles synthetic method removall from Groovy.

          However, I wonder how will Tapestry-IOC grow if all languages supported by the Java platform need their specific hacks to handle correctly local methods.

          Show
          riduidel Nicolas Delsaux added a comment - As all JavaFX objects extend the FXBase root class, it could be possible to mimic behaviour of TAP5 830. It can be done witouth prior knowledge of JavaFX presence, by simply checking if object class implements FXObject (indeed, Antoine, as JavaFX objects may sometimes be subclasses of Java objects, the inheritance from FXBase is not always true, which IS the case of the implementation of FXObject). So a code like this one try { if(Class.forName("com.sun.javafx.runtime.FXObject").isAssignableFrom(myObject.getClass())) { // Speciic JavaFX code goes here } } catch(ClassNotFoundException cnfe) { // this code surely isn't JavaFX code } could be added where TAP5-830 handles synthetic method removall from Groovy. However, I wonder how will Tapestry-IOC grow if all languages supported by the Java platform need their specific hacks to handle correctly local methods.
          Hide
          antoine.mischler Antoine Mischler added a comment -

          Added a patch proposition

          Show
          antoine.mischler Antoine Mischler added a comment - Added a patch proposition
          Hide
          hlship Howard M. Lewis Ship added a comment -

          Sounds like Sun^H^H^HOracle is killing JavaFX the scripting language, and just keeping the APIs.

          Show
          hlship Howard M. Lewis Ship added a comment - Sounds like Sun^H^H^HOracle is killing JavaFX the scripting language, and just keeping the APIs.
          Hide
          jkemnade Jochen Kemnade added a comment -

          This issue has been last updated about 1.5 years ago, has no assignee, affects an old version of Tapestry that is not actively developed anymore, and is therefore prone to be bulk-closed in the near future.

          If the issue still persists with the most recent development preview of Tapestry (5.4-beta-6, which is available from Maven Central), please update it as soon as possible. In the case of a feature request, please discuss it with the Tapestry developer community on the dev@tapestry.apache.org mailing list first.

          Show
          jkemnade Jochen Kemnade added a comment - This issue has been last updated about 1.5 years ago, has no assignee, affects an old version of Tapestry that is not actively developed anymore, and is therefore prone to be bulk-closed in the near future. If the issue still persists with the most recent development preview of Tapestry (5.4-beta-6, which is available from Maven Central), please update it as soon as possible. In the case of a feature request, please discuss it with the Tapestry developer community on the dev@tapestry.apache.org mailing list first.
          Hide
          jkemnade Jochen Kemnade added a comment -

          We assume this is no longer relevant and therefore close it.
          If you still have this issue in a recent Tapestry version (such as 5.3.8 or the latest 5.4 preview release), feel free to provide the necessary information and reopen.

          Show
          jkemnade Jochen Kemnade added a comment - We assume this is no longer relevant and therefore close it. If you still have this issue in a recent Tapestry version (such as 5.3.8 or the latest 5.4 preview release), feel free to provide the necessary information and reopen.

            People

            • Assignee:
              Unassigned
              Reporter:
              antoine.mischler Antoine Mischler
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development