All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.vitaliy.easyremote.EasyRemoteBeanDefinition Maven / Gradle / Ivy

package eu.vitaliy.easyremote;


import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.remoting.rmi.RmiServiceExporter;

public class EasyRemoteBeanDefinition {

    public static final String EASY_REMOTE_SERVER_BEAN_NAME = "easyRemoteServer";


    public void registerEasyRemoteBeanDefinition(ParserContext parserContext) {
        registerEasyRemoteBeanDefinition(parserContext.getRegistry());
    }

    public void registerEasyRemoteBeanDefinition(BeanDefinitionRegistry beanDefinitionRegistry) {
        if (beanDefinitionRegistry.containsBeanDefinition(EASY_REMOTE_SERVER_BEAN_NAME)) {
            return;
        }

        RootBeanDefinition beanDef = new RootBeanDefinition(EasyRemoteServerImpl.class);
        beanDefinitionRegistry.registerBeanDefinition(EASY_REMOTE_SERVER_BEAN_NAME, beanDef);

        beanDef = new RootBeanDefinition(RmiServiceExporter.class);
        beanDef.setScope(BeanDefinition.SCOPE_SINGLETON);

        MutablePropertyValues mpv = new MutablePropertyValues();

        mpv.addPropertyValue("serviceName", "EasyRemoteServer");
        mpv.addPropertyValue("service", new RuntimeBeanReference(EASY_REMOTE_SERVER_BEAN_NAME));
        mpv.addPropertyValue("serviceInterface", EasyRemoteServer.class.getName());
        mpv.addPropertyValue("registryPort", "11199");
        beanDef.setPropertyValues(mpv);
        beanDefinitionRegistry.registerBeanDefinition("easyRemoteServerRmiServiceExporter", beanDef);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy