Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Springboot NexusClient and NexusServiceClient<T> support for easier, correct SANO usage

Abierto
#3,122 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
java, spring-boot
Área
backend

Línea de trabajo

Start with the Spring Boot autoconfiguration and multiple-namespace support referenced in the issue, then trace how workflow clients are configured and exposed as beans. Determine how NexusClient and NexusServiceClient<T> should fit that configuration, including non-root namespaces; done means the requested client types can be injected with the described aliases and service configuration.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Is your feature request related to a problem? Please describe.
Guidance in javadoc for NexusClient is Client for managing standalone Nexus operation executions. Obtain an instance via newInstance(WorkflowServiceStubs) or newInstance(WorkflowServiceStubs, NexusClientOptions). Do not create this object per request; share it for the lifetime of the process.
[here])https://www.javadoc.io/doc/io.temporal/temporal-sdk/latest/io/temporal/client/NexusClient.html).

Describe the solution you'd like

First improvement

Lifestyle correctness guidance like that should be made simpler with Spring so I can nexusClient in my controller just like I can workflowClient.
We should support this across all namespaces though using the nice "non-root" namespace config support. It is Nexus, after all, so let me call across Namespaces :) .

spring.temporal:
  namespaces:
    # I have a couple services inside my `apps` Namespace I want to use
    - namespace: apps
      alias: apps
      nexus-service-clients:
        - alias: apps-v1 
          endpoint: oms-apps-v1
          service: com.acme.oms.services.AppsService
        - alias: support-v1
          endpoint: oms-support-v1
          service: com.acme.oms.services.SupportService
// my REST Controller
// Use @Qualifier since non-root referencing alias
public AppsController(@Qualifier("apps-v1NexusClient") NexusClient appsNexusClient) {
    this.appsNC = appsNexusClient;
  }

ref: https://github.com/temporalio/sdk-java/tree/main/temporal-spring-boot-autoconfigure#running-multiple-name-space-experimental

Customization for options (interceptors,dataconverter, etc) can follow the existing path for doing such things with workflow client...ideally we could do this in configuration directly but the requirement to code those a shortcoming that already exists in our SB integration so not necessarily part of this.

Second improvement

We can do better than this though I think and support a nexus-service-clients per client so I can do something like :

spring.temporal:
  namespaces:
    # I have a couple services inside my `apps` Namespace I want to use
    - namespace: apps
      alias: apps
      nexus-service-clients:
        - alias: apps-v1 
          endpoint: oms-apps-v1
          service: com.acme.oms.services.AppsService
        - alias: support-v1
          endpoint: oms-support-v1
          service: com.acme.oms.services.SupportService
// my REST Controller
// No @Qualifier needed but I could do it with `alias` I guess
public SupportController(NexusServiceClient<SupportService> supportSvc) {
    this.supportSvc = supportSvc;
  }

Describe alternatives you've considered
Roll my own @Bean but I want it to be more approachable!

Additional context
SANO is here, let's make it dead simple to integrate All The Things!

Lenguaje dominante
Java
Estrellas
433
Forks
257
Merge medio
2 d 22 h
PR fusionados (30 d)
22

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de temporalio/sdk-java

Todos los issues de temporalio/sdk-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.