Does this have any direct/indirect dependencies on JPA module? Should this maybe become a part of the JPA module?
On Wed, Mar 13, 2013 at 7:23 AM, Thomas Hug <[email protected]>wrote: > Ok, I guess it's going to be Repository :) Updated the proposal branch and > also moved things into a data package/module. > > Some remarks for the parts below: > > 1) EntityManagerRepository wasn't present in the Solder implementation - > there it was possible to simply implement/extend EntityManager. The problem > with the invocation handler is that it's not possible to restrict the bean > type and exclude EntityManager (or I missed it). Otherwise I'd rather get > rid of this interface. > > 2) WithEntityManager is definitely discussable. Not the full solution and > not consistent. Could be solved with e.g. putting qualifiers on a method > returning an EntityManager (less intuitive) or something like the > InvocationHandlerBinding. > > 3) AbstractEntityRepository is just a convenience class for providing > concrete query implementations. > > On Tue, Mar 12, 2013 at 9:40 PM, Gerhard Petracek < > [email protected]> wrote: > > > hi, > > > > currently we don't have one jira ticket per part/feature. > > that's what we used to have for everything we imported. > > > > the first parts to discuss are imo EntityManagerDao, WithEntityManager > and > > AbstractEntityDao. > > > > regards, > > gerhard > > > > > > > > 2013/3/12 Arne Limburg <[email protected]> > > > > > +1 for repository, from me too > > > > > > Gesendet mit meinem HTC > > > > > > > > > ----- Reply message ----- > > > Von: "Thomas Andraschko" <[email protected]> > > > An: "[email protected]" < > > > [email protected]> > > > Betreff: cdi-query, no news? > > > Datum: Di., Mär. 12, 2013 20:38 > > > > > > > > > > > > +1 repository! :) "Query" doesn't really match the functionaly. > > > > > > 2013/3/12 Romain Manni-Bucau <[email protected]> > > > > > > > +2 for repo > > > > > > > > btw did you fixed the scope issue? > > > > > > > > *Romain Manni-Bucau* > > > > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* > > > > *Blog: **http://rmannibucau.wordpress.com/*< > > > > http://rmannibucau.wordpress.com/> > > > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > > > > *Github: https://github.com/rmannibucau* > > > > > > > > > > > > > > > > 2013/3/12 Thomas Hug <[email protected]> > > > > > > > > > The name is still freely choosable - data sounds fine to me if > nobody > > > > minds > > > > > the obvious mirroring on Spring Data ;) dao/@Dao is discussable, > all > > > the > > > > > domain driven folks prefer probably something like "Repository". > > > > > > > > > > On Tue, Mar 12, 2013 at 7:29 PM, Romain Manni-Bucau > > > > > <[email protected]>wrote: > > > > > > > > > > > Great :) > > > > > > > > > > > > any issue changing "query" to something closer to what it really > > > does ; > > > > > > "dao" (because of @Dao) or "data"? > > > > > > > > > > > > *Romain Manni-Bucau* > > > > > > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* > > > > > > *Blog: **http://rmannibucau.wordpress.com/*< > > > > > > http://rmannibucau.wordpress.com/> > > > > > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > > > > > > *Github: https://gihub.com/rmannibucau* < > > > > https://github.com/rmannibucau* > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 2013/3/12 Thomas Hug <[email protected]> > > > > > > > > > > > > > FYI, I've started something like an import proposal in a > > dedicated > > > > > branch > > > > > > > [1]. There's currently only the JBoss Arquillian profile > running, > > > > > haven't > > > > > > > looked at the others. Any support there and of course other > > input's > > > > > very > > > > > > > welcome :) > > > > > > > > > > > > > > [1] https://github.com/ctpconsulting/query/tree/dsimport > > > > > > > > > > > > > > On Tue, Mar 5, 2013 at 7:45 AM, Romain Manni-Bucau < > > > > > > [email protected] > > > > > > > >wrote: > > > > > > > > > > > > > > > Yes > > > > > > > > > > > > > > > > It works fine but you bring too much spring dependencies > > (totally > > > > > > useless > > > > > > > > when used this way) which clearly show it is rather a bridge > > > than a > > > > > > > > solution + there were some leaks in previous version (didnt > > check > > > > fix > > > > > > was > > > > > > > > released to be honest) because if this usage which was not > the > > > > > default > > > > > > > one. > > > > > > > > > > > > > > > > Since cdi query is here it worths importing it IMO > > > > > > > > Le 5 mars 2013 02:21, "hantsy" <[email protected]> a > écrit : > > > > > > > > > > > > > > > > > I remember the Spring Data has a CDI extension, but I have > > not > > > > used > > > > > > it > > > > > > > > > in projects. Is there anyone used it in Java EE 6 projects? > > > > > > > > > > > > > > > > > > Hantsy > > > > > > > > > > > > > > > > > > On 3/3/2013 20:40, Romain Manni-Bucau wrote: > > > > > > > > > > Basically if the query logic could be scope agnostic it > > would > > > > be > > > > > > > > perfect > > > > > > > > > > for me. Parameters were fine and matched the coomon need. > > I m > > > > not > > > > > > > sure > > > > > > > > i > > > > > > > > > > get what is blocking. Can you detail it a bit please? > > > > > > > > > > Le 3 mars 2013 13:09, "Thomas Hug" < > > > > > [email protected]> > > > > > > a > > > > > > > > > écrit : > > > > > > > > > > > > > > > > > > > >> Aha got you. Yes QueryHandler can be moved to > application > > > > scope. > > > > > > > > > >> > > > > > > > > > >> The other request scoped component ist the > > > > > > > CdiQueryInvocationContext. > > > > > > > > > Here > > > > > > > > > >> we store a bunch of data which is related to the current > > > query > > > > > > > > > (parameters, > > > > > > > > > >> query string etc). Originally this was passed as > > parameter, > > > > but > > > > > > got > > > > > > > > > >> injectable for the extension mechanism [1]. Currently on > > > > > holidays > > > > > > > > (sorry > > > > > > > > > >> the response delays) so not much time to look into it > but > > > > happy > > > > > to > > > > > > > > take > > > > > > > > > >> suggestions :) > > > > > > > > > >> > > > > > > > > > >> [1] > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://ctpconsulting.github.com/query/1.0.0.Alpha5/extensions.html#extension-delegates > > > > > > > > > >> > > > > > > > > > >> On Fri, Mar 1, 2013 at 8:18 PM, Romain Manni-Bucau < > > > > > > > > > [email protected] > > > > > > > > > >>> wrote: > > > > > > > > > >>> Hmm, > > > > > > > > > >>> > > > > > > > > > >>> Wonder if the scope couldnt be application one. Request > > > > sounds > > > > > > too > > > > > > > > much > > > > > > > > > >> web > > > > > > > > > >>> to be usable/generic > > > > > > > > > >>> Le 1 mars 2013 19:02, "Thomas Hug" < > > > > > > [email protected]> > > > > > > > a > > > > > > > > > >>> écrit : > > > > > > > > > >>> > > > > > > > > > >>>> Fine for me - planned to create a branch with all the > > > > > > experimental > > > > > > > > > APIs > > > > > > > > > >>>> cleared out as an import proposal. > > > > > > > > > >>>> > > > > > > > > > >>>> RE scope, the InvocationHandlers are validated to be > > > normal > > > > > > scoped > > > > > > > > > [1], > > > > > > > > > >>> so > > > > > > > > > >>>> that seemed to me the most appropriate choice - any > > other > > > > > > > > suggestions? > > > > > > > > > >>>> > > > > > > > > > >>>> [1] > > > > > > > > > >>>> > > > > > > > > > >>>> > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/DeltaSpike/Mirror/blob/master/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/invocationhandler/InvocationHandlerBindingExtension.java#L198 > > > > > > > > > >>>> > > > > > > > > > >>>> On Wed, Feb 27, 2013 at 1:15 PM, Romain Manni-Bucau > > > > > > > > > >>>> <[email protected]>wrote: > > > > > > > > > >>>> > > > > > > > > > >>>>> Hi, > > > > > > > > > >>>>> > > > > > > > > > >>>>> some news of it? > > > > > > > > > >>>>> > > > > > > > > > >>>>> i think it is time to import at least a first > version, > > > > isn't > > > > > > it? > > > > > > > > > >>>>> > > > > > > > > > >>>>> Just a note on current code, i saw QueryHandler (and > > some > > > > > other > > > > > > > > > >> beans) > > > > > > > > > >>>> has > > > > > > > > > >>>>> a request scope. Wonder if such a scope means > something > > > > for a > > > > > > > > generic > > > > > > > > > >>>> (not > > > > > > > > > >>>>> web) lib. > > > > > > > > > >>>>> > > > > > > > > > >>>>> wdyt? > > > > > > > > > >>>>> > > > > > > > > > >>>>> *Romain Manni-Bucau* > > > > > > > > > >>>>> *Twitter: @rmannibucau < > > https://twitter.com/rmannibucau > > > >* > > > > > > > > > >>>>> *Blog: **http://rmannibucau.wordpress.com/*< > > > > > > > > > >>>>> http://rmannibucau.wordpress.com/> > > > > > > > > > >>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > > > > > > > > > >>>>> *Github: https://github.com/rmannibucau* > > > > > > > > > >>>>> > > > > > > > > > >>>>> > > > > > > > > > >>>>> > > > > > > > > > >>>>> 2013/2/20 Romain Manni-Bucau <[email protected]> > > > > > > > > > >>>>> > > > > > > > > > >>>>>> guy you rocks! > > > > > > > > > >>>>>> > > > > > > > > > >>>>>> effectively i missed it when i looked. > > > > > > > > > >>>>>> > > > > > > > > > >>>>>> *Romain Manni-Bucau* > > > > > > > > > >>>>>> *Twitter: @rmannibucau < > > https://twitter.com/rmannibucau > > > >* > > > > > > > > > >>>>>> *Blog: **http://rmannibucau.wordpress.com/*< > > > > > > > > > >>>>> http://rmannibucau.wordpress.com/> > > > > > > > > > >>>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > > > > > > > > > >>>>>> *Github: https://github.com/rmannibucau* > > > > > > > > > >>>>>> > > > > > > > > > >>>>>> > > > > > > > > > >>>>>> > > > > > > > > > >>>>>> 2013/2/20 Thomas Hug <[email protected] > > > > > > > > > > > >>>>>> > > > > > > > > > >>>>>>> Thnx Romain. If with proxy stuff you refer to the > DS > > > > > > > > > >>>>>>> InvocationHandlerBinding, that's already integrated > > :) > > > > > > > > > >>>>>>> > > > > > > > > > >>>>>>> RE pagination, it's maybe not that obvious, but > > there's > > > > > more > > > > > > > > > >>> advanced > > > > > > > > > >>>>>>> support in QueryResult [1][2], which is more of a > > > fluent > > > > > API > > > > > > > > > >>> approach, > > > > > > > > > >>>>> but > > > > > > > > > >>>>>>> should behave similar to a PageRequest (the query > > > > execution > > > > > > is > > > > > > > > > >>> delayed > > > > > > > > > >>>>>>> until the getResult() methods on QueryResult is > > > called). > > > > > Hope > > > > > > > > that > > > > > > > > > >>>> fits > > > > > > > > > >>>>> to > > > > > > > > > >>>>>>> what you had in mind. > > > > > > > > > >>>>>>> > > > > > > > > > >>>>>>> [1] > > > > > > > > > >>>>>>> > > > > > > > > > >>>>>>> > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/ctpconsulting/query/blob/deltaspike/api/src/main/java/com/ctp/cdi/query/QueryResult.java > > > > > > > > > >>>>>>> [2] > > > > > > > > > >>>>>>> > > > > > > > > > >>>>>>> > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/ctpconsulting/query/blob/deltaspike/impl/src/test/java/com/ctp/cdi/query/QueryResultTest.java > > > > > > > > > >>>>>>> On Wed, Feb 20, 2013 at 10:04 PM, Romain > Manni-Bucau > > > > > > > > > >>>>>>> <[email protected]>wrote: > > > > > > > > > >>>>>>> > > > > > > > > > >>>>>>>> Hi Thomas, > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>> importing proxy stuff would be the first great > > stuff. > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>> i'd like to see some pagination API (like > > PageRequest > > > > etc > > > > > in > > > > > > > > > >>> spring > > > > > > > > > >>>>>>> world) > > > > > > > > > >>>>>>>> which are more user friendly that @FirstResult and > > > > > > > @MaxResult). > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>> wdyt? > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>> *Romain Manni-Bucau* > > > > > > > > > >>>>>>>> *Twitter: @rmannibucau < > > > https://twitter.com/rmannibucau > > > > >* > > > > > > > > > >>>>>>>> *Blog: **http://rmannibucau.wordpress.com/*< > > > > > > > > > >>>>>>>> http://rmannibucau.wordpress.com/> > > > > > > > > > >>>>>>>> *LinkedIn: ** > http://fr.linkedin.com/in/rmannibucau* > > > > > > > > > >>>>>>>> *Github: https://github.com/rmannibucau* > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>> 2013/2/20 Thomas Hug < > [email protected] > > > > > > > > > > > > >>>>>>>> > > > > > > > > > >>>>>>>>> CDI Query has now a completely Solder-free POM. > > Feel > > > > free > > > > > > to > > > > > > > > > >>> drop > > > > > > > > > >>>>>>>> comments > > > > > > > > > >>>>>>>>> on the API - some parts might actually be fully > > > > excluded > > > > > > > (e.g. > > > > > > > > > >>>> home > > > > > > > > > >>>>>>> and > > > > > > > > > >>>>>>>>> critera APIs). > > > > > > > > > >>>>>>>>> > > > > > > > > > >>>>>>>>> On Tue, Feb 12, 2013 at 10:00 PM, Mark Struberg < > > > > > > > > > >>>> [email protected]> > > > > > > > > > >>>>>>>> wrote: > > > > > > > > > >>>>>>>>>> > > > > > > > > > >>>>>>>>>> Thanks Thomas, great news! > > > > > > > > > >>>>>>>>>> > > > > > > > > > >>>>>>>>>> LieGrue, > > > > > > > > > >>>>>>>>>> strub > > > > > > > > > >>>>>>>>>> > > > > > > > > > >>>>>>>>>> > > > > > > > > > >>>>>>>>>> > > > > > > > > > >>>>>>>>>> > > > > > > > > > >>>>>>>>>> > > > > > > > > > >>>>>>>>>>> ________________________________ > > > > > > > > > >>>>>>>>>>> From: Thomas Hug < > [email protected]> > > > > > > > > > >>>>>>>>>>> To: "[email protected]" < > > > > > > > > > >>>>>>>>>> [email protected]> > > > > > > > > > >>>>>>>>>>> Sent: Tuesday, February 12, 2013 4:10 PM > > > > > > > > > >>>>>>>>>>> Subject: Re: cdi-query, no news? > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >>>>>>>>>>> FYI, I've started to "de-solderize" CDI Query > and > > > > move > > > > > > > > > >> things > > > > > > > > > >>>> to > > > > > > > > > >>>>>>>> depend > > > > > > > > > >>>>>>>>> on > > > > > > > > > >>>>>>>>>>> DS Core [1]: > > > > > > > > > >>>>>>>>>>> > > > > https://github.com/ctpconsulting/query/tree/deltaspike > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >>>>>>>>>>> Todos: > > > > > > > > > >>>>>>>>>>> [x] Replace ServiceHandler > > > > > > > > > >>>>>>>>>>> [_] Include Property utils > > > > > > > > > >>>>>>>>>>> [_] Replace JBoss Logging > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >>>>>>>>>>> Any feedback welcome. > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >>>>>>>>>>> [1] including this modification > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://issues.apache.org/jira/browse/DELTASPIKE-113?focusedCommentId=13576531&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13576531 > > > > > > > > > >>>>>>>>>>> On Mon, Feb 11, 2013 at 6:01 PM, Romain > > Manni-Bucau > > > > > > > > > >>>>>>>>>>> <[email protected]>wrote: > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>> a review of the API i guess > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>> what is missing today is probably the > pagination > > > > > helpers > > > > > > > > > >>>>>>>> (PageRequest > > > > > > > > > >>>>>>>>>> for > > > > > > > > > >>>>>>>>>>>> instance) > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>> but technically all is fine IMO > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>> *Romain Manni-Bucau* > > > > > > > > > >>>>>>>>>>>> *Twitter: @rmannibucau < > > > > > https://twitter.com/rmannibucau > > > > > > > > > >>> * > > > > > > > > > >>>>>>>>>>>> *Blog: **http://rmannibucau.wordpress.com/*< > > > > > > > > > >>>>>>>>>>>> http://rmannibucau.wordpress.com/> > > > > > > > > > >>>>>>>>>>>> *LinkedIn: ** > > > http://fr.linkedin.com/in/rmannibucau* > > > > > > > > > >>>>>>>>>>>> *Github: https://github.com/rmannibucau* > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>> 2013/2/11 Jason Porter < > [email protected] > > > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>> I know I'm playing the necromancer, but > please > > > > > forgive > > > > > > > > > >>> me. > > > > > > > > > >>>> We > > > > > > > > > >>>>>>> have > > > > > > > > > >>>>>>>>>>>>> InvocationHandler, which looks like it would > > work > > > > as > > > > > a > > > > > > > > > >>>>>>>>> ServiceHandler > > > > > > > > > >>>>>>>>>>>>> substitute. What else is needed to get CDI > > Query > > > > into > > > > > > > > > >>>>>>> DeltaSpike? > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>> On Sun, Nov 18, 2012 at 12:35 PM, Romain > > > > Manni-Bucau > > > > > > > > > >>>>>>>>>>>>> <[email protected]>wrote: > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>>> +1, it is a must have for cdi world > > > > > > > > > >>>>>>>>>>>>>> Le 18 nov. 2012 20:04, "john.d.ament" < > > > > > > > > > >>>>>>> [email protected]> > > > > > > > > > >>>>>>>> a > > > > > > > > > >>>>>>>>>>>> écrit : > > > > > > > > > >>>>>>>>>>>>>>> RE ServiceHandler - I was one of those who > > > > > > > > > >> previously > > > > > > > > > >>>>>>>> suggested > > > > > > > > > >>>>>>>>>>>>> bringing > > > > > > > > > >>>>>>>>>>>>>> it > > > > > > > > > >>>>>>>>>>>>>>> over to DeltaSpike, you can see > > DELTASPIKE-113 > > > > and > > > > > > > > > >>> find > > > > > > > > > >>>>> the > > > > > > > > > >>>>>>>>> thread > > > > > > > > > >>>>>>>>>>>>> about > > > > > > > > > >>>>>>>>>>>>>> it > > > > > > > > > >>>>>>>>>>>>>>> from April of this year. At the time, I > was > > > in a > > > > > > > > > >>>>> position > > > > > > > > > >>>>>>>>> where I > > > > > > > > > >>>>>>>>>>>>>> couldn't > > > > > > > > > >>>>>>>>>>>>>>> spend much time on open source > contribution. > > > > I've > > > > > > > > > >>>>> recently > > > > > > > > > >>>>>>>>>> changed > > > > > > > > > >>>>>>>>>>>>> jobs, > > > > > > > > > >>>>>>>>>>>>>>> to > > > > > > > > > >>>>>>>>>>>>>>> something that's going to help me spend > some > > > more > > > > > > > > > >>> time > > > > > > > > > >>>>> with > > > > > > > > > >>>>>>>> the > > > > > > > > > >>>>>>>>>> open > > > > > > > > > >>>>>>>>>>>>>> source > > > > > > > > > >>>>>>>>>>>>>>> community, and believe I can pick it back > up > > if > > > > > > > > > >> we're > > > > > > > > > >>>>>>> ready. > > > > > > > > > >>>>>>>>>>>>>>> If everyone's ok with it I can start a new > > > thread > > > > > > > > > >> for > > > > > > > > > >>>> 113 > > > > > > > > > >>>>>>> or > > > > > > > > > >>>>>>>>>> revive > > > > > > > > > >>>>>>>>>>>> the > > > > > > > > > >>>>>>>>>>>>>> old > > > > > > > > > >>>>>>>>>>>>>>> thread (though it may come through with a > > large > > > > > > > > > >> pile > > > > > > > > > >>> of > > > > > > > > > >>>>>>> dust). > > > > > > > > > >>>>>>>>>>>>>>> Regards, > > > > > > > > > >>>>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>>>> John > > > > > > > > > >>>>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>>>> -- > > > > > > > > > >>>>>>>>>>>>>>> View this message in context: > > > > > > > > > >>>>>>>>>>>>>>> > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://apache-deltaspike-incubator-discussions.2316169.n4.nabble.com/cdi-query-no-news-tp4654029p4654036.html > > > > > > > > > >>>>>>>>>>>>>>> Sent from the Apache DeltaSpike Incubator > > > > > > > > > >> Discussions > > > > > > > > > >>>>>>> mailing > > > > > > > > > >>>>>>>>> list > > > > > > > > > >>>>>>>>>>>>>> archive > > > > > > > > > >>>>>>>>>>>>>>> at Nabble.com. > > > > > > > > > >>>>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>>>> -- > > > > > > > > > >>>>>>>>>>>>> Jason Porter > > > > > > > > > >>>>>>>>>>>>> http://en.gravatar.com/lightguardjp > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >>>>>>>>>>> > > > > > > > > > >>>>>> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
