Identify component factories by identifier string
@kevinwallimann ya está trabajando en esto.
Desde el 19/2/2020.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 28/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- scala
- Área
- backend, developer-experience
Línea de trabajo
Empieza leyendo ComponentFactory y ClassLoaderUtils, además del trabajo de SPI referenciado en #83. La tarea consiste en añadir getIdentifier con el nombre de la clase como valor predeterminado y, después, cambiar la búsqueda de factorías para que encuentre por identificador las factorías proporcionadas por ServiceLoader. Se considera terminado cuando las configuraciones existentes basadas en nombres de clase siguen funcionando y las configuraciones pueden usar en su lugar un identificador estable.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
Currently, component factories are loaded in ClassLoaderUtils given their fully qualified classnames. The classname is passed by the configuration. (e.g. component.writer)
That means that components don't have the possibility to be refactored (renaming, moving to a different package) without introducing a breaking change which would require updating any existing configuration that uses that component.
Tasks
- Add a method
getIdentifier: Stringto the interfaceComponentFactory.getClass.getNamemay be used as a default value. (so this feature won't be a breaking change) - Implementing components are responsible for providing a unique identifier. It's advisable to prefix the identifier with a human readable name, because it will be referenced in the configuration, logged, etc..
- Use
getIdentifierto load the factory inClassLoaderUtils. Currently, it loads the class directly given the class name. This approach doesn't work to efficiently load the factory by the identifier. With #83, component factories can be loaded using the Service Provider Interface (SPI), i.e. withServiceLoader. All factories expose thegetIdentifiermethod, that's how it can be found
Other
- The same identifier might be used by each component to prefix its configuration properties to avoid name clashes.
- Lenguaje dominante
- Scala
- Estrellas
- 47
- Forks
- 14
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de AbsaOSS/hyperdrive
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
AbsaOSS/hyperdrive#269 ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
AbsaOSS/hyperdrive#240 ·
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
AbsaOSS/hyperdrive#239 ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
AbsaOSS/hyperdrive#230 ·
-
Atum integrationQuizá libre de nuevo @kevinwallimann la tomó hace 2009 días y no hay ningún pull request abierto. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
AbsaOSS/hyperdrive#211 · 1 comentario · 1 reacción · 1 asignado ·
Todos los issues de AbsaOSS/hyperdrive
Issues similares
-
area/map-site bug layer/core size/S
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
marola-dev/marola-app#60 ·
Los mantenedores suelen responder en 1 día
-
enhancement help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
lambdaworks/zio-elasticsearch#863 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
Iceberg data tables whose names end with a metadata-table name fall back to SparkPosiblemente ocupada @aryan9948 la tomó hoy. Abiertorequires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/datafusion-comet#6719 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
lichess-org/lila#21971 · 2 comentarios ·
Los mantenedores suelen responder en 1 día