2010-02-23 8 views
3

J'ai vu le projet Loom, mais y a-t-il des alternatives plus matures (et développées activement)? Je suis à la recherche de quelque chose qui permettrait le tissage au moment du chargement de pointcuts dans le code binaire existant au moment de l'exécution avec le runtime AVM2.Active Flash/Flex/ActionScript 3 Projet AOP?

Des travaux ont-ils déjà été réalisés dans ce domaine?

+1

Je ne sais pas si quelqu'un a utilisé Floxy/Flemit pour le tissage et pointcuts mais j'aimerais travailler avec vous pour le faire. Email moi si vous voulez collaborer jaward à adobe dot com –

Répondre

2

Comme l'auteur de flemit/Floxy (bien que les deux n'ont été créés pour asmock), je vous conseille de regarder en AS3Commons Bytecode comme il est en cours de développement (flemit/Floxy ne sont pas).

AS3Commons Le Bytecode est en fait basé sur le projet Loom et a été étendu pour utiliser une API beaucoup plus propre que ce que Flemit a toujours voulu avoir.

3

Je sais que je suis un peu en retard à la fête ici, mais je viens de mettre en place un projet AOP très simple pour l'intégration avec Parsley.

Il vous permet d'assigner metatags à intercepteurs, comme ceci:

<parsley:ContextBuilder> 
     <parsley:FlexConfig type="{ParsleyConfig}" /> 
     <tag:AspectSupport> 
      <tag:MetatagInterceptorDefinition metatag="Log" interceptor="{new TracingInterceptor()}" /> 
     </tag:AspectSupport>    
    </parsley:ContextBuilder> 

Ensuite, toutes les classes dans le contexte Persil qui sont annotés avec Log obtenir cette méthode approximé:

[Log] 
    public function add(a:int,b:int):int 
    { 
     return a + b; 
    } 

Le projet est here et un article de blog expliquant plus en détail est here

+0

Cela semble intéressant. Quelle est la profondeur de la dépendance à Parsley? Nous utilisons Robotlegs et je me demande si votre projet pourrait être modifié pour fonctionner avec? – Borek

+0

Il dépend plus de Persil que nécessaire. J'avais l'intention de construire une version qui fonctionnerait avec Swiz, mais s'il y a plus de demande pour RobotLegs, alors je pourrais regarder ça en premier. J'ai ajouté un problème pour servir de point de discussion: http://bit.ly/eB70kb –

+0

L'approche ci-dessus n'est pas basée sur un tissage de code octet AVM2, non? Il utilise un proxy. –