Native microservice - recommended structure

It is recommended to create two modules for native microservice. One with microservice implementation and second one with interfaces and pojo classes for remote services. Below is shown default microservice structure pattern with configured JLupinDelegator for binary communication and more complex structure prepared for development.

Implementation module structure:

+--+ com
   |
   +--+ example
      |
      +--+ bean
      |  |
      |  +--- interfaces
      |  |
      |  +--- impl
      |  |
      |  +---pojo
      |
      +--+ configuration
      |  |
      |  +--- ExampleNativeSpringConfiguration.java
      |  |
      |  +--- ExampleNativeJLupinConfiguration.java
      |
      +--+ dao
      |  |
      |  +--- interfaces
      |  |
      |  +--- impl
      |  |
      |  +---pojo
      |
      +--+ services
         |
         +--- interfaces
         |
         +--- impl
         |
         +---pojo

ExampleNativeSpringConfiguration.java:

package com.example.configuration;

import com.jlupin.impl.client.util.JLupinClientUtil;
import com.jlupin.interfaces.client.delegator.JLupinDelegator;
import com.jlupin.interfaces.common.enums.PortType;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import java.util.ArrayList;
import java.util.List;

@Configuration
@ComponentScan("com.example")
public class ExampleNativeSpringConfiguration {
    @Bean
    public JLupinDelegator getJLupinDelegator() {
        return JLupinClientUtil.generateInnerMicroserviceLoadBalancerDelegator(PortType.JLRMC);
    }

    // @Bean(name = "exampleService")
    // public ExampleService getExampleService() {
    //     return JLupinClientUtil.generateRemote(getJLupinDelegator(), "example-microservice", ExampleService.class);
    // }

    @Bean(name = "jLupinRegularExpressionToRemotelyEnabled")
    public List getRemotelyBeanList() {
        List<String> list = new ArrayList<>();
        // list.add("<REMOTE_SERVICE_NAME>");
        return list;
    }
}

ExampleNativeJLupinConfiguration.java:

package com.example.configuration;

import com.jlupin.impl.container.application.spring.JLupinAbstractSpringApplicationContainer;
import com.jlupin.interfaces.configuration.microservice.container.application.JLupinAbstractApplicationContainerProducer;
import com.jlupin.interfaces.container.application.JLupinApplicationContainer;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;

public class ExampleNativeJLupinConfiguration extends JLupinAbstractApplicationContainerProducer {
    @Override
    public JLupinApplicationContainer produceJLupinApplicationContainer() {
        return new JLupinAbstractSpringApplicationContainer() {
            @Override
            public AbstractApplicationContext getAbstractApplicationContext() {
                return new AnnotationConfigApplicationContext(ExampleNativeSpringConfiguration.class);
            }
        };
    }
}

Interfaces and pojo classes module structure:

+--+ com
   |
   +--+ example
      |
      +--+ services
         |
         +--- impl
         |
         +---pojo