¿Cómo poner una instancia particular de ámbito / contexto personalizado (JobScoped - ámbito CDI personalizado) desde la solicitud para hacerlo inyectable?

Dicho en pocas palabras, me gustaría poner en un ámbito personalizado una instancia particular de la clase de configuración desde la solicitud de descanso. El problema principal es ese alcance personalizado (JobScoped de JBerethttps://jberet.gitbooks.io/jberet-user-guide/content/custom_cdi_scopes/index.html) es elegible después de que comienza el trabajo. Sé que existe la posibilidad de agregar propiedades al iniciar el trabajo, pero mi clase de Configuración acepta muchas configuraciones y es bastante complicado, por lo que sería muy incómodo convertir estos archivos a la clase de Propiedades.

Detalles abajo:

Este es el seudocódigo de solicitud de descanso:

@Path("/job")
public class RunJob {

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/start")
public String startJob(@FormDataParam("file") InputStream uploadedInputStream) {
    JobOperatorImpl jobOperator = (JobOperatorImpl) BatchRuntime.getJobOperator();

    Configuration config = new Configuration(uploadedInputStream);
    Properties properties = new Properties();
    jobOperator.start(job, properties);
}

Lo que quería lograr es inyectar algunos archivos de configuración en el contexto de Job como a continuación:

public class MyReader implements ItemReader {

@Inject
private Configuration configFile;
}

La clase de configuración se presenta a continuación:

@JobScoped
public class Configuration {
 // some flags, methods etc
}

He leído sobre Instance, Provider pero no sé cómo usarlos en mi caso. De hecho, creo que es imposible usarlos porque los trabajos se identifican por su nombre, que es dinámico y conocido en tiempo de ejecución.

Mientras tanto, encontré una situación similar a la mía:¿Puedo crear un objeto con ámbito de solicitud y acceder a él desde cualquier lugar, y evitar pasarlo como parámetro en JAX-RS?

Pero luego ocurre un problema con el contexto faltante. Cuando Job comienza, hay un contexto JobScoped. De acuerdo con la solución anterior, anoté la configuración como RequestScoped, luego recibí:

org.jboss.weld.context.ContextNotActiveException: WELD-001303: No hay contextos activos para el tipo de ámbito javax.enterprise.context.RequestScoped en org.jboss.weld.manager.BeanManagerImpl.getContext (BeanManagerImpl.java:689) en org.jboss ... (ContextualInstance.java:63) en org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance (ContextBeanInstance.java:83) en org.jboss.weld.bean.proxy.ProxyMethodHandler.getInstance (ProxyMethodHandler.java:125) Configuración $ Proxy $ _ $ _ WeldClientProxy.toString (fuente desconocida)

Respuestas a la pregunta(3)

Su respuesta a la pregunta