{"id":481,"date":"2008-12-24T08:33:43","date_gmt":"2008-12-24T15:33:43","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/?p=481"},"modified":"2008-12-24T08:33:43","modified_gmt":"2008-12-24T15:33:43","slug":"dwr-3-release-candidate-1","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2008\/12\/24\/dwr-3-release-candidate-1\/","title":{"rendered":"DWR 3 Release Candidate 1"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style481 () { return \"none\"; } function end481_ () { document.getElementById('wqd481').style.display = get_style481(); } <\/script>Joe Walker <a href=\"http:\/\/directwebremoting.org\/blog\/joe\/2008\/12\/16\/dwr_version_3_0_release_candidate_1.html\">anunciou<\/a> que saiu a <a href=\"http:\/\/directwebremoting.org\/dwr\/download\">RC1<\/a> do <a href=\"http:\/\/directwebremoting.org\/dwr\">DWR3<\/a> com <a href=\"http:\/\/www.milfont.org\/tech\/2008\/03\/11\/dwr-3-em-junho\/\">pequeno atraso<\/a> com novidades interessantes como suporte a Varargs, Method Overloading, entre outras coisas. Mas destaco algo que deveria ter h\u00e1 tempos e sent\u00edamos falta para constru\u00e7\u00f5es repetitivas como CRUD (principalmente) que \u00e9 o que chamou de &#8220;<strong>Lightweight typed parameters<\/strong>&#8220;.<\/p>\n<p>At\u00e9 a vers\u00e3o 2 temos que construir m\u00e9todos no <a href=\"http:\/\/directwebremoting.org\/dwr\/server\/dwrxml\/creators\">Creator<\/a> com implementa\u00e7\u00e3o nos argumentos devido ao DWR n\u00e3o ter como fazer o binding entre o Javascript e o Java sem saber quem \u00e9 o objeto. Algo assim:<\/p>\n<pre lang=\"java\">\r\npublic class AjaxFacade {\r\n\r\n\tpublic User teste(User param) {\r\n\t\tparam.setDescription(\"Teste funcionou\");\r\n\t\treturn param;\r\n\t}\r\n}\r\n<\/pre>\n<p>No javascript:<\/p>\n<pre lang=\"javascript\">\r\nAjaxFacade.teste(\r\n\t{\r\n\t\tid:42 \/\/JSON que representa o objeto User\r\n\t}, \r\n\t{\r\n\t\tcallback:function(retorno) {\r\n\t\t\talert(retorno.toSource());\r\n\t\t},\r\n\t\terrorHandler:function(error, message) {\r\n\t\t\talert(message);\r\n\t\t}, \r\n\t\ttimeout:5000\r\n\t});\r\n<\/pre>\n<p>Agora foi adicionado a propriedade <strong><em>$dwrClassName<\/em><\/strong> no <a href=\"http:\/\/directwebremoting.org\/dwr\/server\/dwrxml\/converters\">Converter<\/a> onde voc\u00ea pode trabalhar com a interface ao inv\u00e9s da implementa\u00e7\u00e3o. Vejamos com o Object como argumento no mesmo m\u00e9todo:<\/p>\n<pre lang=\"java\">\r\npublic class AjaxFacade {\r\n\r\n\tpublic Object teste(Object param) {\r\n\t\t\/\/puramente ilustrativo n\u00e3o pe\u00e7a fundamenta\u00e7\u00e3o l\u00f3gica :)\r\n\t\tif(param instanceof User) { \r\n\t\t\t((User) param).setDescription(\"Teste funcionou\");\r\n\t\t}\r\n\t\treturn param;\r\n\t}\r\n}\r\n<\/pre>\n<p>No javascript:<\/p>\n<pre lang=\"javascript\">\r\nAjaxFacade.teste(\r\n\t{\r\n\t\tid:42 \/\/JSON que representa o objeto User,\r\n\t\t$dwrClassName:\"User\"\r\n\t}, \r\n\t{\r\n\t\tcallback:function(retorno) {\r\n\t\t\talert(retorno.toSource());\r\n\t\t},\r\n\t\terrorHandler:function(error, message) {\r\n\t\t\talert(message);\r\n\t\t}, \r\n\t\ttimeout:5000\r\n\t});\r\n<\/pre>\n<p>Agora aquelas centenas de classes que fazem a mesma coisa [CRUDz\u00e3o velho de guerra] podem ser resumidas em uma \u00fanica Facade que faz suas valida\u00e7\u00f5es e aciona um Repository ou sua estrutura de persist\u00eancia.<\/p>\n<pre lang=\"java\">\r\npublic class AjaxFacade {\r\n\t@Autowired Repository repository;\r\n\tpublic Object persistir(Object param) {\r\n\t\tif(param == null) ...\r\n\t\trepository.persist(param);\r\n\t\treturn param;\r\n\t}\r\n}\r\n<\/pre>\n<p>Agora n\u00e3o tem como n\u00e3o termos um Feliz Natal!<\/p>\n<p id=\"wqd481\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra manufacturer coupon<\/a>&#8220;. Maybe &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra discount coupons<\/a>&#8221; is a very much complicated matter. Matters, like &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">coupons for viagra<\/a>&#8220;, are united numerous types of soundness problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may turn on erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies. <\/p>\n<p><script type=\"text\/javascript\"> end481_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Joe Walker anunciou que saiu a RC1 do DWR3 com pequeno atraso com novidades interessantes como suporte a Varargs, Method Overloading, entre outras coisas. Mas destaco algo que deveria ter h\u00e1 tempos e sent\u00edamos falta para constru\u00e7\u00f5es repetitivas como CRUD (principalmente) que \u00e9 o que chamou de &#8220;Lightweight typed parameters&#8220;. At\u00e9 a vers\u00e3o 2 temos [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16,32,28,3,23,26,8],"tags":[368,379,375,361,372,248,373],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/481"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=481"}],"version-history":[{"count":6,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/481\/revisions"}],"predecessor-version":[{"id":487,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/481\/revisions\/487"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}