You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Koblov (JIRA)" <ji...@apache.org> on 2017/10/10 09:21:00 UTC
[jira] [Updated] (IGNITE-6586) Spring bean as ignite service
[ https://issues.apache.org/jira/browse/IGNITE-6586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Denis Koblov updated IGNITE-6586:
---------------------------------
Description:
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:
was:
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:
> Spring bean as ignite service
> -----------------------------
>
> Key: IGNITE-6586
> URL: https://issues.apache.org/jira/browse/IGNITE-6586
> Project: Ignite
> Issue Type: Wish
> 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:
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)