You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@polygene.apache.org by zhuangmz08 <zh...@qq.com> on 2016/04/15 07:01:29 UTC

回复: query value/transient composite? objects vs values?

Yeah, http://zest.apache.org/java/latest/core-api.html should contain more docs :)




------------------ 原始邮件 ------------------
发件人: "Niclas Hedhman";<ni...@hedhman.org>;
发送时间: 2016年4月15日(星期五) 中午12:54
收件人: "dev"<de...@zest.apache.org>; 

主题: Re: query value/transient composite? objects vs values?



Just added a short blurb on Objects to the docs, but more is needed.

Anecdote; A long time in the early days of Qi4j, I spent a lot of time
writing documentation. For many things, I wrote the documentation first and
Rickard would use it to implement the right behavior. We worked almost
side-by-side with docs and code, as features were investigated, developed
and added. Great days.


Anyway, I will try to get that online today.

Niclas

On Fri, Apr 15, 2016 at 12:21 PM, Niclas Hedhman <ni...@hedhman.org> wrote:

>
> 1. Values are not directly persistable. Entities is the only way. In 3.0,
> I am considering changing the definition of Entity to be "Entity =
> ValueComposite assigned to an Identity", The upside is that
> ConcurrentModification is easier to handle. The downside is that I also
> want to support EventSourcing, i.e. only write down the changes and not the
> current state. Those are somewhat contradictory ways of doing it, and may
> not be easy to reconcile.
>
> 2. No.
>
> 3. Objects is one way to allow ordinary Java classes to participate in the
> Zest Runtime.  So, I can do;
>
> public class Abc
> {
>     @Structure
>     private UnitOfWorkFactory uowf;
> :
> :
> }
>
> and declare that class as an Object.
> For it to work, the Object must be instantiated with the ObjectFactory
> (part of Module in 2.1). Objects also have @Uses annotations on fields and
> constructor arguments, and they are passed in the ObjectFactory.newObject()
> method call. Multiple object instances of the same type is not supported
> (yet?).
>
> ObjectFactory also has the injectInto() method, in the cases where some
> other system needs to do the instantiation of your class (say Spring), but
> you want to inject the Zest Runtime model into it after it has been created
> (of course, doesn't work with Constructor injection, only fields).
>
>
> Cheers
> Niclas
>
>
> On Fri, Apr 15, 2016 at 12:05 PM, zhuangmz08 <zh...@qq.com> wrote:
>
>> Hi, I'm confused with value/transient/entity composite, my question is,
>> I can get entities after I fire a query using query-API inside a
>> UnitOfWork.
>> 1. Can I get value composite by query API? If I cannot, value is
>> persistentable only in a Entity?
>> 2. Can I query transient? I guess not.
>> 3.
>> module.values()/.entities()/.transients()/.services()/.configurations() is
>> used to declare those 5 types of composite. Then, what does
>> module.objects() mean?
>> Thanks a lot.
>
>
>
>
> --
> Niclas Hedhman, Software Developer
> http://zest.apache.org - New Energy for Java
>



-- 
Niclas Hedhman, Software Developer
http://zest.apache.org - New Energy for Java

Re: 回复: query value/transient composite? objects vs values?

Posted by Niclas Hedhman <he...@gmail.com>.
For the record, I just tried to count how much documentation exist;

8598 non-empty, non-license, source markdown, constituting 56309 words and
442769 characters...

If then all the source code is added, it is close to a book already.

Niclas
On Apr 15, 2016 13:14, "Niclas Hedhman" <he...@gmail.com> wrote:

> Not only that....
>
> I want a new style and structure that is easier to navigate, and easier to
> maintain.
>
> Writing the content is relatively easy now, but not knowing what is there
> already, where it is, what needs to be filled in and so on makes writing
> harder.
>
> Cheers
> Niclas
> On Apr 15, 2016 13:02, "zhuangmz08" <zh...@qq.com> wrote:
>
>> Yeah, http://zest.apache.org/java/latest/core-api.html should contain
>> more docs :)
>>
>>
>>
>>
>> ------------------ 原始邮件 ------------------
>> 发件人: "Niclas Hedhman";<ni...@hedhman.org>;
>> 发送时间: 2016年4月15日(星期五) 中午12:54
>> 收件人: "dev"<de...@zest.apache.org>;
>>
>> 主题: Re: query value/transient composite? objects vs values?
>>
>>
>>
>> Just added a short blurb on Objects to the docs, but more is needed.
>>
>> Anecdote; A long time in the early days of Qi4j, I spent a lot of time
>> writing documentation. For many things, I wrote the documentation first
>> and
>> Rickard would use it to implement the right behavior. We worked almost
>> side-by-side with docs and code, as features were investigated, developed
>> and added. Great days.
>>
>>
>> Anyway, I will try to get that online today.
>>
>> Niclas
>>
>> On Fri, Apr 15, 2016 at 12:21 PM, Niclas Hedhman <ni...@hedhman.org>
>> wrote:
>>
>> >
>> > 1. Values are not directly persistable. Entities is the only way. In
>> 3.0,
>> > I am considering changing the definition of Entity to be "Entity =
>> > ValueComposite assigned to an Identity", The upside is that
>> > ConcurrentModification is easier to handle. The downside is that I also
>> > want to support EventSourcing, i.e. only write down the changes and not
>> the
>> > current state. Those are somewhat contradictory ways of doing it, and
>> may
>> > not be easy to reconcile.
>> >
>> > 2. No.
>> >
>> > 3. Objects is one way to allow ordinary Java classes to participate in
>> the
>> > Zest Runtime.  So, I can do;
>> >
>> > public class Abc
>> > {
>> >     @Structure
>> >     private UnitOfWorkFactory uowf;
>> > :
>> > :
>> > }
>> >
>> > and declare that class as an Object.
>> > For it to work, the Object must be instantiated with the ObjectFactory
>> > (part of Module in 2.1). Objects also have @Uses annotations on fields
>> and
>> > constructor arguments, and they are passed in the
>> ObjectFactory.newObject()
>> > method call. Multiple object instances of the same type is not supported
>> > (yet?).
>> >
>> > ObjectFactory also has the injectInto() method, in the cases where some
>> > other system needs to do the instantiation of your class (say Spring),
>> but
>> > you want to inject the Zest Runtime model into it after it has been
>> created
>> > (of course, doesn't work with Constructor injection, only fields).
>> >
>> >
>> > Cheers
>> > Niclas
>> >
>> >
>> > On Fri, Apr 15, 2016 at 12:05 PM, zhuangmz08 <zh...@qq.com> wrote:
>> >
>> >> Hi, I'm confused with value/transient/entity composite, my question is,
>> >> I can get entities after I fire a query using query-API inside a
>> >> UnitOfWork.
>> >> 1. Can I get value composite by query API? If I cannot, value is
>> >> persistentable only in a Entity?
>> >> 2. Can I query transient? I guess not.
>> >> 3.
>> >>
>> module.values()/.entities()/.transients()/.services()/.configurations() is
>> >> used to declare those 5 types of composite. Then, what does
>> >> module.objects() mean?
>> >> Thanks a lot.
>> >
>> >
>> >
>> >
>> > --
>> > Niclas Hedhman, Software Developer
>> > http://zest.apache.org - New Energy for Java
>> >
>>
>>
>>
>> --
>> Niclas Hedhman, Software Developer
>> http://zest.apache.org - New Energy for Java
>
>

Re: 回复: query value/transient composite? objects vs values?

Posted by Niclas Hedhman <he...@gmail.com>.
Not only that....

I want a new style and structure that is easier to navigate, and easier to
maintain.

Writing the content is relatively easy now, but not knowing what is there
already, where it is, what needs to be filled in and so on makes writing
harder.

Cheers
Niclas
On Apr 15, 2016 13:02, "zhuangmz08" <zh...@qq.com> wrote:

> Yeah, http://zest.apache.org/java/latest/core-api.html should contain
> more docs :)
>
>
>
>
> ------------------ 原始邮件 ------------------
> 发件人: "Niclas Hedhman";<ni...@hedhman.org>;
> 发送时间: 2016年4月15日(星期五) 中午12:54
> 收件人: "dev"<de...@zest.apache.org>;
>
> 主题: Re: query value/transient composite? objects vs values?
>
>
>
> Just added a short blurb on Objects to the docs, but more is needed.
>
> Anecdote; A long time in the early days of Qi4j, I spent a lot of time
> writing documentation. For many things, I wrote the documentation first and
> Rickard would use it to implement the right behavior. We worked almost
> side-by-side with docs and code, as features were investigated, developed
> and added. Great days.
>
>
> Anyway, I will try to get that online today.
>
> Niclas
>
> On Fri, Apr 15, 2016 at 12:21 PM, Niclas Hedhman <ni...@hedhman.org>
> wrote:
>
> >
> > 1. Values are not directly persistable. Entities is the only way. In 3.0,
> > I am considering changing the definition of Entity to be "Entity =
> > ValueComposite assigned to an Identity", The upside is that
> > ConcurrentModification is easier to handle. The downside is that I also
> > want to support EventSourcing, i.e. only write down the changes and not
> the
> > current state. Those are somewhat contradictory ways of doing it, and may
> > not be easy to reconcile.
> >
> > 2. No.
> >
> > 3. Objects is one way to allow ordinary Java classes to participate in
> the
> > Zest Runtime.  So, I can do;
> >
> > public class Abc
> > {
> >     @Structure
> >     private UnitOfWorkFactory uowf;
> > :
> > :
> > }
> >
> > and declare that class as an Object.
> > For it to work, the Object must be instantiated with the ObjectFactory
> > (part of Module in 2.1). Objects also have @Uses annotations on fields
> and
> > constructor arguments, and they are passed in the
> ObjectFactory.newObject()
> > method call. Multiple object instances of the same type is not supported
> > (yet?).
> >
> > ObjectFactory also has the injectInto() method, in the cases where some
> > other system needs to do the instantiation of your class (say Spring),
> but
> > you want to inject the Zest Runtime model into it after it has been
> created
> > (of course, doesn't work with Constructor injection, only fields).
> >
> >
> > Cheers
> > Niclas
> >
> >
> > On Fri, Apr 15, 2016 at 12:05 PM, zhuangmz08 <zh...@qq.com> wrote:
> >
> >> Hi, I'm confused with value/transient/entity composite, my question is,
> >> I can get entities after I fire a query using query-API inside a
> >> UnitOfWork.
> >> 1. Can I get value composite by query API? If I cannot, value is
> >> persistentable only in a Entity?
> >> 2. Can I query transient? I guess not.
> >> 3.
> >> module.values()/.entities()/.transients()/.services()/.configurations()
> is
> >> used to declare those 5 types of composite. Then, what does
> >> module.objects() mean?
> >> Thanks a lot.
> >
> >
> >
> >
> > --
> > Niclas Hedhman, Software Developer
> > http://zest.apache.org - New Energy for Java
> >
>
>
>
> --
> Niclas Hedhman, Software Developer
> http://zest.apache.org - New Energy for Java