Disclaimer : attention, aujourd'hui, ça tâche.Supposons que vous deviez pour votre travail (personne ne ferait ça par plaisir), écrire une extension Adobe CS hybride (donc contenant un peu de Flex, et un peu d'autres choses). Bon, déja, dans Flash Builder, c'est pas facile. Mais alors en-dehors, c'est l'enfer. La doc d'Adobe est au mieux pas terrible, et il en manque des morceaux entiers.Heureusement, la mauvaise foi de certains développeurs (comme moi) ests ans égale.Sachant que Flash Builder est un (mauvais) IDE écrit en java sur une base Eclipse, comment faire pour savoir comment il crée une extension Creative Suite ? Ben en allant fouiller dans l'installation !Quel_bordel_flash_builderTout de suite, on remarque 1. que c'est un beau bazar 2. qu'il y ça un joli dossier "com.adobe.cside.exportwizard_1.5.0.201103311826" qui semble correspondre pile-poil à cette fonctionnalité " export as ZXP"N'écoutant que le malin en moi (et mon droit au reverse engineering), j'ai donc exploré le contenu de ce dossier, pour y trouver .... des classes Java. Et franchement ...

ahlala, chez adobe, ils sont pas bien forts : leurs plugins Eclipse sont livrés sous forme de dossiers de .class, une

vraie invitation !

Nicolas Delsaux (@riduidel)

December 9, 2011J'ai donc lancé jd-gui dans ce dossier pour comprendre comment une extension"pur Flex" et une extension "hybride" était construite.Et le code est assez limpide : c'est la classe com.adobe.cside.exportwizard.view.ExportWizard.DoExport qui fait tout le boulot :Java_decompiler_-_exportwizardPlus précisément, on peut distinguer deux parties : la génération d'une extension "pure flex" et la génération d'une extension hybride.Pour une extension Flex (la méthode generateZXP), on va construire un dossier contenant * le dossier bin-debug * le dossier .staged-extension/CSXS * toutes les librairies swcAvant d'invoquer sur ce dossier le fameux "UCF" qui permet de signer le dossier de sortieBon, par contre, pour les extension hybrides, c'est un peu plus chaud ...Enfin, pas tant que ça : on copie les différentes ressources définies dans le MXI dans le dossier de sortie, on signe le tout, et basta !Bon, maintenant, évidement, j'ai plusieurs questions : * Vous voulez vraiment open-sourcer Flex ? Vu comment ça m'a l'air fait par des demis-branquignols, ça risque d'attirer les foules ... de moqueurs * C'était vraiment nécessaire de tout faire pour étre anti-intégration continue ? * A votre avis, il faut combien de temps pour refaire ça dans un plugin maven ?