View Poll Results: If you read it, did you find DirectJNgine User's Guide adequate?

Voters
54. You may not vote on this poll
  • Yes

    40 74.07%
  • No

    14 25.93%
  1. #11
    Ext JS Premium Member
    Join Date
    May 2009
    Location
    Barcelona (Spain)
    Posts
    218
    Vote Rating
    19
    pagullo will become famous soon enough pagullo will become famous soon enough

      0  

    Default


    I slipped DjnRemoteCallSupport in the example file by accident, as it still needs to be tested for different types of method calls. That's why it worked ok in the example, but as soon as you tried to modify the demo to use the "api" thing it didn't work. Just do not use it by now!

    As far as you do not leak "undefineds" in the parameter list or as part of any array at any level in the object structure of your parameters, you'll be on the safe side -most of the time...

    BTW, the ExtJs guys changed one of their demos while going from 3.0.0 RC3 to final, and now the "examples/direct/direct-form.js" demo uses the "api" thing, showing how to perform server side field validation.

    Since I have updated DirectJNgine to use the final version of ExtJs, and have implemented the demos, you might want to take a look when I release the new version later this evening.

    Regards,

    Pedro Agullo

    P.S.: you will have to change @DirectPostMethod to @DirectFormPostMethod, all other things will remain the same.

  2. #12
    Ext JS Premium Member
    Join Date
    May 2009
    Location
    Barcelona (Spain)
    Posts
    218
    Vote Rating
    19
    pagullo will become famous soon enough pagullo will become famous soon enough

      0  

    Default


    We are releasing DirectJNgine 0.8 to accompany the final release of ExtJs 3.0.0.

    Since the final version of ExtJs has minor changes with respect to the release candidate, we advise you to upgrade both libraries so that they work well together.

    If you are new to DirectJNgine, you might want to take a look at the User's Guide.

    Here are the new and improved features:

    New: support for ExtJs 3.0.0 (final)
    The final release of ExtJs 3.0.0 has some changes with respect to the last release candidates, and we have modified djn accordingly.

    New: support for old JDKs (prior to JDK 1.5)
    Now there is support for JDKs prior to 1.5: it is possible to define direct methods, form post methods and poll methods using a new naming convention, so that annotations are not required.

    Therefore,

    Code:
    @DirectMethod
    public String sayHello( String name) {
      return “Hello, ” + name + “. Nice to meet you!”;
    }
    can be written as follows

    Code:
    public String djn_sayHello( String name) {
      return “Hello, ” + name + “. Nice to meet you!”;
    }
    The method name in the javascript client will be sayHello in *both* cases, to avoid impacting client code.

    Check the User’s Guide for further info.

    New: "official" support for browsers other than Firefox
    The first public beta of DirectJNgine was fully tested against Firefox only.
    We have updated our delivery process so that now it includes running all tests and examples against the following browsers:

    - IE: version 8.0.6001.18702,
    - Firefox: version 3.5.
    - Safari: version 4.0 (530.17)
    - Chrome: version 2.0.172.33

    All of our demos and automated tests run successfully against all of them.

    Unfortunately, Opera (version 9.64) does not pass all tests due to problems with upload form posts. Examples with forms including file input fields do not work either. We are investigating the issue.

    Improved: tests
    Our automated test suite has grown to more than 80 tests.

    Improved: fixes
    We have fixed several issues with our examples and IE, as well as the User's Guide. Now the example WAR runs as-is against all supported browsers.

    Improved: User’s Guide
    Added information about how to use djn with JDKs older than 1.5.

    Code breaking changes
    The @DirectPostMethod annotation has been renamed as @DirectFormPostMethod.

  3. #13
    Ext User mct's Avatar
    Join Date
    Dec 2008
    Posts
    12
    Vote Rating
    0
    mct is on a distinguished road

      0  

    Thumbs up Congratulation

    Congratulation


    Hi,
    DirectJNgine is a very good Job. It just works fine.
    I also like the User's Guide documentation, it's very clear and neat.
    Good continuation.
    Thank you.

  4. #14
    Ext User
    Join Date
    Apr 2008
    Posts
    10
    Vote Rating
    0
    maxm165 is on a distinguished road

      0  

    Default


    Hi!
    Very impressing work!
    I work for extdirec4j project. But DirectJNgine is much better!
    So i think after occurrence of DirectJNgine our project can be closed. Otherwise it on will similar 'to invent a wheel twice'.
    Let me post some feature request which have already been implemented in extdirect4j and i think can be usefull for DirectJNgine.

    1. To provide to user an access to GsonBuilder to register custom user TypeAdapter(may be it would be better to have 'custom' and 'system' GsonBuilders to prevent collision). I guess it is very important feature!
    2. Why not to have possibility to set action class programmaticly(for example, the class has been created at runtime) and also to set an object of action class(created with argumented constructor despite what it is not provided in ExtDirect spec).

    Please let me know what are you thinking about this ideas? If you do not have enough time to implement the future features i with the great pleasure would take a part in development.
    Best Regards.

    -Maxim Egorov-

  5. #15
    Ext JS Premium Member
    Join Date
    May 2009
    Location
    Barcelona (Spain)
    Posts
    218
    Vote Rating
    19
    pagullo will become famous soon enough pagullo will become famous soon enough

      0  

    Default


    Hi, Maxim!
    Thanks for your kind words!

    Customizing Gson, including custom serialization/deserialization, etc., was in the version 1.0 roadmap, and is already implemented in the version under development, which will see the light in a few days.

    With respect to programmatic method registration, I am considering it.

    If it is implemented, a possibility is to read a list of additional classes to scan from a properties file, say 'myApi.djn.api.properties' -easy to implement.
    If you need to generate a class at runtime, you should do so at application startup time,before the servlet is initialized, adding the full class name to the properties file.

    How do you think about that?

    Regards,

    Pedro Agullo

  6. #16
    Ext User
    Join Date
    Apr 2008
    Posts
    10
    Vote Rating
    0
    maxm165 is on a distinguished road

      0  

    Default


    Hi, Pedro!
    Thank you for reply!
    I think it is great.
    But i think injection of initialized object of action class is a good idea too (it will allow to create actions by constructor with an arguments and would make DirectJNgine more flexible).
    By the way may i ask you offtop question how many the person in your team? Do you develop project at leisure or for work?

    Thanks.

  7. #17
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Location
    Notts/Redwood City
    Posts
    30,505
    Vote Rating
    52
    Animal has a spectacular aura about Animal has a spectacular aura about Animal has a spectacular aura about

      0  

    Default


    You need to include an ANT script to build the war.

    I'm getting

    Code:
    SEVERE: Error deploying web application archive djn_test.war
    java.lang.UnsupportedClassVersionError: Bad version number in .class file
    on deployment, so I need to rebuild the war file using my installed JDK.

  8. #18
    Ext JS Premium Member
    Join Date
    May 2009
    Location
    Barcelona (Spain)
    Posts
    218
    Vote Rating
    19
    pagullo will become famous soon enough pagullo will become famous soon enough

      0  

    Default


    Hi!

    animal: Oops. Yes, the pre-cooked WAR is compiled against JDK 1.6, need to run against it.

    Will fix that long-term by adding the build.xml file -current one is too dependent on my personal configuration, can't distribute as-is.

    Thanks.

    ...

    maxim: can you provide a pair of concrete use cases about the injection thing? If it is to be implemented, I want to be *absolutely* sure about the programmatic API.

    I don't like much the prospect of regenerating the api files every now and then, the fact that the API is full know at servlet initialization time means I can generate the JS files *once and for all* (and spend extra time minifying them, etc.). So, adding more actions/methods via some callback at servlet initialization time is ok.

    Of course, if the API changes, I rely on restarting the app, and then files are regenerated if the API has changed. Well, that's exactly what I do when adding/modifying Java classes, and it is enough 99% of the time.

    Now, will you do with just adding actions/classes at initialization time? If that's not the case, can you show me a pair of common scenarios for which you think it is a must to add methods after servlet initialization?

    With respect to your other questions: I am the only programmer behind DirectJNgine, and I run it as a leisure project, even though I am fully committed to support it.

    That said, I get to spend a percentage of my work-time doing "as-I-want" research, and I'm very interested in what ExtJs has to offer, so I'm devoting additional time to it. It might happen that we move to ExtJs at work, but that depends on many other issues, DJN being just a little piece of the puzzle.

    ...

    Regards,

    Pedro Agullo

  9. #19
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Location
    Notts/Redwood City
    Posts
    30,505
    Vote Rating
    52
    Animal has a spectacular aura about Animal has a spectacular aura about Animal has a spectacular aura about

      0  

    Default


    OK, I'll test against a 6.0 JDK. We just standardize on 5.0 at work over all our platforms, so that's what I run by default.

  10. #20
    Ext User
    Join Date
    Apr 2008
    Posts
    10
    Vote Rating
    0
    maxm165 is on a distinguished road

      0  

    Default


    I just have very unusual and exotic use case in real work. Try to explain..
    We have a system which allows business users to create/modify, compile/recompile and finally run same custom executable java class on the fly without rebuilding/redeploying whole application. I know that doing extdirect interceptor by this way is a bad practice, but can't refuse convenience of creation of direct actions on the fly at least in debug phase.
    Therefore i have implemented registering of initialized object as a remote direct action.
    But you are really absolutely right it is a application designing problem, but not rpc engine.

    Thank you for discussion. Will study on your experience.
    Wish you the best in work with ExtJs.

    Maxim.

