Hi all,

Here is my proposal 'B' (Plan B in case of a failure in Plan A :D)

I think tag name startup implies it should have only one. That is why Paul
does not want many startup tags to be present in the configuration. So I
propose the following configuration for startups

<syn:task id="firststartup">
  <syn:onAlarm class="MessageInjector">
    <syn:simpletrigger count="10" interval="5000"/>
    <syn:property name="message">
       <test xmlns="urn:paul"/>
    </syn:property>
    <syn:property name="to" value="urn:test"/>
  </syn:onAlarm>
</syn:task>

or else

<syn:worker id="firststartup">
  <syn:onAlarm class="MessageInjector">
    <syn:simpletrigger count="10" interval="5000"/>
    <syn:property name="message">
       <test xmlns="urn:paul"/>
    </syn:property>
    <syn:property name="to" value="urn:test"/>
  </syn:onAlarm>
</syn:worker>

We can have multiple (tasks / workers) in the synapse configuration (which /
who) are scheduled to (execute / work). I think the notion of the startups
is a set of tasks scheduled to execute in the given times right?

So that we have sequences, endpoints, proxies, entries and *tasks* or
*workers* in the configuration.

This is my last try on this :D , if you all does not agreed to this or a
variation of this I will keep this thread for the day you want to re-factor
this. (I am sure that day will come soon)

Thanks,
Ruwan

