Actually I think I can have just a single implementation per user/group/etc, just by checking to see what the type of the Object stored on the exchange is, so something like the following would work for user/group/any etc.:
<to uri="propagate:create"/> Colm. On Tue, Jul 26, 2016 at 5:35 PM, Colm O hEigeartaigh <[email protected]> wrote: > Thanks Francesco! > > I did a quick POC for the user create route + got it working locally. Any > thoughts on what the route should look like? I could create a separate > component for each of the user/groups/any etc., so the route would look > something like: > > <to uri="userPropagate:create"/> > <to uri="groupPropagate:create"/> > > Or I could have a single component that does something like: > > <to uri="propagate:create?object=user"/> > <to uri="propagate:create?object=group"/> > > etc. WDYT? > > BTW I'm not sure that this change is really buying us much improvement, as > the java logic looks more or less the same, from what I've done so far. I > guess one improvement is that we do away with all of the @Component Camel > Processor implementations (instead replacing them with Camel > DefaultProducer implementations that are controlled by the component). I > guess the routes look a bit nicer as well as we're calling the same > component rather than individual processors etc. > > Colm. > > On Tue, Jul 26, 2016 at 11:54 AM, Francesco Chicchiriccò < > [email protected]> wrote: > >> Hi, >> FYI I have just committed >> >> >> https://git1-us-west.apache.org/repos/asf?p=syncope.git;a=commit;h=945be877 >> >> a modification that should be simplifying the usage >> PropagationTaskExecutor / PropagationReporter >> >> Regards. >> >> >> On 22/07/2016 13:45, Colm O hEigeartaigh wrote: >> >>> Hi Francesco, >>> >>> I think a dedicated feature branch will not be necessary. I'll probably >>> do >>> it over a few commits, maybe do an operation at a time so as not to break >>> the tests. >>> >>> Colm. >>> >>> On Fri, Jul 22, 2016 at 7:59 AM, Francesco Chicchiriccò < >>> [email protected]>wrote: >>> >>> Hi Colm, >>>> as it seems that Giacomo as well is happy if you can take this task, can >>>> you please describe how are you going to work on it? Dedicated feature >>>> branch? Or you expect to be simple enough to stay in a single commit? >>>> >>>> Thanks! >>>> Regards. >>>> >>>> >>>> On 20/07/2016 13:45, Francesco Chicchiriccò wrote: >>>> >>>> On 20/07/2016 13:17, Colm O hEigeartaigh wrote: >>>>> >>>>> Hi Francesco, >>>>>> >>>>>> It should be fairly straightforward I'd say. Is there reasonable test >>>>>> coverage of the camel routes in the build? >>>>>> >>>>>> As you can see from [3] the "all" profile (featuring Activiti, Camel >>>>> and >>>>> Swagger) is active by default, so the whole integration test suite is >>>>> run >>>>> with Camel routes by default. >>>>> >>>>> I'd like to volunteer to take it on, given that I plan on talking about >>>>> >>>>>> Syncope + Camel, unless you or Giacomo would like to implement it? >>>>>> >>>>>> This sounds great to me, and I would also say that there is no >>>>> particular >>>>> rush to finish before releasing 2.0.0: such an improvement can also >>>>> come >>>>> afterwards (2.0.1, 2.0.2, ...). >>>>> >>>>> Regards. >>>>> >>>>> On Wed, Jul 20, 2016 at 12:03 PM, Francesco Chicchiriccò < >>>>> >>>>>> [email protected]> wrote: >>>>>> >>>>>> On 19/07/2016 17:46, Colm O hEigeartaigh wrote: >>>>>> >>>>>>> Hi Francesco, >>>>>>> >>>>>>>> How do you envisage this change would be made? The Processors in >>>>>>>> question >>>>>>>> pretty much all call the PropagationManager to create some tasks and >>>>>>>> then >>>>>>>> execute them using the PropagationTaskExecutor. We could create a >>>>>>>> new >>>>>>>> Camel >>>>>>>> component to encapsulate all of this functionality, and then just >>>>>>>> refer to >>>>>>>> it in the Spring DSL. Something like "<to >>>>>>>> uri="propagate:create?...>", >>>>>>>> "<to >>>>>>>> uri="propagate:update?...>" etc. Are you thinking alone these lines >>>>>>>> or >>>>>>>> something else? >>>>>>>> >>>>>>>> Hi Colm, >>>>>>>> >>>>>>> considering my (very limited) understanding of Camel, I would have >>>>>>> expected exactly something like this. >>>>>>> >>>>>>> How difficult would it be to implement? >>>>>>> >>>>>>> Regards. >>>>>>> >>>>>>> >>>>>>> On Mon, Jul 18, 2016 at 1:39 PM, Giacomo Lamonaco < >>>>>>> >>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>> Hi Francesco, >>>>>>>> >>>>>>>> I think it would be great! Currently camel routes are defined using >>>>>>>>> Spring DSL: as you can image we need to understand if the >>>>>>>>> logic you >>>>>>>>> described can be expressed using that DSL. IMHO that's not a >>>>>>>>> difficult >>>>>>>>> task and it would be great to develop a POC. Otherwise we can >>>>>>>>> investigate other DSLs (equivalent to Spring DSL of course). >>>>>>>>> >>>>>>>>> Best Regards, >>>>>>>>> Giacomo >>>>>>>>> >>>>>>>>> Il giorno ven, 15/07/2016 alle 18.16 +0200, Francesco Chicchiriccò >>>>>>>>> ha >>>>>>>>> scritto: >>>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>>> as you know, Camel-based provisioning is one of the coolest >>>>>>>>>> features >>>>>>>>>> among the several cool features in 2.0. >>>>>>>>>> >>>>>>>>>> The implementation is essentially done this way: each method in >>>>>>>>>> CamelUserProvisioningManager [1] (and similarly for groups and any >>>>>>>>>> objects) invokes some Camel route, then at the end of the route, >>>>>>>>>> some >>>>>>>>>> 'processor' is invoked (as [2] for example, when user is created). >>>>>>>>>> >>>>>>>>>> As you might see from [2] and all similar classes in that package, >>>>>>>>>> there >>>>>>>>>> is still some relevant logic implemented in Java, which might be >>>>>>>>>> moved >>>>>>>>>> back to the route definition, hence increasing the general >>>>>>>>>> benefits >>>>>>>>>> of >>>>>>>>>> the whole concept of Camel-based provisioning. >>>>>>>>>> >>>>>>>>>> Do you also see this as an enhancement? Do you think it is >>>>>>>>>> possible >>>>>>>>>> / >>>>>>>>>> feasible to implement with limited effort? >>>>>>>>>> >>>>>>>>>> Regards. >>>>>>>>>> >>>>>>>>>> [1] >>>>>>>>>> >>>>>>>>>> https://github.com/apache/syncope/blob/master/ext/camel/provisioning- >>>>>>>>>> >>>>>>>>>> camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java >>>>>>>>>> [2] >>>>>>>>>> >>>>>>>>>> https://github.com/apache/syncope/blob/master/ext/camel/provisioning- >>>>>>>>>> >>>>>>>>>> camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/UserCreateProcessor.java >>>>>>>>>> >>>>>>>>> [3] >>>>>>>>> https://github.com/apache/syncope/blob/master/fit/core-reference/pom.xml#L963 >>>>>>>>> >>>>>>>> >> -- >> Francesco Chicchiriccò >> >> Tirasa - Open Source Excellence >> http://www.tirasa.net/ >> >> Involved at The Apache Software Foundation: >> member, Syncope PMC chair, Cocoon PMC, Olingo PMC, >> CXF Committer, OpenJPA Committer, PonyMail PPMC >> http://home.apache.org/~ilgrosso/ >> >> > > > -- > Colm O hEigeartaigh > > Talend Community Coder > http://coders.talend.com > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com
