Hi igniters!
Presently, Spring Data for Ignite can't be configured dynamically. I mean , than I defines repository by the code: @Repository @RepositoryConfig(cacheName = "Calendar") public interface CalendarRepository extends IgniteRepository<Calendar, String> { List<Calendar> findByName(String name); } But I need to configure used cache dynamically ( at runtime). To solve this problem is proposed to use Spring Expression Language. By the way, I will have possibility to use the code: @Repository @RepositoryConfig(cacheName = "${cache.calendar.name}") public interface CalendarRepository extends IgniteRepository<Calendar, String> { List<Calendar> findByName(String name); } And property "cache.calendar.name" can be configured as usual property at Spring Framework. But way brakes current configuration way and I would ask about how we can set cache name by expression or constant string. I see options: 1) field "cacheName" will be able to process expression and constant string. The code of repository factory will analyse the field. 2) create new field for expressions What is best way? -- --------------------- With best regards, Sergey Chernolyas |
Isn't a better way just to add a new annotation?
Like RepositoryConfig but from v2 package for example. This case whose who already use it won't suffer. Also it's would be great to provide a way to escape constants which are similar to spel expressions. Regards, Igor чт, 30 янв. 2020 г., 13:18 Sergey Chernolyas <[hidden email]>: > Hi igniters! > > Presently, Spring Data for Ignite can't be configured dynamically. I mean , > than I defines repository by the code: > > @Repository > @RepositoryConfig(cacheName = "Calendar") > public interface CalendarRepository extends IgniteRepository<Calendar, > String> { > List<Calendar> findByName(String name); > } > > But I need to configure used cache dynamically ( at runtime). To solve > this problem is proposed to use Spring Expression Language. By the > way, I will have possibility to use the code: > > @Repository > @RepositoryConfig(cacheName = "${cache.calendar.name}") > public interface CalendarRepository extends IgniteRepository<Calendar, > String> { > List<Calendar> findByName(String name); > } > > And property "cache.calendar.name" can be configured as usual property > at Spring Framework. > > But way brakes current configuration way and I would ask about how we > can set cache name by expression or constant string. > > I see options: > > 1) field "cacheName" will be able to process expression and constant > string. The code of repository factory will analyse the field. > > 2) create new field for expressions > > > What is best way? > > > -- > --------------------- > > With best regards, Sergey Chernolyas > |
Sergey,
Supporting SpEL sounds quite good. Just out of curiosity, how are you going to evaluate SpEL from a custom annotation? P.S. I noticed al least 3 mail threads with a name "[IGNITE-12582] Configuration by property". Please keep the discussion in the same mail thread. чт, 30 янв. 2020 г. в 18:23, Seliverstov Igor <[hidden email]>: > > Isn't a better way just to add a new annotation? > > Like RepositoryConfig but from v2 package for example. > > This case whose who already use it won't suffer. > > Also it's would be great to provide a way to escape constants which are > similar to spel expressions. > > Regards, > Igor > > чт, 30 янв. 2020 г., 13:18 Sergey Chernolyas <[hidden email]>: > > > Hi igniters! > > > > Presently, Spring Data for Ignite can't be configured dynamically. I mean , > > than I defines repository by the code: > > > > @Repository > > @RepositoryConfig(cacheName = "Calendar") > > public interface CalendarRepository extends IgniteRepository<Calendar, > > String> { > > List<Calendar> findByName(String name); > > } > > > > But I need to configure used cache dynamically ( at runtime). To solve > > this problem is proposed to use Spring Expression Language. By the > > way, I will have possibility to use the code: > > > > @Repository > > @RepositoryConfig(cacheName = "${cache.calendar.name}") > > public interface CalendarRepository extends IgniteRepository<Calendar, > > String> { > > List<Calendar> findByName(String name); > > } > > > > And property "cache.calendar.name" can be configured as usual property > > at Spring Framework. > > > > But way brakes current configuration way and I would ask about how we > > can set cache name by expression or constant string. > > > > I see options: > > > > 1) field "cacheName" will be able to process expression and constant > > string. The code of repository factory will analyse the field. > > > > 2) create new field for expressions > > > > > > What is best way? > > > > > > -- > > --------------------- > > > > With best regards, Sergey Chernolyas > > -- Best regards, Ivan Pavlukhin |
In reply to this post by gvvinblade
Hi!
It is proposed to use the same annotation(RepositoryConfig). But value of field "cacheName" can be constant or Spring EL expression. Correct cases are: 1) By Spring EL expression @Repository @RepositoryConfig(cacheName = "@cacheNames.calendarCacheName") public interface CalendarRepository extends IgniteRepository<Calendar, String> { List<Calendar> findByName(String name); } 2) By constant @Repository @RepositoryConfig(cacheName = "Calendar") public interface CalendarRepository extends IgniteRepository<Calendar, String> { List<Calendar> findByName(String name); } Any other ideas? -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ |
Sergey,
I understand and support the proposed idea. Just curious how to implement it. Do you already have some prototype? пт, 31 янв. 2020 г. в 11:48, schernolyas <[hidden email]>: > > Hi! > > It is proposed to use the same annotation(RepositoryConfig). But value of > field "cacheName" can be constant or Spring EL expression. > Correct cases are: > 1) By Spring EL expression > @Repository > @RepositoryConfig(cacheName = "@cacheNames.calendarCacheName") > public interface CalendarRepository extends IgniteRepository<Calendar, > String> { > List<Calendar> findByName(String name); > } > 2) By constant > @Repository > @RepositoryConfig(cacheName = "Calendar") > public interface CalendarRepository extends IgniteRepository<Calendar, > String> { > List<Calendar> findByName(String name); > } > > Any other ideas? > > > > -- > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ -- Best regards, Ivan Pavlukhin |
Hi Ivan !
Yes, I have the prototype. Right now, main question is can we remove spring data modules into project with extensions for Ignite. -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ |
Sergey,
Could you please share your prototype, I would like to have a look. сб, 1 февр. 2020 г. в 16:59, schernolyas <[hidden email]>: > > Hi Ivan ! > > Yes, I have the prototype. Right now, main question is can we remove spring > data modules into project with extensions for Ignite. > > > > -- > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ -- Best regards, Ivan Pavlukhin |
Hi Ivan!
https://github.com/apache/ignite/pull/7347 . It is link to PR. Criticism is welcome :-) On Sat, 1 Feb 2020 at 18:15, Ivan Pavlukhin <[hidden email]> wrote: > Sergey, > > Could you please share your prototype, I would like to have a look. > > сб, 1 февр. 2020 г. в 16:59, schernolyas <[hidden email]>: > > > > Hi Ivan ! > > > > Yes, I have the prototype. Right now, main question is can we remove > spring > > data modules into project with extensions for Ignite. > > > > > > > > -- > > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ > > > > -- > Best regards, > Ivan Pavlukhin > -- --------------------- With best regards, Sergey Chernolyas |
Sergey,
Thank you for your efforts! I left some comments in the ticket [1]. [1] https://issues.apache.org/jira/browse/IGNITE-12582 сб, 1 февр. 2020 г. в 18:35, Sergey Chernolyas <[hidden email]>: > > Hi Ivan! > > https://github.com/apache/ignite/pull/7347 . It is link to PR. Criticism > is welcome :-) > > On Sat, 1 Feb 2020 at 18:15, Ivan Pavlukhin <[hidden email]> wrote: > > > Sergey, > > > > Could you please share your prototype, I would like to have a look. > > > > сб, 1 февр. 2020 г. в 16:59, schernolyas <[hidden email]>: > > > > > > Hi Ivan ! > > > > > > Yes, I have the prototype. Right now, main question is can we remove > > spring > > > data modules into project with extensions for Ignite. > > > > > > > > > > > > -- > > > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ > > > > > > > > -- > > Best regards, > > Ivan Pavlukhin > > > > > -- > --------------------- > > With best regards, Sergey Chernolyas -- Best regards, Ivan Pavlukhin |
Ivan,
Thanks. I have answered. On Tue, 4 Feb 2020 at 15:03, Ivan Pavlukhin <[hidden email]> wrote: > Sergey, > > Thank you for your efforts! I left some comments in the ticket [1]. > > [1] https://issues.apache.org/jira/browse/IGNITE-12582 > > сб, 1 февр. 2020 г. в 18:35, Sergey Chernolyas < > [hidden email]>: > > > > Hi Ivan! > > > > https://github.com/apache/ignite/pull/7347 . It is link to PR. > Criticism > > is welcome :-) > > > > On Sat, 1 Feb 2020 at 18:15, Ivan Pavlukhin <[hidden email]> wrote: > > > > > Sergey, > > > > > > Could you please share your prototype, I would like to have a look. > > > > > > сб, 1 февр. 2020 г. в 16:59, schernolyas <[hidden email] > >: > > > > > > > > Hi Ivan ! > > > > > > > > Yes, I have the prototype. Right now, main question is can we remove > > > spring > > > > data modules into project with extensions for Ignite. > > > > > > > > > > > > > > > > -- > > > > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ > > > > > > > > > > > > -- > > > Best regards, > > > Ivan Pavlukhin > > > > > > > > > -- > > --------------------- > > > > With best regards, Sergey Chernolyas > > > > -- > Best regards, > Ivan Pavlukhin > -- --------------------- With best regards, Sergey Chernolyas |
Free forum by Nabble | Edit this page |