aws-cloudformation / aws-cloudformation/cloudformation-cli-java-plugin

Reusing code between resources

Ouverte
#335 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.