Skip to content

Add ServiceSupport annotation #252

@charphi

Description

@charphi

A ServiceSupport annotation would enforce good pratices when creating service providers.

Example:

@ServiceDefinition
public interface Driver { 

  String getName(); 

  Closeable openConnection();
}

@ServiceSupport
@lombok.Builder ( toBuilder = true )
public final class QuickDriverSupport implements Driver {

  @lombok.Getter
  @lombok.Builder.Default
  private final String name;

  @Override
  public Closeable openConnection() { ... }
}

@ServiceProvider
public final class Driver1 implements Driver {
  @lombok.experimental.Delegate
  private final Driver delegate = QuickDriverSupport.builder().name("X1").build();
}

@ServiceProvider
public final class Driver2 implements Driver {
  @lombok.experimental.Delegate
  private final Driver delegate = QuickDriverSupport.builder().name("X2").build();
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions