On 03/07/2012 15:00, ernst Developer wrote:
Hi Francesco,

I was wondering if the synchronization action classes could be useful for creating events. What do you think? Is it better than workflow? I was looking at: https://cwiki.apache.org/confluence/display/SYNCOPE/SynchronizationActionsClass

Hi Ernst,
this could be useful only for user modifications triggered by SyncJob: if this fits your scenario, go ahead with it.

Regards.

2012/6/25 ernst Developer <[email protected] <mailto:[email protected]>>

    Hi,

    So workflow tasks is the way to go at the moment.

    I totally agree upon your proposed event generating approach,
    using AOP. Using a configurable event handler implementation makes
    it flexible for every use case.
    The events do not have to provide all information, but only key
    values that can be used to retrieve the relevant extra information
    from the syncope database, would be enough I guess.

    Thanks for now,
    Ernst

    2012/6/25 Francesco Chicchiriccò <[email protected]
    <mailto:[email protected]>>

        On 25/06/2012 12:51, ernst Developer wrote:
        Hi Francesco,

        Thanks for the reply.

        What I understand from your reply is that I can create
        reports using the reportlets, that I have to implement
        myself. What I basically get by implementing a reportlet is
        some sort of client. This client retrieves data from the
        syncope database, and transforms this data into html or pdf.
        Hope my understanding is correct.

        It is, indeed :)


        What I would like to have is some sort of event handling
        system in syncope, that provides the event data to, for
        instance, a database table, or to a publish subscribe queue.
        Can you give me some advise how to implement this? Do you
        think an approach like this will be available in the future
        in syncope? The main goal here is to provide the information
        to other users than syncope itself.

        I see: currently, the only kind of "events" you can catch are
        workflow-related, by using custom Task implementations;
        anything happening outside the worklfow cannot be, of course,
        handled this way.

        However, I think that some sort of "interceptor" feature could
        be very interesting to put in roadmap.
        For your reference, I'd think to use some good AOP for
        implementing this, anyway: this would allow to some high grade
        of flexibility while keeping the "main" code clean.

        Regards.


        2012/6/24 Francesco Chicchiriccò <[email protected]
        <mailto:[email protected]>>

            On 22/06/2012 14:10, ernst Developer wrote:
            Hi,

            For reporting reasons we need data about events in
            Syncope. These events include:

              * create of a user in Syncope;
              * provisioning to the resources; including state of
                the provisioning;
              * update of a user in Syncope;
              * provisioning to the resources; including the state
                of the provisioning;
              * adding of a resource to a user;
              * removing of a resource;
              * delete of a user;
              * ....

            I was wondering how I should implement this, using the
            standard features of Syncope. Can you please help me out
            on this item, and point for instance the direction for
            the solution of this requirement.

            Hi Ernst,
            you should be able to get most (but not everything) of
            what you say above in 1.0.0 by implementing your own
            reportlet: report feature is one of the newcomers in
            Syncope and is unfortunately not yet documented.

            Basically, reports are aggregation of reportlets: each
            reportlet captures a particular aspect you'd like to
            include in you report - for example the UserReportlet
            deals with user attributes and resources; reportlets
            produce output by SAX events (see [1] for an example).

            You can of course write your own reportlet(s) by
            implementing [2] or extending [3] + providing a couple of
            XSLT files for transforming reportlet data into HTML and
            PDF / RTF respectively - see some examples [4].

            Once you have deployed your own reportlets, you are able
            to configure one or more reports through the admin console.

            Hope this helps.
            Regards.

            [1]
            
https://svn.apache.org/repos/asf/incubator/syncope/tags/syncope-1.0.0-RC1-incubating/core/src/main/java/org/apache/syncope/core/report/UserReportlet.java
            [2]
            
https://svn.apache.org/repos/asf/incubator/syncope/tags/syncope-1.0.0-RC1-incubating/core/src/main/java/org/apache/syncope/core/report/Reportlet.java
            [3]
            
https://svn.apache.org/repos/asf/incubator/syncope/tags/syncope-1.0.0-RC1-incubating/core/src/main/java/org/apache/syncope/core/report/AbstractReportlet.java
            [4]
            
https://svn.apache.org/repos/asf/incubator/syncope/tags/syncope-1.0.0-RC1-incubating/core/src/main/resources/report/

--
Francesco Chicchiriccò

ASF Member, Apache Cocoon PMC and Apache Syncope PPMC Member
http://people.apache.org/~ilgrosso/

Reply via email to