[ 
https://issues.apache.org/jira/browse/IGNITE-6586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denis Koblov updated IGNITE-6586:
---------------------------------
    Affects Version/s: 2.2
          Component/s: spring

> Spring bean as ignite service
> -----------------------------
>
>                 Key: IGNITE-6586
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6586
>             Project: Ignite
>          Issue Type: Wish
>          Components: spring
>    Affects Versions: 2.2
>            Reporter: Denis Koblov
>
> Hello.
> I use a spring-ignite in my application. When using ServiceGrid I noticed a 
> feature.
> I created the following class for the ServiceGrid:
> {code:java}
> public class SimpleService implements Service, ApplicationContextAware {
>     private ApplicationContext applicationContext;
>     @Override
>     public void setApplicationContext(ApplicationContext applicationContext) 
> throws BeansException {
>         this.applicationContext = applicationContext;
>     }
>     @Override
>     public void init(ServiceContext serviceContext) throws Exception {
>         if (applicationContext == null) {
>             System.out.println("ApplicationContext is null");
>         }
>     }
>     @Override
>     public void execute(ServiceContext serviceContext) throws Exception {
>     }
>     @Override
>     public void cancel(ServiceContext serviceContext) {
>     }
> }
> {code}
> {code:java}
> <bean id="igniteSpringBean" class="org.apache.ignite.IgniteSpringBean">
>         <property name="configuration">
>             <bean class="org.apache.ignite.configuration.IgniteConfiguration">
>                 <!-- Enabling the peer-class loading feature. -->
>                 <property name="peerClassLoadingEnabled" value="false"/>
>                 <property name="gridLogger">
>                     <bean class="org.apache.ignite.logger.slf4j.Slf4jLogger"/>
>                 </property>
>                 <property name="userAttributes">
>                     <map key-type="java.lang.String" 
> value-type="java.lang.Object">
>                         <entry key="simpleservice" value="true" 
> value-type="java.lang.Boolean"/>
>                     </map>
>                 </property>
>                 <property name="serviceConfiguration">
>                     <list>
>                             <bean 
> class="org.apache.ignite.services.ServiceConfiguration">
>                             <!-- Unique service name -->
>                             <property name="name" value="SimpleService"/>
>                             <!-- Service implementation's class -->
>                             <property name="service" >
>                                 <bean class="com.myapp.SimpleService"/>
>                             </property>
>                             <property name="nodeFilter">
>                                 <bean class="com.myapp.ServiceNodeFilter">
>                                     <constructor-arg name="serviceName" 
> value="simpleservice"/>
>                                 </bean>
>                             </property>
>                         </bean>
>                     </list>
>                 </property>
>                 <property name="discoverySpi">
>                     <bean 
> class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
>                         <property name="joinTimeout" value="60000"/>
>                         <property name="ipFinder">
>                             <bean 
> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
>                                 <property name="addresses" 
> value="#{'${ignite.addresses.discovery}'.split(',')}"/>
>                             </bean>
>                         </property>
>                     </bean>
>                 </property>
>                 <!-- see https://issues.apache.org/jira/browse/IGNITE-4377 -->
>                 <property name="binaryConfiguration">
>                     <bean 
> class="org.apache.ignite.configuration.BinaryConfiguration">
>                         <property name="compactFooter" value="false"/>
>                     </bean>
>                 </property>
>             </bean>
>         </property>
> {code}
> After start the application i see following text on the output  console:
> *ApplicationContext is null*
> I see 4 instances on the Memory viewer:
> !https://i.imgur.com/OU7CT8D.png!
> This is because the ignite serialize spring bean, than deserialize it and 
> used new instance as an instance of the service. Why? Why instance of the 
> service not equals instance in the spring application contex? And is it 
> possible to change this case?
> Thanks.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to