On 9/24/07, Asankha C. Perera <[EMAIL PROTECTED]> wrote:
>
>  I prefer no startup
>
> asankha
>
> Paul Fremantle wrote:
>
> Haha!
>
> That is why I added <startup> :-)
>
> I *really* don't like having lots of <startup> tags. I think its ugly
> as hell. So I'm willing to support either:
>
> 1) one <startup>
> or
> 2) no <startup>
>
> You can tell I feel strongly about this :-)
>
> Paul
>
> On 9/24/07, Ruwan Linton <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> wrote:
>
>  Paul,
>
> On 9/24/07, Paul Fremantle <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> wrote:
>
>  My proposal would be to have an AbstractStartup that implements the id
> (getID/setID) and have every startup implement the id tag. Then we can
> simply get rid of the startup tag and just have any startup as a
> top-level child of <definitions>
>
> That would look the cleanest.
>
>  I agree, my only concern *now* is having arbitrary elements in the
> definitions tag. (I know I came up with that idea *earlier*, but now I don't
> like it, after your points on extendability) That is because having every
> types of startups like <job>, <xyz> with mediators also on the top level
> will screw up the configuration readability isn't it?
>
> For example
> <definition>
>  <job .../>
>  <paul'sJob ..../>
>  <myJob />
>  <log .../>
>  <send .... />
> </definitions>
>
> I am again saying that grouping startups is not the solution for this.
>
> Thanks,
> Ruwan
>
>      Paul
>
> On 9/24/07, Ruwan Linton < [EMAIL PROTECTED]> wrote:
>
>  Paul,
>
> I still do not agree to one single <startup> tag. One single startup tag
> implies wrapping (grouping) all startups in to one tag right? We had
>
>  this
>
>  kind of a configuration earlier and dropped these wrapping elements for
>
>  the
>
>  simplicity and I just don't like grouping the elements in the
>
>  configuration.
>
>  Here is my point;
> Say we have <job> now, and <xyz> in the future as startup impls, but id
>
>  and
>
>  may be tracing, statistics (may be in the future) like attributes are
>
>  common
>
>  to all startups not just to jobs (SimpleQuartzStartup) or even to xyz.
>
>  So it
>
>  is good to abstract out those common attributes to a higher abstraction
> layer IMO, to *AbstractStartup*.
>
> At the same time if we have multiple startups, it is good to have that
> startup element with its common attributes in the top level so that the
> configuration will be clean. This does not mean we should group all the
> startup elements in to one single startup element, because we have
>
>  common
>
>  but unique attributes for each and every startup.
>
> WDYT?
>
> BTW: I have done the refactoring up to some extent and will modify that
>
>  as
>
>  per the discussion (changing the <job> to <onAlarm>).
>
> Do we need to change the class names as well??? I prefer to change those
>
>  as
>
>  well to have the right transparency...
>
> Thanks,
> Ruwan
>
>
> On 9/24/07, Paul Fremantle <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> wrote:
>
>  Ok I agree - I've never been good at names :-)
>
> I think there is one more issue. The "onAlarms" are the things that
> should have names.
>
> So the syntax should be
>
> <startup>
>
>   <onAlarm id='blah' .../>
>   <onAlarm id='foo' ..../>
>
> </startup>
>
> There is no need for multiple <startup> tags that are named.
>
> Finally, should we make it <onStartup> to match onAlarm?
>
> Paul
>
> On 9/24/07, Sanjiva Weerawarana < [EMAIL PROTECTED]> wrote:
>
>  So .. I think this is not right yet.
>
> The problem is that we're using *two* very generic terms: "startup"
>
>   and
>
>   "job". I believe that with our current semantics, the prior means
>
>   "do
>
>  this
>
>  as you start up" and the latter means "execute a Java class at a
>
>   given
>
>   clock ala cron". Is that right?
>
> What I suggest is that we keep <startup> but change <job> to
>
>   something
>
>   like this:
>    <onAlarm class="..">
>      <simpleTrigger ..> | <cronTrigger ..>
>      <other stuff>
>    </onAlarm>
>
> I actually don't like simpleTrigger etc. - I'd prefer something
>
>   like:
>
>      <timer cron=..> and
>    <timer count=.. delay=..>
>
> This way, its clear that <onAlarm> is simply a task executed upon
>
>   some
>
>   trigger. We currently only have timer triggers but we could later
>
>   have
>
>   different triggers too.
>
> In the future if we want something other than an alarm triggered
>
>   task
>
>   executed at init time, then we can have new xml for that and just
>
>   have
>
>  it
>
>  execute. For example, I can see a <log> action being a useful
>
>   startup
>
>   thing .. log a message to some place when the system starts up? (I
>
>   did
>
>  say
>
>  in the future BTW!)
>
> Sanjiva.
>
> Ruwan Linton wrote:
>
>  After deeply looking in to Paul's code on the startup factory and
> serialization, I thought of the syntax again with keeping Paul's
>
>   points
>
>   about the startup element on this thread in my mind, I think the
> following configuration is clean and clear.
>
> <definitions>
>  <startup id="startup1">
>   <job class="MessageInjector">
>      ......
>   </job>
>  </ startup>
>  <startup id="startup-n">
>   <$ANY_TAG_REGISTERED_WITH_STARTUPFINDER ...../>
>  </startup>
> </definitions>
>
> (one startup per startup element and there can be number of
>
>    startups
>
>  in
>
>   the synapse def as in proxy definitions)
>
> This syntax will add an id to startups so that we can control them
>
>    at
>
>    runtime (if needed) because there is an indexing mechanism. This
>
>   syntax
>
>   will be same as proxy syntax from the configuration point of view.
>
> This also requires a certain amount of refactoring and I am ready
>
>    to
>
>  go
>
>   ahead with that.
>
> Thanks,
> Ruwan
>
> On 9/21/07, *Ruwan Linton* < [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> 
> <[EMAIL PROTECTED]>> wrote:
>
>     +1 for the option [3] and I am happy to do the refactoring if
>
>    we
>
>        have decided to go with this option. (Indeed my original
>
>    proposal
>
>        was this)
>
>     BTW: Serializer does not seem to be working properly.. (When I
>
>   tried
>
>       to start synapse using a configuration with a startup job it
>
>   builds
>
>       the job correctly but does not serializes the job on
>
>    serializing
>
>  the
>
>       config (I will look in to this).
>
>     Thanks,
>     Ruwan
>
>
>     On 9/20/07, *Paul Fremantle* < [EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]> <[EMAIL PROTECTED]>> wrote:
>
>         I'm not sure everyone is clear - maybe its because I
>
>    haven't
>
>  yet
>
>           documented this :-)
>
>         There is a new type of extension point called a Startup
>
>    with a
>
>            Factory... just like Mediators.
>         Job is a type of Startup - with its own XML, just like a
>
>   mediator
>
>           defines its own XML.
>
>         So if we added another type of Startup then it would have
>
>    a
>
>            different
>         tagname. So at the moment we can have:
>
>         <startup>
>           <job....>...</job>
>           <asankha>
>              <scheduled to work 24x7x265>
>           </asankha>
>         </startup>
>
>         So there are three choices:
>
>         1) Keep a wrapper element for all "startups"
>         2) remove the flexibility to have different startups
>         3) Refactor the code so it can tell if its a startup or a
>
>   mediator
>
>           when it hits the tag QName and do the right thing for
>
>    each.
>
>            Paul
>
>         On 9/20/07, Asankha C. Perera < [EMAIL PROTECTED]
>         <mailto: [EMAIL PROTECTED]>> wrote:
>         >
>         >  Well.. if we have other types of jobs.. can we do
>
>    something
>
>  like
>
>           >
>         >  <definitions>
>         >    ...
>         >    <job class="x.y.z.Quartz"....>
>         >    <job class=" a.b.c.Marble"....>
>         >
>         >    ...
>         >  </definitions>
>         >
>         >  thanks
>         >  asankha
>         >
>         >  Paul Fremantle wrote:
>         >  Do you envisage we will have other kinds of Startup or
>
>   should
>
>           we pull
>         >  the pluggability for that?
>         >
>         >  Paul
>         >
>         >  On 9/20/07, Asankha C. Perera <[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED] > <[EMAIL PROTECTED]>> wrote:
>         >
>         >
>         >  Paul
>         >
>         >  Opps.. nope.. the opposite of it..
>         >
>         >  e.g.
>         >  <definitions>
>         >  ...
>         >  <job....>*
>         >  ....
>         >  <proxy... >*
>         >  ....
>         >  </definitions>
>         >
>         >  thanks
>         >  asankha
>         >
>         >
>         >  Paul Fremantle wrote:
>         >  I'm not clear from your note, but I think you are
>
>    saying
>
>  there
>
>           should
>         >  be a top level tag that holds the jobs:
>         >
>         >  e.g.
>         >
>         >  <definitions>
>         >  <xxxxx>
>         >  <job>...</job>
>         >  </xxxxx>
>         >  ...
>         >
>         >  Is that what you meant?
>         >
>         >  Paul
>         >
>         >  On 9/20/07, Asankha C. Perera < [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]> <[EMAIL PROTECTED]>> wrote:
>         >
>         >
>         >  Paul / Ruwan
>         >
>         >  However, I agree we could do it. Thoughts from others?
>         >
>         >  Well.. when we finalized the config language syntax, we
>
>    had
>
>  a
>
>           top level
>         >  "definitions" and then one or more "proxy", "sequence",
>         "endpoint" etc
>         >  definitions. So I guess the "job" definitions should be
>         handled the same for
>         >  consistency.
>         >
>         >  asankha
>         >
>         >
>         >  On 9/20/07, Ruwan Linton < [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]> <[EMAIL PROTECTED]>> wrote:
>         >
>         >
>         >  Hi all,
>         >
>         >  For the moment the configuration for the jobs seems to
>
>    be
>
>  like
>
>           following;
>         >
>         >  <definitions>
>         >  <startup>
>         >  <job ...../>*
>         >  </startup>
>         >  ......
>         >  </definitions>
>         >
>         >  The <startup> element is wrapping all the jobs. With
>
>   compared
>
>           to other
>         >  elements in the configuration like <sequence>,
>
>    <endpoint>
>
>  and
>
>           all they are
>         >  top level elements even mediators can appear in the top
>
>   level
>
>           in which case
>         >  that collection is treated as the main sequence. So I
>
>   propose
>
>           to bring the
>         >  <jobs> element to the top level as follows;
>         >
>         >  <definitions>
>         >  <registry ..../>?
>         >  <proxy .../>*
>         >  <sequence .../>*
>         >  <endpoint ..../>*
>         >  <job .../>*
>         >  <localEntry .../>*
>         >  (mediator)*
>         >  </definitions>
>         >
>         >  If we do have multiple types of jobs then we can let
>
>    the
>
>            FactoryFinder to
>         >  handle that. Is there any particular reason that I am
>
>   missing
>
>           here? If not
>         >  shall we bring these jobs to the top level before 1.1
>
>   release?
>
>           >
>         >  Thanks,
>         >  Ruwan
>         >
>         >  --
>         >  Ruwan Linton
>         >   http://www.wso2.org - "Oxygenating the Web Services
>
>   Platform"
>
>           >
>         >
>         >
>         >
>         >
>         >
>         >
>         >
>         >
>         >
>         >
>         >
>
>
>         --
>         Paul Fremantle
>         Co-Founder and VP of Technical Sales, WSO2
>         OASIS WS-RX TC Co-chair
>
>         blog: http://pzf.fremantle.org
>         [EMAIL PROTECTED] <mailto: [EMAIL PROTECTED]>
>
>         "Oxygenating the Web Service Platform", www.wso2.com
>         < http://www.wso2.com> <http://www.wso2.com>
>
>
>                  
> ---------------------------------------------------------------------
>
>            To unsubscribe, e-mail:
>
>   [EMAIL PROTECTED]
>
> <mailto: [EMAIL PROTECTED]>
>
>           For additional commands, e-mail:
>
>   [EMAIL PROTECTED]
>
>           <mailto:[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
>
>
>
>
>     --
>
>     Ruwan Linton
>     http://www.wso2.org - "Oxygenating the Web Services Platform"
>
>
>
>
> --
> Ruwan Linton
> http://www.wso2.org - "Oxygenating the Web Services Platform"
>
>  --
> Sanjiva Weerawarana, Ph.D.
> Founder & Director; Lanka Software Foundation;
>
>   http://www.opensource.lk/
>
>   Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
> Member; Apache Software Foundation; http://www.apache.org/
> Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/
>
>
>               
> ---------------------------------------------------------------------
>
>   To unsubscribe, e-mail:
>
>  [EMAIL PROTECTED]
>
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>              --
> Paul Fremantle
> Co-Founder and VP of Technical Sales, WSO2
> OASIS WS-RX TC Co-chair
>
> blog: http://[EMAIL PROTECTED]
>
> "Oxygenating the Web Service Platform", www.wso2.com
>
>
>             
> ---------------------------------------------------------------------
>
>   To unsubscribe, e-mail:
>
>  [EMAIL PROTECTED]
>
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>            --
> Ruwan Linton
> http://www.wso2.org - "Oxygenating the Web Services Platform"
>
>  --
> Paul Fremantle
> Co-Founder and VP of Technical Sales, WSO2
> OASIS WS-RX TC Co-chair
>
> blog: http://[EMAIL PROTECTED]
>
> "Oxygenating the Web Service Platform", www.wso2.com
>
>
>        ---------------------------------------------------------------------
>
>  To unsubscribe, e-mail:
>
>  [EMAIL PROTECTED]
>
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>        --
> Ruwan Linton
> http://www.wso2.org - "Oxygenating the Web Services Platform"
>
>


-- 
Ruwan Linton
http://www.wso2.org - "Oxygenating the Web Services Platform"

Reply via email to