Equinox Weaving QuickStart - Eclipsepedia Skip to main content Log in Manage Cookies Download Projects Working Groups Members Community Marketplace Events Planet Eclipse Newsletter Videos Blogs Participate Report a Bug Forums Mailing Lists Wiki IRC Research Eclipse IDE Download Learn More Documentation Getting Started / Support How to Contribute IDE and Tools Newcomer Forum More Community Marketplace Events Planet Eclipse Newsletter Videos Blogs Participate Report a Bug Forums Mailing Lists Wiki IRC Research Eclipse IDE Download Learn More Documentation Getting Started / Support How to Contribute IDE and Tools Newcomer Forum Toggle navigation Breadcrumbs Home Eclipse Wiki Equinox Weaving QuickStart Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan. Jump to: navigation, search ---Navigation---Main PageCommunity portalCurrent eventsRecent changesRandom pageHelp Navigation Main Page Community portal Current events Recent changes Random page Help ---Toolbox---Page informationPermanent linkPrintable versionSpecial pagesRelated changesWhat links here Toolbox Page information Permanent link Printable version Special pages Related changes What links here Page Discussion View source History Equinox Weaving QuickStart This page replaces the out-of-date "Equinox Aspects Quick-Start Guide" Contents 1 Enabling Weaving for Plug-Ins with AspectJ 1.1 Control How Aspects are Applied with 'aspect-policy' 1.2 Control How Aspects are Received with 'apply-aspects' 1.3 Debugging 2 Sources Enabling Weaving for Plug-Ins with AspectJ As of Eclipse Juno, these are the steps required to enable Equinox Weaving with AspectJ. Note that the aop.xml file is no longer necessary. Install the AspectJ Development Tooling (AJDT) and Equinox Weaving from the AJDT Downloads. Define your aspect(s) in a bundle. Configure your bundle's MANIFEST.MF to (i) export its aspects, and (ii) specify the bundles that its aspects advise. The former is done by adding a parameter on the Export-Package header. The latter is done through the Eclipse-SupplementBundle header. For example, a bundle with an aspect swing.edt.EdtRuleChecker, advising bundles com.example.core and com.example.ui would specify: Export-Package: swing.edt;aspects="EdtRuleChecker" Eclipse-SupplementBundle: com.example.core, com.example.ui Add the following bundles to your launch configuration org.aspectj.weaver org.eclipse.equinox.weaving.aspectj org.eclipse.equinox.weaving.caching org.eclipse.equinox.weaving.hook Ensure org.eclipse.equinox.weaving.aspectj is auto-started at, say, level 2 Add the following VM argument (or to your config.ini) to instruct OSGi to load the weaving hooks: -Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook Control How Aspects are Applied with 'aspect-policy' Aspects can be defined as opt-in (bundles have to explicitly ask for the aspects to be installed) or opt-out (bundles must explicitly opt-out from weaving). Opt-out is the default policy. For example, to change the policy to opt-in: Export-Package: swing.debug; aspects="EdtRuleChecker"; aspect-policy:=opt-in Control How Aspects are Received with 'apply-aspects' A bundle can explicitly request or forbid aspects being applied to it through the apply-aspects parameter on Import-Package: Import-Package: swing.debug; apply-aspects:=false apply-aspects defaults to true, indicating that aspects should be woven into the bundle, whereas false indicates that aspects should not be applied. These parameters override the supplying bundle's aspect-policy. The Eclipse-BundleSupplement in effect causes the specified bundles to include Import-Package: ...; apply-aspects:=true for the packages that are exported by the aspects bundle. Debugging For debugging output, add the following VM arguments: -Daj.weaving.verbose=true -Dorg.aspectj.weaver.showWeaveInfo=true -Dorg.aspectj.osgi.verbose=true The org.eclipse.osgi and org.eclipse.equinox.weaving bundles must be in the same physical directories on disk. So, you cannot use multiple installation locations for these bundles and if one bundle is checked out as source, then so must the other. Sources Martin Lippert (2009). What's New in Equinox Aspects. JAX 2009 James Sugrue (2010). Aspect Oriented Programming for Eclipse Plug-ins. dZone. JDT Weaving Features Categories: Equinox AJDT Retrieved from "https://wiki.eclipse.org/index.php?title=Equinox_Weaving_QuickStart&oldid=283119" This page was last modified 13:36, 22 December 2011 by Eclipsepedia anonymous user Unnamed Poltroon. Back to the top Eclipse Foundation About Us Contact Us Donate Members Governance Code of Conduct Logo and Artwork Board of Directors Legal Privacy Policy Terms of Use Copyright Agent Eclipse Public License Legal Resources Useful Links Report a Bug Documentation How to Contribute Mailing Lists Forums Marketplace Other IDE and Tools Projects Working Groups Research@Eclipse Report a Vulnerability Service Status Copyright © Eclipse Foundation, Inc. All Rights Reserved. Back to the top