Skip to content

Add ServiceSupport annotation #252

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions