What is JAsCo?

JAsCo is an advanced aspect-oriented programming (AOP or AOSD) language originally tailored for the component-based field. The main contributions of the JAsCo language are its highly reusable aspects and its strong aspectual composition mechanism for managing combinations of aspects. The JAsCo technology excels at providing dynamic integration and removal of aspects with a minimal performance overhead. The JAsCo language is an aspect-oriented extension of Java that stays as close as possible to the original Java syntax and concepts and introduces two new concepts: aspect beans and connectors:

  • An aspect bean is highly reusable because it allows describing crosscutting concerns independently of concrete component types and APIs.
  • A connector on the other hand deploys one or more aspect beans within a concrete component context and allows specifying an explicit combination of their aspectual behavior.

The JAsCo technology is based on a genuine run-time weaver that allows to add, alter and remove aspects while the application is running. The run-time performance of this weaver is even able to improve on AspectJ.

JAsCo is an advanced AOP approach that supports a wide range of AOP concepts: AspectJ-like pointcuts, independent aspects, explicit deployment in connectors, expressive aspect combinations, aspectual polymorphism, stateful aspects, virtual mixins and adaptive programming. A drawback of all this is that the learning curse of JAsCo is harder than e.g. AspectWerkz’s. Therefore if you are new to AOP, we recommend to start experimenting with AspectJ or AspectWerkz first to get the basics.

Main benefits of JAsCo AOP

Language features:

  • Independence and reusability of Aspect Beans. Aspect Beans do not hard-code the concrete context where the advice has to apply.
  • Aspect Beans support aspectual polymorphism.
  • Avdanced Aspect Deployment:
    • Firing of Java Bean events
    • Meta-Data
    • Aspects of Aspects
  • Advanced Aspect Composition:
    • Explicit instance-based precedence strategies in a connector. As such, aspects do not have to hard-code precedence relationships and the precedence of several cooperating aspects is able to change over different applications of these aspects.
    • Explicit combination strategies in a connector that are able to manage the combined behavior of set of cooperating aspects.
  • Adaptive Programming using traversal connectors.
  • Stateful Aspects, i.e. aspects that specify protocol based pointcuts.

Technology and tools features:

  • Dynamically applying and removing aspects at run-time by compiling or removing connectors.
  • Remote aspect application and removal.
  • Fully portable over all Java enabled systems (JDK compilant). Furthermore, a JAsCo version for the .NET platform is available
  • JAsCo introduces a real run-time weaver which is able to compete with AspectJ performance-wise, while allowing dynamic AOP. More info here.
  • Stable implementation, compatibility mode for running JAsCo in application servers (0.8+)
  • Easy to use IDE as a plugin of Eclipse
  • Eclipse Concern Manipulation Environment integration for identifying conerns, extracting concerns to JAsCo artifacts and composing concerns (work in progress)
what.txt · Last modified: 10.06.2005 14:24
SiteMapRecent Content by SSEL ©2002-2005     Latest JAsCo Release: JAsCo 0.8.7 (revised 2005-11-25 16:29:02)