Fluid aop join point models
This presentation is the property of its rightful owner.
Sponsored Links
1 / 15

Fluid AOP Join Point Models PowerPoint PPT Presentation


  • 49 Views
  • Uploaded on
  • Presentation posted in: General

Fluid AOP Join Point Models. Terry Hon Gregor Kiczales. Fluid AOP. Modularization of crosscutting concerns in IDE Aspect is alternative view modularizes crosscutting concern can be generated each time it is needed or can be stored as a metaobject. Fluid vs. Linguistic AOP.

Download Presentation

Fluid AOP Join Point Models

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Fluid aop join point models

Fluid AOP Join Point Models

Terry Hon

Gregor Kiczales


Fluid aop

Fluid AOP

  • Modularization of crosscutting concerns in IDE

  • Aspect is alternative view

    • modularizes crosscutting concern

    • can be generated each time it is needed

    • or can be stored as a metaobject

Fluid AOP - Terry Hon & Gregor Kiczales


Fluid vs linguistic aop

Fluid vs. Linguistic AOP

  • Linguistic AOP

    • Aspects are programming language constructs

    • Defined semantics: only execution is woven

  • Fluid AOP

    • Aspects are IDE constructs

      • It may look like programming language constructs

    • Defined semantics: IDE view is explicitly woven

Fluid AOP - Terry Hon & Gregor Kiczales


Experiments in fluid aop jpms

Experiments in Fluid AOP JPMs

  • 2 Fluid AOP Join Point Models

    • What are join points?

    • How are they identified?

    • How is crosscutting combined?

  • Using Eclipse

  • Edit time weaving

Fluid AOP - Terry Hon & Gregor Kiczales


1 st jpm block linking

1st JPM – Block Linking

  • Join points

    • Code fragments in java files

      • Method

      • Constructor

      • Field

  • Means of identifying join points

    • Pointcuts: method, field or constructor signatures, type patterns

  • Means of combining crosscutting

    • Identical blocks

    • All linked, any block can be edited

Fluid AOP - Terry Hon & Gregor Kiczales


Display updating aspect

Display Updating Aspect

  • Canonical AspectJ example

publicaspect DisplayUpdating

pointcut change:

execution(public void Shape+.set*(*))

after returning: change

{

}

  • Note has no advice/pointcut parameters

Fluid AOP - Terry Hon & Gregor Kiczales


Intertype declarations

Intertype Declarations

  • Want to add a Display field for each Shape class

  • Instead of calling static update method, we will call update on the Display object

public aspect DisplayUpdating

pointcut change:

execution(public void Shape+.set*(*))

after returning: change

{

display.update();

}

declare for Shape: { protected Display display; }

Fluid AOP - Terry Hon & Gregor Kiczales


1 st jpm block linking1

1st JPM – Block Linking

  • Join points

    • Code fragments in java files

      • Method

      • Constructor

      • Field

  • Means of identifying join points

    • Pointcuts: method, field or constructor signatures, type patterns

  • Means of combining crosscutting

    • Identical blocks

    • All linked, any block can be edited

Fluid AOP - Terry Hon & Gregor Kiczales


2 nd jpm overlay

2ndJPM – Overlay

  • Join points

    • Code fragments in java files

      • Method

      • Constructor

  • Means of identifying join points

    • Pointcuts: method or constructor signatures, type patterns

  • Means of combining crosscutting

    • Join points are all different

    • Editable merge

Fluid AOP - Terry Hon & Gregor Kiczales


Fluid aop join point models

Variable references (with different names) in join points

Identical parts in join points

Fluid AOP - Terry Hon & Gregor Kiczales


Block linking vs overlay

Block Linking vs. Overlay

Crosscutting effects are identical

No context of JPs in aspect

Edit in linked advice block

Can recreate aspect by code inspection without Fluid AOP tool

Crosscutting effects can be different

Some context of JPs in aspect

Edit in linked merged structure

Cannot recreate aspect unless we know list of JPs

Fluid AOP - Terry Hon & Gregor Kiczales


Current questions

Current Questions

Block Linking JPM

  • What happens when a developer changes an advice body outside of the aspect file?

  • What happens if an advice body is deleted?

Overlay JPM

  • What are rules for merging and overlaying?

  • How should overlay look?

Fluid AOP - Terry Hon & Gregor Kiczales


Open issues

Open Issues

  • What are other JPMs in Fluid AOP?

    • What is the best way to show a ccc (modularizing both viewing and editing of JPs)?

  • Possible intermediate step in AOP adoption or AOP solution qua itself?

    • Java tools can be used on all but aspect files

    • Aspect files are only meta files

    • Edit time weaving

Fluid AOP - Terry Hon & Gregor Kiczales


Related work

Related Work

  • Linked editing

    • Toonim et. al.: CodeLink

    • Miller et. al.: Simultaneous Editing

  • Editable virtual views

    • Chu-Carroll et. al.: VSC

    • Janzen et. al: Decal

    • Quitslund: MView

  • Linguistic

    • Harrison et. al.: CME

    • Quitslund et. al.: Java Traits

Fluid AOP - Terry Hon & Gregor Kiczales


Questions

Questions?

Fluid AOP Join Point Models

Terry [email protected]


  • Login