Hi, I also think we have a lot of possibilities here. I think the easiest and least painful integration strategy is through spring-integration or camel. One problem though is the "and wait for response when necessary". This notion makes it more complicated, because then we need to introduce a 'Future'. Maybe not a problem and maybe the right way to go.
cheers.../Andreas On Fri, Aug 20, 2010 at 10:51 AM, Pavel Tavoda <pavel.tav...@gmail.com>wrote: > I understand this approach but when I look on PROS/CONS I see that EDA > approach is more complex but if we have it generated than we get > everything for free. > Do you see some other disadvantages (performance, transactions scoping, > ...)? > > I even wanted to write our standard services as message services and > generate facades which put messages on bus (and wait for response when > necessary). What do you think is biggest problem of this approach? > > Pavel > > On Fri, Aug 20, 2010 at 10:24 AM, Patrik Nordwall > <patrik.nordw...@gmail.com> wrote: > > > > That is probably also a good idea, but that is another story. This is > > intended as a thin wrapper on top of plain request/response (not event > > driven) services. > > > > /Patrik > > > > > > PaloT wrote: > >> > >> Hello, > >> couldn't we do this with new EDA features and some message bus. I > >> guess Camel can handle this. It will be nice to have standardized > >> services in form of message services. Frontend will be done in service > >> facades. Standard service call will generate message on bus and other > >> types of integration like REST services will be done on message bus. > >> > >> Pavel > >> > >> On Fri, Aug 20, 2010 at 9:19 AM, Patrik Nordwall > >> <patrik.nordw...@gmail.com> wrote: > >>> > >>> Hi Attila, I'm happy to see you are back in the team again. > >>> > >>> We also need to decide if we need separate DslController or if we can > use > >>> DslService, with some additions. > >>> > >>> Service PlanetService { > >>> restful > >>> > >>> @Planet findById(Long id) restPath="/planet/{id}" restMethod=GET > >>> delegates to PlanetRepository.findById; > >>> > >>> save(@Planet planet) restPath="/planet" restMethod="POST" > >>> delegates to PlanetRepository.save; > >>> } > >>> > >>> > >>> We can probably come up with good defaults for restPath and restMethod > >>> based > >>> on naming conventions, so that it is optional to define them. > >>> > >>> > >>> Another design decision is if we should have a separate Controller in > the > >>> meta model, that is used by the code generation templates. You know we > >>> have > >>> a transformation between dsl model and code generation model, so they > >>> don't > >>> have to have the same structure. > >>> Maybe a Controller extends Service is nice in the meta model, because > >>> then > >>> it is easy to use polymorphism in the xpand templates. > >>> > >>> /Patrik > >>> > >>> > >>> > >>> Bak Attila wrote: > >>>> > >>>> Hi Patrik, > >>>> > >>>> How would you image this one in the dsl as annotated? > >>>> I mean how should it look in the textual language? > >>>> The problem ist that operations and params need "annotations" there. > >>>> Could you give me an example? > >>>> > >>>> @RequestMapping(value = "/inquiry/{id}", method = RequestMethod.GET) > >>>> public String show(@PathVariable("id") Long id, ModelMap modelMap) > >>>> throws InquiryNotFoundException > >>>> > >>>> Thanks > >>>> attila > >>>> > >>>> > >>>> Patrik Nordwall wrote: > >>>>> > >>>>> Hi all, I have an idea of a new feature and would like to have your > >>>>> input. > >>>>> > >>>>> When we have evaluated Google App Engine we have used the new REST > >>>>> features in Spring 3.0. REST is a perfect style for the cloud and I > >>>>> think > >>>>> it would be rather easy to generate the Spring Controllers, > delegating > >>>>> to > >>>>> Services. I'm not looking for another gui solution. It should > primarily > >>>>> support json and xml content, which can be used by various client > >>>>> applications (not only cloud environment). > >>>>> > >>>>> My suggestion is to generate Spring Controllers with @RequestMapping > >>>>> annotations. The methods should delegate to Service methods, or be > >>>>> implemented by hand written code in gap subclass. > >>>>> > >>>>> It might look something like this: > >>>>> > >>>>> @RequestMapping(value = "/inquiry/{id}", method = > >>>>> RequestMethod.GET) > >>>>> public String show(@PathVariable("id") Long id, ModelMap > modelMap) > >>>>> throws InquiryNotFoundException { > >>>>> Key inquiryKey = > >>>>> KeyFactory.createKey(Inquiry.class.getSimpleName(), id); > >>>>> Inquiry inquiry = inquiryService.findById(serviceContext(), > >>>>> inquiryKey); > >>>>> modelMap.put("inquiry", inquiry); > >>>>> return "inquiry/show"; > >>>>> } > >>>>> > >>>>> @RequestMapping(value = "/inquiry", method = RequestMethod.POST) > >>>>> public String create(@ModelAttribute("inquiry") Inquiry inquiry, > >>>>> BindingResult result) { > >>>>> if (inquiry == null) { > >>>>> throw new IllegalArgumentException("A inquiry is > >>>>> required"); > >>>>> } > >>>>> Inquiry savedInquiry = inquiryService.save(serviceContext(), > >>>>> inquiry); > >>>>> return "redirect:/rest/inquiry/" + > >>>>> savedInquiry.getId().getId(); > >>>>> } > >>>>> > >>>>> > >>>>> What I think should be done: > >>>>> - In meta model add Controller and ControllerOperation, similar to > >>>>> Service. ControllerOperation should include things necessary to > define > >>>>> RequestMapping and delegation to ServiceOperation. > >>>>> - In DSL add DslController similar to DslService > >>>>> - In transformation add transformaton from DslController to > Controller > >>>>> - In transformation add scaffold for controller, similar to Service, > >>>>> i.e. > >>>>> the CRUD operations can be automated using single scaffold keyword > >>>>> - Generation template for Controller and its operations. Support for > >>>>> gap > >>>>> class. > >>>>> - Generation template for spring configuration for > >>>>> ContentNegotiatingViewResolver > >>>>> > >>>>> References: > >>>>> - http://www.infoq.com/articles/designing-restful-http-apps-roth > >>>>> - http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc > >>>>> - > >>>>> > http://stsmedia.net/spring-finance-part-7-adding-support-for-json-and-xml-views/ > >>>>> http://code.google.com/p/spring-finance-manager/source/checkout > >>>>> I have tried the setup described here and I think it is working. > >>>>> - http://curl.haxx.se/ (useful for testing) > >>>>> > >>>>> What do you thing? Would this be useful for you? > >>>>> > >>>>> /Patrik > >>>>> > >>>>> > >>>>> > >>>> > >>>> > >>> > >>> -- > >>> View this message in context: > >>> > http://old.nabble.com/-sculptor--RESTful-Services-tp25407858s17564p29489342.html > >>> Sent from the Fornax-Platform mailing list archive at Nabble.com. > >>> > >>> > >>> > ------------------------------------------------------------------------------ > >>> This SF.net email is sponsored by > >>> > >>> Make an app they can't live without > >>> Enter the BlackBerry Developer Challenge > >>> http://p.sf.net/sfu/RIM-dev2dev > >>> _______________________________________________ > >>> Fornax-developer mailing list > >>> Fornax-developer@lists.sourceforge.net > >>> https://lists.sourceforge.net/lists/listinfo/fornax-developer > >>> > >> > >> > ------------------------------------------------------------------------------ > >> This SF.net email is sponsored by > >> > >> Make an app they can't live without > >> Enter the BlackBerry Developer Challenge > >> http://p.sf.net/sfu/RIM-dev2dev > >> _______________________________________________ > >> Fornax-developer mailing list > >> Fornax-developer@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/fornax-developer > >> > >> > > > > -- > > View this message in context: > http://old.nabble.com/-sculptor--RESTful-Services-tp25407858s17564p29489769.html > > Sent from the Fornax-Platform mailing list archive at Nabble.com. > > > > > > > ------------------------------------------------------------------------------ > > This SF.net email is sponsored by > > > > Make an app they can't live without > > Enter the BlackBerry Developer Challenge > > http://p.sf.net/sfu/RIM-dev2dev > > _______________________________________________ > > Fornax-developer mailing list > > Fornax-developer@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/fornax-developer > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Fornax-developer mailing list > Fornax-developer@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/fornax-developer >
------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________ Fornax-developer mailing list Fornax-developer@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fornax-developer