OSGi™ Service Platform
Core Specification

Release 4 Version 4.3

org.osgi.framework.hooks.weaving
Interface WeavingHook


public interface WeavingHook

OSGi Framework Weaving Hook Service.

Bundles registering this service will be called during framework class loading operations. Weaving hook services are called when a class is being loaded by the framework and have an opportunity to transform the class file bytes that represents the class being loaded. Weaving hooks may also ask the framework to wire in additional dynamic imports to the bundle.

When a class is being loaded, the framework will create a WovenClass object for the class and pass it to each registered weaving hook service for possible modification. The first weaving hook called will see the original class file bytes. Subsequently called weaving hooks will see the class file bytes as modified by previously called weaving hooks.

ThreadSafe

Method Summary
 void weave(WovenClass wovenClass)
          Weaving hook method.
 

Method Detail

weave

void weave(WovenClass wovenClass)
Weaving hook method. This method can modify the specified woven class object to weave the class being defined.

If this method throws any exception, the framework must log the exception and fail the class load in progress. This weaving hook service must be blacklisted by the framework and must not be called again. The blacklisting of this weaving hook service must expire when this weaving hook service is unregistered. However, this method can throw a WeavingException to deliberately fail the class load in progress without being blacklisted by the framework.

Parameters:
wovenClass - The WovenClass object that represents the data that will be used to define the class.
Throws:
WeavingException - If this weaving hook wants to deliberately fail the class load in progress without being blacklisted by the framework

OSGi™ Service Platform
Core Specification

Release 4 Version 4.3

Copyright © OSGi Alliance (2000, 2012). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0