Thread Participants: 88

  1. Animal (5 Posts)
  2. barton (4 Posts)
  3. Condor (1 Post)
  4. mauro_monti (6 Posts)
  5. mbarto (1 Post)
  6. aconran (1 Post)
  7. MoShAn480 (1 Post)
  8. asgillett (2 Posts)
  9. seade (4 Posts)
  10. zaqwsxqwer (3 Posts)
  11. Sesshomurai (16 Posts)
  12. ThierryC (3 Posts)
  13. maxm165 (3 Posts)
  14. techstudios (2 Posts)
  15. sayonara (2 Posts)
  16. kschlaudt (1 Post)
  17. hschaefer123 (2 Posts)
  18. omarc (2 Posts)
  19. lxbzmy (4 Posts)
  20. mct (6 Posts)
  21. mediacept (2 Posts)
  22. dionisexorcius (1 Post)
  23. alper (1 Post)
  24. steverc (2 Posts)
  25. chrizmaster (18 Posts)
  26. J@y (21 Posts)
  27. Georgioa (6 Posts)
  28. wguan (1 Post)
  29. minneyar (16 Posts)
  30. jhoweaa (1 Post)
  31. Ramez (2 Posts)
  32. malus (1 Post)
  33. dweller (8 Posts)
  34. stdunbar (1 Post)
  35. vlagorce (20 Posts)
  36. cwilliso (1 Post)
  37. Whatty (13 Posts)
  38. Ice (1 Post)
  39. clynnh (1 Post)
  40. SreevaniN (1 Post)
  41. Stsalomon90 (1 Post)
  42. GregT (9 Posts)
  43. jcalfee (6 Posts)
  44. set_ti (1 Post)
  45. maho2nd (3 Posts)
  46. dreamtaotao (3 Posts)
  47. Toxa (4 Posts)
  48. tungchau (3 Posts)
  49. wlan0 (2 Posts)
  50. jpr (2 Posts)
  51. gianmarco (5 Posts)
  52. extjslikeit (2 Posts)
  53. harmen_wessels (1 Post)
  54. Olivercomputing2 (4 Posts)
  55. brainformance (1 Post)
  56. vanessa_ng (2 Posts)
  57. alois.cochard (5 Posts)
  58. kyrillos52 (2 Posts)
  59. Tod (1 Post)
  60. Alinanila (1 Post)
  61. tfannon (2 Posts)
  62. Kynao (1 Post)
  63. feiq (4 Posts)
  64. dalt (1 Post)
  65. xfolch (1 Post)
  66. avijit (1 Post)
  67. marcelsnews (2 Posts)
  68. maddhippy (1 Post)
  69. sritter (1 Post)
  70. july (2 Posts)
  71. jtkeller7983 (1 Post)
  72. lfranchini (2 Posts)
  73. 7/11 (2 Posts)
  74. yAdEs (1 Post)
  75. zazz (1 Post)
  76. waqar (5 Posts)
  77. pjain11 (1 Post)
  78. alexMobimesh (2 Posts)
  79. zachHurt (4 Posts)
  80. n0n3 (5 Posts)
  81. adavis2 (1 Post)
  82. mark.peters (1 Post)
  83. lee el (4 Posts)
  84. frengo19 (3 Posts)
  85. prakashwagle (1 Post)
  86. extejnar (2 Posts)
  87. alin@sonatype.com (1 Post)
  88. ajay_kango (3 Posts)