| Home >> All >> ch >> ethz >> [ prose Javadoc ] |
| | ch.ethz.prose.crosscut.* (31) | | ch.ethz.prose.engine.* (13) | | ch.ethz.prose.filter.* (43) |
| | ch.ethz.prose.query.* (11) | | ch.ethz.prose.tools.* (16) |
ch.ethz.prose: Javadoc index of package ch.ethz.prose.
Package Samples:
ch.ethz.prose.crosscut
ch.ethz.prose.engine
ch.ethz.prose.filter
ch.ethz.prose.query
ch.ethz.prose.tools
Classes:
AbstractCrosscut: Interface AbstractCrosscut is a Crosscut implementation together with a filtering mechanism for both join-point requests and join-point events. Every AbstractCrosscut owns a PointFilter . A specializer is a strategy-object used for filtering event requests. A Crosscut is used to generate a crosscut request, that is, a collection of join-point requests(Method createRequest ). Upon the first usage of a crosscut, the crosscut selects a number of classes in the current virtual machine or maybe all (default), and then generates for every potential point inside these classes (e.g. for all method entries, ...
McutAdvice: The McutAdvice encapsulates the transformation of the join-point data (e.g., target, stack parameters) to the types required to execute the UserDefinedMCSignature of this crosscut. The execute method does this job. An McutAdvice object contains all the data needed for the advice method invocation : An array of objects containing the arguments of the method being currently invoked ( stackArgs ). The this object (if existent, that is, if the invoked method is not static) is the first argument. the number of valid arguments the UserDefinedMCSignature object describing the static information about ...
SignedAspect: Class SignedAspect is a wrapper for an Aspect contained in a SignedObject. Thus it is possible to verify the signer of the extension before it is used. For security reason, this class is (and has to be) declared final At construction, the public and private keys passed as KeyPair are not checked for being a valid pair and the private key is not stored for later use. Only an explicit call to verifyExtension does check the public key stored. The signing algorithm to use is deduced by the algorithm type of the public key: if the public key is of type "DSA" then the algorithm "SHA1withDSA" is used, ...
Crosscut: User perspective If you want to use crosscuts, than you have to understand two things: how to write advices how to use point-cutters. Read the documentation for MethodCut , GetCut etc to understand these issues. Developer perspective Class Crosscut defines an object which can create CrosscutRequests . A crosscut request defines a crosscut as a set of join point requests together with actions to be performed when the events corresponding to the crosscut it defines are triggered. A crosscut is also a JointPointListener . According to the contract provided by JoinPointManager an crosscut expects to ...
ProsePermission: The class ProsePermission is used for access control of critical parts in the RUNES system. The names recognized and their semantics can be seen in the following list, to specify all names, one can use the wildcard "*". registerListener: guards the creation of breakpoints startupExtensionSystem: if granted, ProseSystem.startup will be performed privileged under the the restrictions of ProseSystem only. This permission should simplify the Java security policy definition, as only ProseSystem needs several fine grained permissions, and all classes that need to start runes can do with the ProsePermission ...
JoinPointManager: Class JoinPointManagerImpl defines implements two of the basic methods JoinPointManager . Subclasses of AbstractJoinPointManager should define only the link between registering event requests and the proper notification. They should use the notifyListeners method in order to notify the listeners of an event that this event occured, and invoke handleExceptions to handle notification exceptions. By providing an implementation of handleExceptions with a different handleExceptions method, subclasses may change the policy for exception handling. All implementations of AbstractJoinPointManager should ...
ProseSystem: Class ProseSystem represents the user view of the system. It allows to start and stop prose, and to get access to an code AspectManager Users program aspects and they will insert them into the system using the insertExtension and withdrawExtension methods of the extension manager. This class is also used for bootstrapping the system. Before using the extension system, users of this class (eventually applications) will have to call ProseSystem.startup(); Another way to start this system happens over the RootComponent module. this will setup the system, according to special system properties too, ...
MethodCut: Class MethodCut represents a crosscut. Such a crosscut defines a pattern (for matching specific join-points) and a method to be executed. Users must subclass MethodCut . There are two main modalities for subclassing: The tipical way (normal user) Define exactly one method (e.g., METHOD_ARGS(Bar thisO,Baz param1) ). This method is both the advice action to be executed and it defines a pattern. Thus, just entries and exits of invocations of the form Bar.*(Baz) will be considered join-points of this crosscut. This crosscut defines a crosscut for all entry- and exit- points of the matched methods. ...
DefaultAspect: Class DefaultAspect provides a declarative way to define an extension. For example, the following code class MyExtension extends DefaultAspect { Crosscut c1 = new MethodCut() { public void METHOD_ARGS(ANY thisO,REST params) {} } Crosscut c2 = new MethodCut{} { public void adviceMethod(Object thisO, Object[] parms){} }.specializeWith( ( MethodS.BEFORE1) .AND ( MethodS.named("Foo")) ); } would produce an extension which returns a list of two crosscuts c1 and c2 .
SignaturePattern: Every Crosscut contains a method to be executed when a join-point is hit. In the case of MethodCut objects, the SignaturePattern has three roles: The pattern role: through a special signature, define matches for the target class, and for the parameters of the methods belonging to the target. The method finder role: determine which method o of the crosscut must be ivoked upon a hit join-point. The optimization role: to cathegorize the signature of the advice method, such that the subsequent execution of the advice method is efficient. The categorization is currently performed according to the SIGNATURE__XXX ...
MethodCutSignaturePattern: Every Crosscut contains a method to be executed when a join-point is hit. In the case of MethodCut objects, the advice method has three roles: The pattern role: through a special signature, define matches for the target class, and for the parameters of the methods belonging to the target. The method finder role: determine which method o of the crosscut must be ivoked upon a hit join-point. The optimization role: to cathegorize the signature of the advice method, such that the subsequent execution of the advice method is efficient. The categorization is currently performed according to the SIGNATURE__XXX ...
PointCutter: Class PointCutter is an abstract implementation of PointFilter which additionaly defines two operators AND , resp. OR that allow the construction of PointFilter objects via combination of existing specializer instances. Expected Use the following construction should be legal: PointFilter x = (new MethodEntries( ) ) .AND (new MethodNanmes("*Foo") ) Subclasses of PointCutter are mandated to implement a toString method of their own which describes in an executive way their name.
CatchCut: Class CatchCut represents a crosscut which cuts across all points belonging to all classes in the local VM where exceptions are catch. There are two ways of using this crosscut: override the convenience methods exceptionThrowAdvice and exceptionCatchAdvice if you do not want to deal with the reflective part of join-points. override the joinPointAdvice methods and define void-bodies for exceptionThrowAdvice and exceptionCatchAdvice . This second case is recomended only if you need the last bit of speed out of the system.
AspectManager: Interface AspectManager allows weaving and unweaving of aspects. An aspect manager can be obtained as a singleton from ProseSystem In the whole ProseSystem there are exactly two ExtensionManagers. the extension manager or current extension manager the test extension manager The test aspect manager is not attached to the VM (aspect woven do not execute advice). The test aspect manager behaves like the normal aspect manager but no events are reported to it, so i.e. it can be used to test an aspect before the insertion with the real aspect manager.
RootComponent: Class RootComponent looks for properties called "ch.ethz.prose.ESSystem.X", where X is 0,1,2,..; If this property is defined and represents a class name which has two static methods with no parameters called startup and teardown then the startup method is called for this class. These methods should only throw SystemStartupException or SystemTeardownException respectively. The class specified in the property has to implement the interface Component .
ThrowCut: Class ThrowCut is a crosscut which cuts exception throws The advice method is THROW_ARGS . The only argument of THROW_ARGS is the thrown exception (or none). The join-point where the advice method is executted depend on: the signature of THROW_ARGS the value returned by pointCutter . Within an advice method, the thisJoinPoint() method can be called to obtain a reference to the currently executing join-point.
FieldEventIntegrationTest: JUnit testcase. This is an integration test (black box) and tests the functionality of the classes FieldAccessRequestImpl fieldModificationRequestImpl FieldSignatureImpl FieldAccessEventImpl FieldModificationEventImpl (FieldEventImpl) by accessing them through the following interfaces only: FieldAccessRequest FieldModificationRequest FieldAccessEvent FieldModificationEvent
CompositePointFilter: Interface CompositePointFilter must (or can) be implemented by PointFilters which are composed out of sub-PointFilters. For instance, a PointFilter may be a AND combination of two other PointFilters. A composite PointFilter is a shallow container. That is, one of the members might be a CompositePointFilter itself, meaning that the sub-sub-components should not be returned as part of the memberPointFilters result.
Wildcard: Interface Wildcard is a placeholder for serveral classes or class lists at a time. All classes implementing wildcard will have to provide a default constructor! This is the expected way to use wildcards: if yourwildcard extends Wildcard , then ask your wildcard whether it is assignable from something else using: yourwildcard.newInstance().isAssignableFrom(String.class)
PointFilter: Interface PointFilter is a strategy-object used by AbstractCrosscut . A PointFilter provides the functionality for filtering JoinPointReqests and the corresponding JoinPointEvent s in a consistent manner. A PointFilter should document what types of events it considers as being special . The default is to reject events which this PointFilter cannot interpret.
GetCut: Class GetCut is a crosscut which cuts field gets. The advice method is GET_ARGS . The join-point where the advice method is executted depend on: the signature of GET_ARGS the value returned by pointCutter . Within an advice method, the thisJoinPoint() method can be called to obtain a reference to the currently executing join-point.
SetCut: Class SetCut is a crosscut which cuts field sets. The advice method is SET_ARGS . The join-point where the advice method is executted depend on: the signature of SET_ARGS the value returned by pointCutter . Within an advice method, the thisJoinPoint() method can be called to obtain a reference to the currently executing join-point.
RemoteProseComponent: Class RemoteExtensionSystem starts up a remote service (a RemoteExtensionManager ) for the insertion of extensions. The current implementation uses a RemoteExtensionManagerImpl . Note that for starting the remote extension system you will have to add a property like: ch.ethz.prose.ESSystem.X=ch.ethz.prose.tools.RemoteExtensionSystem to the System's properties.
ExceptionThrowRequest: Class ExceptionThrowRequest is a special kind of JoinPointRequest which, when inserted into a JoinPointManager will make the local virtual machine to stop when it encounters an exception object beeing thrown denoted by this request. A corresponding ExceptionThrowEvent will be posted to the listeners registered in the join point manager.
FieldModificationRequest: Class FieldModificationRequest is a special kind of JoinPointRequest which, when inserted into a JoinPointManager will make the local virtual machine to stop when it encounters a modification on the field denoted by this request. A corresponding FieldModificationEvent will be posted to the listeners registered in the join point manager.
| Home | Contact Us | Privacy Policy | Terms of Service |