aws-cloudformation / aws-cloudformation/cloudformation-cli-java-plugin
Reusing code between resources
- Langage dominant
- Java
- Étoiles
- 30
- Forks
- 48
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Hi, I'm from AWS IoT, we have a question/feature request.
Our handlers across different resources use the same code for exception translations and listing resource tags. These resources reside in the same GitHub repository, yet, since each resource has its own Maven project, we're unable to reuse that common code and haven't seen solutions in other repositories.
Specific examples from our AWS IoT repo (code is still in PRs):
1. Exception translation code - [link](https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot/blob/09e62a47f99448c366eb7eaceb8c8ea76f8d6d36/aws-iot-securityprofile/src/main/java/com/amazonaws/iot/securityprofile/Translator.java#L295). We have this method in the Translator class for each resource.
1. `listTags` method (calls IoT::ListTagsForResource) - [link](https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot/blob/09e62a47f99448c366eb7eaceb8c8ea76f8d6d36/aws-iot-securityprofile/src/main/java/com/amazonaws/iot/securityprofile/HandlerUtils.java#L46).
For both of these, we're able to reuse the code between handlers for the same resource, but we had to copy paste this piece of code for each resource.
Is there a solution available for our use case?
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par les exemples AWS IoT liés dans Translator.java et HandlerUtils.java, en vous concentrant sur la traduction des exceptions et les méthodes listTags, qui sont dupliquées dans les projets Maven de ressources. Examinez ensuite la manière dont ce plugin Java génère des projets séparés et déterminez si du code partagé peut être pris en charge. Le travail est considéré comme terminé lorsqu’une approche concrète de réutilisation de ces handlers est documentée ou implémentée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- build-system, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100