You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@incubator.apache.org by Min Cha <mi...@gmail.com> on 2009/03/18 01:53:26 UTC

Robust-Task introduction

Hi, all.

I am developing a framework called as Robust-Task.
Robust-Task is a framework which helps you write READABLE code when you need
to express complex or long business flow.
(Recently, 0.1 concept version was released.)
I would like to see that the idea of Robust-Task is valuable through the
opinions of Apache incubator members and Apache commons member.
Following is a document to introduce Robust-Task.

http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction

If you have a opinion, please reply to this mail.
Thanks for your reading.

-- 
Min Cha, Dreaming Developer
English : http://minslovey.blogspot.com
Korean : http://minslovey.tistory.com

Re: Robust-Task introduction

Posted by Min Cha <mi...@gmail.com>.
(I`m sorry. I forgot general-mailing. This reply mail was sent to only
Commons. When you reply to this mail. please include
dev@commons.apache.orgto discuss together)

Hi. ted.
Thanks for your question.

In general, MQ is using to send messages among distribued servers in
enterprise environment.
I think that workflow you mentioned is workflow on the viewpoint of
integration.

On the other hands, Robust-Task handles general worlflow on one process or
one marchine.
For example, you can think of database transaction code which inserts data
to various tables. In this case, you might not choose MQ to implment that.

Robust-Task is similar to 'Apache commons chain' rather than MQ.
However, Robust-Task has more advantages than Apache commons chain.

First, Robust-Task is based on DSL(Domain Specific Langueage). It makes code
more READABLE. You can compare with the code style of Robust-Task and the
code style of Apache commons chain.

=== Robust-Task ===

new TaskChain()
  .add(new GenesisCoupeTask())
  .add(new TuscanyCoupeTask())
  .add(new TiburonCoupeTask())
.execute();

=== Apache commons chain ===

public class SellVehicleChain extends ChainBase {
  public SellVehicleChain() {
    super();
    addCommand(new GenesisCoupeTask());
    addCommand(new TuscanyCoupeTask());
    addCommand(new TiburonCoupeTask());

  }

  public static void main(String[] args) throws Exception {
    Command process = new SellVehicleChain();
    Context ctx = new ContextBase();
    process.execute(ctx);
  }
}

Second, Robust-Task provides Task decoration which can add special function
to Task as following.

=== LoggingCurrentTimeTask is run asynchronously ===

Method-Chaining style

new LoggingCurrentTimeTask()
  .areWrappedByAsycer()
.execute();

Nested Function style

asyncer(
  task(new LoggingCurrentTimeTask()),
).execute();

Last of all, Robust-Task provides combination among Task, Task-Chain and
Task-Decoration.
This can be called 'Potent combination'.
Using this feature, you can write flexible expression as following.

=== Combination among Task, Task-Chain and Task-Decoration ===

aspect(
  before(new LoggingCurrentTimeTask()),
  task(new TaskChain()
    .add(new GenesisCoupeTask())
    .add(new TuscanyCoupeTask())
    .add(new TiburonCoupeTask())),
  after(new AfterTask().areWrappedByRetryFailover().failover(new
FailoverTask()))
).areWrappedByAsycer().execute();


On Sat, Mar 21, 2009 at 12:56 AM, Ted Dunning <te...@gmail.com> wrote:

> How is this different from things like OpenMQ (from Sun) or ActiveMQ
> (apache)?
>
> These do workflow pretty well.d
>
> On Fri, Mar 20, 2009 at 6:04 AM, Min Cha <mi...@gmail.com> wrote:
>
> > Hi, Niclas.
> > Thanks for your opinion.
> >
> > I wonder whether I am understanding a message from you.
> > Do you think this project should or can be a component in Commons?
> >
> > If so,  I would like to know how to be a component in Commons.
> > IMHO, Robust-Task has a possibility to be a good contributor to Java and
> > Apache community.
> >
> > Cheers.
> >
> > On Fri, Mar 20, 2009 at 12:54 PM, Niclas Hedhman <ni...@hedhman.org>
> > wrote:
> >
> > > I think this is a neat thing that Commons might pick up on, as I see a
> > > problem of it to be large enough for its own community.
> > >
> > > Cheers
> > > Niclas
> > >
> > > On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> > > > Hi, all.
> > > >
> > > > I am developing a framework called as Robust-Task.
> > > > Robust-Task is a framework which helps you write READABLE code when
> you
> > > need
> > > > to express complex or long business flow.
> > > > (Recently, 0.1 concept version was released.)
> > > > I would like to see that the idea of Robust-Task is valuable through
> > the
> > > > opinions of Apache incubator members and Apache commons member.
> > > > Following is a document to introduce Robust-Task.
> > > >
> > > > http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
> > > >
> > > > If you have a opinion, please reply to this mail.
> > > > Thanks for your reading.
> > > >
> > > > --
> > > > Min Cha, Dreaming Developer
> > > > English : http://minslovey.blogspot.com
> > > > Korean : http://minslovey.tistory.com
> > > >
> > >
> > >
> > >
> > > --
> > > http://www.qi4j.org - New Energy for Java
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: general-help@incubator.apache.org
> > >
> > >
> >
> >
> > --
> > Min Cha, Dreaming Developer
> > English : http://minslovey.blogspot.com
> > Korean : http://minslovey.tistory.com
> >
>
>
>
> --
> Ted Dunning, CTO
> DeepDyve
>
> 111 West Evelyn Ave. Ste. 202
> Sunnyvale, CA 94086
> www.deepdyve.com
> 408-773-0110 ext. 738
> 858-414-0013 (m)
> 408-773-0220 (fax)
>



-- 
Min Cha, Dreaming Developer
English : http://minslovey.blogspot.com
Korean : http://minslovey.tistory.com

Re: Robust-Task introduction

Posted by Ted Dunning <te...@gmail.com>.
Thanks for your very nice answer.  That makes the difference clear.

On Fri, Mar 20, 2009 at 10:20 AM, Min Cha <mi...@gmail.com> wrote:

> Hi. ted.
> Thanks for your question.
>
> ...
> First, Robust-Task is based on DSL(Domain Specific Langueage). It makes
> code
> more READABLE. You can compare with the code style of Robust-Task and the
> code style of Apache commons chain.
>
>
-- 
Ted Dunning, CTO
DeepDyve

Re: Robust-Task introduction

Posted by Min Cha <mi...@gmail.com>.
Hi. ted.
Thanks for your question.

In general, MQ is using to send messages among distribued servers in
enterprise environment.
I think that workflow you mentioned is workflow on the viewpoint of
integration.

On the other hands, Robust-Task handles general worlflow on one process or
one marchine.
For example, you can think of database transaction code which inserts data
to various tables. In this case, you might not choose MQ to implment that.

Robust-Task is similar to 'Apache commons chain' rather than MQ.
However, Robust-Task has more advantages than Apache commons chain.

First, Robust-Task is based on DSL(Domain Specific Langueage). It makes code
more READABLE. You can compare with the code style of Robust-Task and the
code style of Apache commons chain.

=== Robust-Task ===

new TaskChain()
  .add(new GenesisCoupeTask())
  .add(new TuscanyCoupeTask())
  .add(new TiburonCoupeTask())
.execute();

=== Apache commons chain ===

public class SellVehicleChain extends ChainBase {
  public SellVehicleChain() {
    super();
    addCommand(new GenesisCoupeTask());
    addCommand(new TuscanyCoupeTask());
    addCommand(new TiburonCoupeTask());
  }

  public static void main(String[] args) throws Exception {
    Command process = new SellVehicleChain();
    Context ctx = new ContextBase();
    process.execute(ctx);
  }
}

Second, Robust-Task provides Task decoration which can add special function
to Task as following.

=== LoggingCurrentTimeTask is run asynchronously ===
Method-Chaining style

new LoggingCurrentTimeTask()
  .areWrappedByAsycer()
.execute();

Nested Function style

asyncer(
  task(new LoggingCurrentTimeTask()),
).execute();

Last of all, Robust-Task provides combination among Task, Task-Chain and
Task-Decoration.
This can be called 'Potent combination'.
Using this feature, you can write flexible expression as following.

=== Combination among Task, Task-Chain and Task-Decoration ===

aspect(
  before(new LoggingCurrentTimeTask()),
  task(new TaskChain()
    .add(new GenesisCoupeTask())
    .add(new TuscanyCoupeTask())
    .add(new TiburonCoupeTask())),
  after(new AfterTask().areWrappedByRetryFailover().failover(new
FailoverTask()))
).areWrappedByAsycer().execute();



On Sat, Mar 21, 2009 at 12:56 AM, Ted Dunning <te...@gmail.com> wrote:

> How is this different from things like OpenMQ (from Sun) or ActiveMQ
> (apache)?
>
> These do workflow pretty well.d
>
> On Fri, Mar 20, 2009 at 6:04 AM, Min Cha <mi...@gmail.com> wrote:
>
> > Hi, Niclas.
> > Thanks for your opinion.
> >
> > I wonder whether I am understanding a message from you.
> > Do you think this project should or can be a component in Commons?
> >
> > If so,  I would like to know how to be a component in Commons.
> > IMHO, Robust-Task has a possibility to be a good contributor to Java and
> > Apache community.
> >
> > Cheers.
> >
> > On Fri, Mar 20, 2009 at 12:54 PM, Niclas Hedhman <ni...@hedhman.org>
> > wrote:
> >
> > > I think this is a neat thing that Commons might pick up on, as I see a
> > > problem of it to be large enough for its own community.
> > >
> > > Cheers
> > > Niclas
> > >
> > > On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> > > > Hi, all.
> > > >
> > > > I am developing a framework called as Robust-Task.
> > > > Robust-Task is a framework which helps you write READABLE code when
> you
> > > need
> > > > to express complex or long business flow.
> > > > (Recently, 0.1 concept version was released.)
> > > > I would like to see that the idea of Robust-Task is valuable through
> > the
> > > > opinions of Apache incubator members and Apache commons member.
> > > > Following is a document to introduce Robust-Task.
> > > >
> > > > http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
> > > >
> > > > If you have a opinion, please reply to this mail.
> > > > Thanks for your reading.
> > > >
> > > > --
> > > > Min Cha, Dreaming Developer
> > > > English : http://minslovey.blogspot.com
> > > > Korean : http://minslovey.tistory.com
> > > >
> > >
> > >
> > >
> > > --
> > > http://www.qi4j.org - New Energy for Java
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: general-help@incubator.apache.org
> > >
> > >
> >
> >
> > --
> > Min Cha, Dreaming Developer
> > English : http://minslovey.blogspot.com
> > Korean : http://minslovey.tistory.com
> >
>
>
>
> --
> Ted Dunning, CTO
> DeepDyve
>
> 111 West Evelyn Ave. Ste. 202
> Sunnyvale, CA 94086
> www.deepdyve.com
> 408-773-0110 ext. 738
> 858-414-0013 (m)
> 408-773-0220 (fax)
>



-- 
Min Cha, Dreaming Developer
English : http://minslovey.blogspot.com
Korean : http://minslovey.tistory.com

Re: Robust-Task introduction

Posted by Ted Dunning <te...@gmail.com>.
How is this different from things like OpenMQ (from Sun) or ActiveMQ
(apache)?

These do workflow pretty well.d

On Fri, Mar 20, 2009 at 6:04 AM, Min Cha <mi...@gmail.com> wrote:

> Hi, Niclas.
> Thanks for your opinion.
>
> I wonder whether I am understanding a message from you.
> Do you think this project should or can be a component in Commons?
>
> If so,  I would like to know how to be a component in Commons.
> IMHO, Robust-Task has a possibility to be a good contributor to Java and
> Apache community.
>
> Cheers.
>
> On Fri, Mar 20, 2009 at 12:54 PM, Niclas Hedhman <ni...@hedhman.org>
> wrote:
>
> > I think this is a neat thing that Commons might pick up on, as I see a
> > problem of it to be large enough for its own community.
> >
> > Cheers
> > Niclas
> >
> > On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> > > Hi, all.
> > >
> > > I am developing a framework called as Robust-Task.
> > > Robust-Task is a framework which helps you write READABLE code when you
> > need
> > > to express complex or long business flow.
> > > (Recently, 0.1 concept version was released.)
> > > I would like to see that the idea of Robust-Task is valuable through
> the
> > > opinions of Apache incubator members and Apache commons member.
> > > Following is a document to introduce Robust-Task.
> > >
> > > http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
> > >
> > > If you have a opinion, please reply to this mail.
> > > Thanks for your reading.
> > >
> > > --
> > > Min Cha, Dreaming Developer
> > > English : http://minslovey.blogspot.com
> > > Korean : http://minslovey.tistory.com
> > >
> >
> >
> >
> > --
> > http://www.qi4j.org - New Energy for Java
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: general-help@incubator.apache.org
> >
> >
>
>
> --
> Min Cha, Dreaming Developer
> English : http://minslovey.blogspot.com
> Korean : http://minslovey.tistory.com
>



-- 
Ted Dunning, CTO
DeepDyve

111 West Evelyn Ave. Ste. 202
Sunnyvale, CA 94086
www.deepdyve.com
408-773-0110 ext. 738
858-414-0013 (m)
408-773-0220 (fax)

Re: Robust-Task introduction

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Fri, Mar 20, 2009 at 9:04 PM, Min Cha <mi...@gmail.com> wrote:

> I wonder whether I am understanding a message from you.
> Do you think this project should or can be a component in Commons?

Could become...

> If so,  I would like to know how to be a component in Commons.

Well, it depends. The Commons community could either go for
Incubation, in which case it is about getting a community built up
with the codebase. I suspect that the codebase is too small for
Incubation, and Commons should do a "Software Grant" and import the
codebase into their existing community. Now, it is up to 'them' how
they want to proceed. I am skeptical to incubation to grow community,
but no problem to see a them take the library in via a Software Grant.

Cheers
Niclas
-- 
http://www.qi4j.org - New Energy for Java

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Re: Robust-Task introduction

Posted by Ted Dunning <te...@gmail.com>.
How is this different from things like OpenMQ (from Sun) or ActiveMQ
(apache)?

These do workflow pretty well.d

On Fri, Mar 20, 2009 at 6:04 AM, Min Cha <mi...@gmail.com> wrote:

> Hi, Niclas.
> Thanks for your opinion.
>
> I wonder whether I am understanding a message from you.
> Do you think this project should or can be a component in Commons?
>
> If so,  I would like to know how to be a component in Commons.
> IMHO, Robust-Task has a possibility to be a good contributor to Java and
> Apache community.
>
> Cheers.
>
> On Fri, Mar 20, 2009 at 12:54 PM, Niclas Hedhman <ni...@hedhman.org>
> wrote:
>
> > I think this is a neat thing that Commons might pick up on, as I see a
> > problem of it to be large enough for its own community.
> >
> > Cheers
> > Niclas
> >
> > On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> > > Hi, all.
> > >
> > > I am developing a framework called as Robust-Task.
> > > Robust-Task is a framework which helps you write READABLE code when you
> > need
> > > to express complex or long business flow.
> > > (Recently, 0.1 concept version was released.)
> > > I would like to see that the idea of Robust-Task is valuable through
> the
> > > opinions of Apache incubator members and Apache commons member.
> > > Following is a document to introduce Robust-Task.
> > >
> > > http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
> > >
> > > If you have a opinion, please reply to this mail.
> > > Thanks for your reading.
> > >
> > > --
> > > Min Cha, Dreaming Developer
> > > English : http://minslovey.blogspot.com
> > > Korean : http://minslovey.tistory.com
> > >
> >
> >
> >
> > --
> > http://www.qi4j.org - New Energy for Java
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: general-help@incubator.apache.org
> >
> >
>
>
> --
> Min Cha, Dreaming Developer
> English : http://minslovey.blogspot.com
> Korean : http://minslovey.tistory.com
>



-- 
Ted Dunning, CTO
DeepDyve

111 West Evelyn Ave. Ste. 202
Sunnyvale, CA 94086
www.deepdyve.com
408-773-0110 ext. 738
858-414-0013 (m)
408-773-0220 (fax)

Re: Robust-Task introduction

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Fri, Mar 20, 2009 at 9:04 PM, Min Cha <mi...@gmail.com> wrote:

> I wonder whether I am understanding a message from you.
> Do you think this project should or can be a component in Commons?

Could become...

> If so,  I would like to know how to be a component in Commons.

Well, it depends. The Commons community could either go for
Incubation, in which case it is about getting a community built up
with the codebase. I suspect that the codebase is too small for
Incubation, and Commons should do a "Software Grant" and import the
codebase into their existing community. Now, it is up to 'them' how
they want to proceed. I am skeptical to incubation to grow community,
but no problem to see a them take the library in via a Software Grant.

Cheers
Niclas
-- 
http://www.qi4j.org - New Energy for Java

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Re: Robust-Task introduction

Posted by Min Cha <mi...@gmail.com>.
Hi, Niclas.
Thanks for your opinion.

I wonder whether I am understanding a message from you.
Do you think this project should or can be a component in Commons?

If so,  I would like to know how to be a component in Commons.
IMHO, Robust-Task has a possibility to be a good contributor to Java and
Apache community.

Cheers.

On Fri, Mar 20, 2009 at 12:54 PM, Niclas Hedhman <ni...@hedhman.org> wrote:

> I think this is a neat thing that Commons might pick up on, as I see a
> problem of it to be large enough for its own community.
>
> Cheers
> Niclas
>
> On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> > Hi, all.
> >
> > I am developing a framework called as Robust-Task.
> > Robust-Task is a framework which helps you write READABLE code when you
> need
> > to express complex or long business flow.
> > (Recently, 0.1 concept version was released.)
> > I would like to see that the idea of Robust-Task is valuable through the
> > opinions of Apache incubator members and Apache commons member.
> > Following is a document to introduce Robust-Task.
> >
> > http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
> >
> > If you have a opinion, please reply to this mail.
> > Thanks for your reading.
> >
> > --
> > Min Cha, Dreaming Developer
> > English : http://minslovey.blogspot.com
> > Korean : http://minslovey.tistory.com
> >
>
>
>
> --
> http://www.qi4j.org - New Energy for Java
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> For additional commands, e-mail: general-help@incubator.apache.org
>
>


-- 
Min Cha, Dreaming Developer
English : http://minslovey.blogspot.com
Korean : http://minslovey.tistory.com

Re: Robust-Task introduction

Posted by Min Cha <mi...@gmail.com>.
Hi, Niclas.
Thanks for your opinion.

I wonder whether I am understanding a message from you.
Do you think this project should or can be a component in Commons?

If so,  I would like to know how to be a component in Commons.
IMHO, Robust-Task has a possibility to be a good contributor to Java and
Apache community.

Cheers.

On Fri, Mar 20, 2009 at 12:54 PM, Niclas Hedhman <ni...@hedhman.org> wrote:

> I think this is a neat thing that Commons might pick up on, as I see a
> problem of it to be large enough for its own community.
>
> Cheers
> Niclas
>
> On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> > Hi, all.
> >
> > I am developing a framework called as Robust-Task.
> > Robust-Task is a framework which helps you write READABLE code when you
> need
> > to express complex or long business flow.
> > (Recently, 0.1 concept version was released.)
> > I would like to see that the idea of Robust-Task is valuable through the
> > opinions of Apache incubator members and Apache commons member.
> > Following is a document to introduce Robust-Task.
> >
> > http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
> >
> > If you have a opinion, please reply to this mail.
> > Thanks for your reading.
> >
> > --
> > Min Cha, Dreaming Developer
> > English : http://minslovey.blogspot.com
> > Korean : http://minslovey.tistory.com
> >
>
>
>
> --
> http://www.qi4j.org - New Energy for Java
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> For additional commands, e-mail: general-help@incubator.apache.org
>
>


-- 
Min Cha, Dreaming Developer
English : http://minslovey.blogspot.com
Korean : http://minslovey.tistory.com

Re: Robust-Task introduction

Posted by Niclas Hedhman <ni...@hedhman.org>.
I think this is a neat thing that Commons might pick up on, as I see a
problem of it to be large enough for its own community.

Cheers
Niclas

On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> Hi, all.
>
> I am developing a framework called as Robust-Task.
> Robust-Task is a framework which helps you write READABLE code when you need
> to express complex or long business flow.
> (Recently, 0.1 concept version was released.)
> I would like to see that the idea of Robust-Task is valuable through the
> opinions of Apache incubator members and Apache commons member.
> Following is a document to introduce Robust-Task.
>
> http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
>
> If you have a opinion, please reply to this mail.
> Thanks for your reading.
>
> --
> Min Cha, Dreaming Developer
> English : http://minslovey.blogspot.com
> Korean : http://minslovey.tistory.com
>



-- 
http://www.qi4j.org - New Energy for Java

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Re: Robust-Task introduction

Posted by Niclas Hedhman <ni...@hedhman.org>.
I think this is a neat thing that Commons might pick up on, as I see a
problem of it to be large enough for its own community.

Cheers
Niclas

On Wed, Mar 18, 2009 at 8:53 AM, Min Cha <mi...@gmail.com> wrote:
> Hi, all.
>
> I am developing a framework called as Robust-Task.
> Robust-Task is a framework which helps you write READABLE code when you need
> to express complex or long business flow.
> (Recently, 0.1 concept version was released.)
> I would like to see that the idea of Robust-Task is valuable through the
> opinions of Apache incubator members and Apache commons member.
> Following is a document to introduce Robust-Task.
>
> http://code.google.com/p/robust-coupe/wiki/RobustTaskIntroduction
>
> If you have a opinion, please reply to this mail.
> Thanks for your reading.
>
> --
> Min Cha, Dreaming Developer
> English : http://minslovey.blogspot.com
> Korean : http://minslovey.tistory.com
>



-- 
http://www.qi4j.org - New Energy for Java

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org