Advanced Java-based aspect-oriented programming (AOP or AOSD) language originally tailored for the component-based field. Main traits: highly reusable aspects, strong aspectual composition mechanism to manage combinations of aspects.
Paper that introduces the Java-based language Sally and compares it with AspectJ: interactions as opposed to method entry, named advice, advice overriding. Also compares aspects, conventional inheritance, and mixins.