code: static void validateInterface(Class<?> serviceInterface, int validationType) {
  		// Verify serviceInterface is an interface.
  		assertThat(serviceInterface.isInterface(), ErrorMsg.INTERFACE_REQUIRED);
  
  		// Verify serviceInterface has the right annotation.
  		ServiceInterface service = serviceInterface.getAnnotation(ServiceInterface.class);
  		assertThat(service != null, ErrorMsg.MISSING_ANNOTATION);
  
  		// Verify service name is not empty
  		assertThat(!isStringEmpty(service.name()), ErrorMsg.MISSING_SERVICE_NAME);
  
  		// Verify service app name is not empty for remote services
  		assertThat(!(validationType == TYPE_REMOTE && isStringEmpty(service.app())), ErrorMsg.MISSING_APP_NAME);
  
  		// Analyze methods
  		for (Method m : serviceInterface.getMethods()) {
  			if (m.isAnnotationPresent(ActivityConsumer.class)) {
  				validateActivityConsumer(service.name(), m);
  			} else {
  				validateStandardMethod(service.name(), m);
  			}
  		}
  	}
docs: Validates the interface of a service. In case of failed validation, an
  unchecked {@link IllegalServiceException} is thrown.
  
  To be valid, a service interface must comply with a series of
  constraints:
  <ul>
  <li>Being annotated with a complete {@link ServiceInterface} annotation;</li>
  <li>Having all methods with supported return type;</li>
  <li>Having all methods with parameters whose type is supported</li>
  <li>Having all methods throwing {@link ServiceInvocationException}</li>
  </ul>
  
  Supported types includes only native Java types.
  
  @param serviceInterface
  - the interface to be validated;
  @param validationType
  - the validation to be performed, either
  <code>TYPE_PUBLISHED</code> or <code>TYPE_REMOTE</code>